Difference between revisions of "Dear ImGui Flags"

From GiderosMobile
 
(41 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
=== FocusedFlags ===
+
== _VERSION ==
<syntaxhighlight lang="lua">
+
*'''ImGui._VERSION''': Dear ImGui version
ImGui.FocusedFlags_ChildWindows
 
ImGui.FocusedFlags_AnyWindow
 
ImGui.FocusedFlags_RootWindow
 
ImGui.FocusedFlags_RootAndChildWindows
 
ImGui.FocusedFlags_None
 
ImGui.FocusedFlags_NoPopupHierarchy
 
</syntaxhighlight>
 
  
=== PopupFlags ===
+
== BackendFlags ==
<syntaxhighlight lang="lua">
+
Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend.
ImGui.PopupFlags_NoOpenOverExistingPopup
 
ImGui.PopupFlags_MouseButtonLeft
 
ImGui.PopupFlags_MouseButtonMask
 
ImGui.PopupFlags_MouseButtonRight
 
ImGui.PopupFlags_AnyPopupId
 
ImGui.PopupFlags_MouseButtonDefault
 
ImGui.PopupFlags_MouseButtonMiddle
 
ImGui.PopupFlags_None
 
ImGui.PopupFlags_AnyPopup
 
ImGui.PopupFlags_AnyPopupLevel
 
ImGui.PopupFlags_NoOpenOverItems
 
</syntaxhighlight>
 
  
=== HoveredFlags ===
+
*'''ImGui.BackendFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.BackendFlags_HasGamepad''': Backend Platform supports gamepad and currently has one connected
ImGui.HoveredFlags_None
+
*'''ImGui.BackendFlags_HasMouseCursors''': Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape
ImGui.HoveredFlags_RootAndChildWindows
+
*'''ImGui.BackendFlags_HasSetMousePos''': Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set)
ImGui.HoveredFlags_AllowWhenBlockedByPopup
+
*'''ImGui.BackendFlags_RendererHasVtxOffset''': Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices
ImGui.HoveredFlags_AllowWhenBlockedByActiveItem
 
ImGui.HoveredFlags_ChildWindows
 
ImGui.HoveredFlags_RectOnly
 
ImGui.HoveredFlags_AllowWhenDisabled
 
ImGui.HoveredFlags_AllowWhenOverlapped
 
ImGui.HoveredFlags_AnyWindow
 
ImGui.HoveredFlags_RootWindow
 
ImGui.HoveredFlags_NoNavOverride
 
ImGui.HoveredFlags_DelayNormal
 
ImGui.HoveredFlags_DelayShort
 
ImGui.HoveredFlags_NoSharedDelay
 
</syntaxhighlight>
 
  
=== InputTextFlags ===
+
== Col ==
<syntaxhighlight lang="lua">
+
Enumeration for PushStyleColor() / PopStyleColor()
ImGui.InputTextFlags_None
 
ImGui.InputTextFlags_EnterReturnsTrue
 
ImGui.InputTextFlags_ReadOnly
 
ImGui.InputTextFlags_AutoSelectAll
 
ImGui.InputTextFlags_AllowTabInput
 
ImGui.InputTextFlags_CharsScientific
 
ImGui.InputTextFlags_CharsDecimal
 
ImGui.InputTextFlags_NoUndoRedo
 
ImGui.InputTextFlags_CtrlEnterForNewLine
 
ImGui.InputTextFlags_CharsHexadecimal
 
ImGui.InputTextFlags_CharsNoBlank
 
ImGui.InputTextFlags_Password
 
ImGui.InputTextFlags_NoHorizontalScroll
 
ImGui.InputTextFlags_AlwaysInsertMode
 
ImGui.InputTextFlags_CharsUppercase
 
ImGui.InputTextFlags_NoBackground -- custom constant, used to disable background
 
ImGui.InputTextFlags_EscapeClearsAll
 
ImGui.InputTextFlags_CallbackCompletion
 
ImGui.InputTextFlags_CallbackResize
 
ImGui.InputTextFlags_CallbackAlways
 
ImGui.InputTextFlags_CallbackHistory
 
ImGui.InputTextFlags_CallbackCharFilter
 
ImGui.InputTextFlags_CallbackEdit
 
</syntaxhighlight>
 
  
=== NavInput ===
+
*'''ImGui.Col_Border''':
<syntaxhighlight lang="lua">
+
*'''ImGui.Col_BorderShadow''':
ImGui.NavInput_FocusNext
+
*'''ImGui.Col_Button''':
ImGui.NavInput_TweakFast
+
*'''ImGui.Col_ButtonActive''':
ImGui.NavInput_Input
+
*'''ImGui.Col_ButtonHovered''':
ImGui.NavInput_DpadRight
+
*'''ImGui.Col_CheckMark''':
ImGui.NavInput_FocusPrev
+
*'''ImGui.Col_ChildBg''': Background of child windows
ImGui.NavInput_LStickDown
+
*'''ImGui.Col_DragDropTarget''': Rectangle highlighting a drop target
ImGui.NavInput_LStickUp
+
*'''ImGui.Col_FrameBg''': Background of checkbox, radio button, plot, slider, text input
ImGui.NavInput_Activate
+
*'''ImGui.Col_FrameBgActive''':
ImGui.NavInput_LStickLeft
+
*'''ImGui.Col_FrameBgHovered''':
ImGui.NavInput_LStickRight
+
*'''ImGui.Col_Header''': Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem
ImGui.NavInput_DpadLeft
+
*'''ImGui.Col_HeaderActive''':
ImGui.NavInput_DpadDown
+
*'''ImGui.Col_HeaderHovered''':
ImGui.NavInput_TweakSlow
+
*'''ImGui.Col_MenuBarBg''':
ImGui.NavInput_DpadUp
+
*'''ImGui.Col_ModalWindowDimBg''': Darken/colorize entire screen behind a modal window, when one is active
ImGui.NavInput_Menu
+
*'''ImGui.Col_NavHighlight''': Gamepad/keyboard: current highlighted item
ImGui.NavInput_Cancel
+
*'''ImGui.Col_NavWindowingDimBg''': Darken/colorize entire screen behind the CTRL+TAB window list, when active
</syntaxhighlight>
+
*'''ImGui.Col_NavWindowingHighlight''': Highlight window when using CTRL+TAB
 +
*'''ImGui.Col_PlotHistogram''':
 +
*'''ImGui.Col_PlotHistogramHovered''':
 +
*'''ImGui.Col_PlotLines''':
 +
*'''ImGui.Col_PlotLinesHovered''':
 +
*'''ImGui.Col_PopupBg''': Background of popups, menus, tooltips windows
 +
*'''ImGui.Col_ResizeGrip''': Resize grip in lower-right and lower-left corners of windows.
 +
*'''ImGui.Col_ResizeGripActive''':
 +
*'''ImGui.Col_ResizeGripHovered''':
 +
*'''ImGui.Col_ScrollbarBg''':
 +
*'''ImGui.Col_ScrollbarGrab''':
 +
*'''ImGui.Col_ScrollbarGrabActive''':
 +
*'''ImGui.Col_ScrollbarGrabHovered''':
 +
*'''ImGui.Col_Separator''':
 +
*'''ImGui.Col_SeparatorActive''':
 +
*'''ImGui.Col_SeparatorHovered''':
 +
*'''ImGui.Col_SliderGrab''':
 +
*'''ImGui.Col_SliderGrabActive''':
 +
*'''ImGui.Col_Tab''': TabItem in a TabBar
 +
*'''ImGui.Col_TabActive''':
 +
*'''ImGui.Col_TabHovered''':
 +
*'''ImGui.Col_TableBorderLight''': Table inner borders (prefer using Alpha=1.0 here)
 +
*'''ImGui.Col_TableBorderStrong''': Table outer and header borders (prefer using Alpha=1.0 here)
 +
*'''ImGui.Col_TableHeaderBg''': Table header background
 +
*'''ImGui.Col_TableRowBg''': Table row background (even rows)
 +
*'''ImGui.Col_TableRowBgAlt''': Table row background (odd rows)
 +
*'''ImGui.Col_TabUnfocused''':
 +
*'''ImGui.Col_TabUnfocusedActive''':
 +
*'''ImGui.Col_Text''':
 +
*'''ImGui.Col_TextDisabled''':
 +
*'''ImGui.Col_TextSelectedBg''':
 +
*'''ImGui.Col_TitleBg''':
 +
*'''ImGui.Col_TitleBgActive''':
 +
*'''ImGui.Col_TitleBgCollapsed''':
 +
*'''ImGui.Col_WindowBg''': Background of normal windows
  
=== TabBarFlags ===
+
== ColorEditFlags ==
<syntaxhighlight lang="lua">
+
Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()
ImGui.TabBarFlags_AutoSelectNewTabs
 
ImGui.TabBarFlags_NoCloseWithMiddleMouseButton
 
ImGui.TabBarFlags_TabListPopupButton
 
ImGui.TabBarFlags_NoTooltip
 
ImGui.TabBarFlags_FittingPolicyMask
 
ImGui.TabBarFlags_Reorderable
 
ImGui.TabBarFlags_FittingPolicyDefault
 
ImGui.TabBarFlags_FittingPolicyScroll
 
ImGui.TabBarFlags_FittingPolicyResizeDown
 
ImGui.TabBarFlags_None
 
ImGui.TabBarFlags_NoTabListScrollingButtons
 
</syntaxhighlight>
 
  
=== TreeNodeFlags ===
+
*'''ImGui.ColorEditFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.ColorEditFlags_AlphaBar''': User Options (right-click on widget to change some of them). ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker
ImGui.TreeNodeFlags_Bullet
+
*'''ImGui.ColorEditFlags_AlphaPreview''': User Options (right-click on widget to change some of them). ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque
ImGui.TreeNodeFlags_None
+
*'''ImGui.ColorEditFlags_AlphaPreviewHalf''': User Options (right-click on widget to change some of them). ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque
ImGui.TreeNodeFlags_CollapsingHeader
+
*'''ImGui.ColorEditFlags_DisplayHex''': User Options (right-click on widget to change some of them). [Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex
ImGui.TreeNodeFlags_NavLeftJumpsBackHere
+
*'''ImGui.ColorEditFlags_DisplayHSV''': User Options (right-click on widget to change some of them). [Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex
ImGui.TreeNodeFlags_Framed
+
*'''ImGui.ColorEditFlags_DisplayRGB''': User Options (right-click on widget to change some of them). [Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex
ImGui.TreeNodeFlags_FramePadding
+
*'''ImGui.ColorEditFlags_Float''': User Options (right-click on widget to change some of them). [DataType] ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers
ImGui.TreeNodeFlags_AllowItemOverlap
+
*'''ImGui.ColorEditFlags_HDR''': User Options (right-click on widget to change some of them). (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well)
ImGui.TreeNodeFlags_OpenOnArrow
+
*'''ImGui.ColorEditFlags_InputHSV''': User Options (right-click on widget to change some of them). [Input] ColorEdit, ColorPicker: input and output data in HSV format
ImGui.TreeNodeFlags_SpanFullWidth
+
*'''ImGui.ColorEditFlags_InputRGB''': User Options (right-click on widget to change some of them). [Input] ColorEdit, ColorPicker: input and output data in RGB format
ImGui.TreeNodeFlags_NoAutoOpenOnLog
+
*'''ImGui.ColorEditFlags_NoAlpha''': ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer)
ImGui.TreeNodeFlags_Leaf
+
*'''ImGui.ColorEditFlags_NoBorder''': ColorButton: disable border (which is enforced by default)
ImGui.TreeNodeFlags_NoTreePushOnOpen
+
*'''ImGui.ColorEditFlags_NoDragDrop''': ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source
ImGui.TreeNodeFlags_Selected
+
*'''ImGui.ColorEditFlags_NoInputs''': ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square)
ImGui.TreeNodeFlags_SpanAvailWidth
+
*'''ImGui.ColorEditFlags_NoLabel''': ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker)
ImGui.TreeNodeFlags_OpenOnDoubleClick
+
*'''ImGui.ColorEditFlags_NoOptions''': ColorEdit: disable toggling options menu when right-clicking on inputs/small preview
ImGui.TreeNodeFlags_DefaultOpen
+
*'''ImGui.ColorEditFlags_NoPicker''': ColorEdit: disable picker when clicking on color square
</syntaxhighlight>
+
*'''ImGui.ColorEditFlags_NoSidePreview''': ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead
 +
*'''ImGui.ColorEditFlags_NoSmallPreview''': ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)
 +
*'''ImGui.ColorEditFlags_NoTooltip''': ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview
 +
*'''ImGui.ColorEditFlags_OptionsDefault''': Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup
 +
*'''ImGui.ColorEditFlags_PickerHueBar''': User Options (right-click on widget to change some of them). [Picker] ColorPicker: bar for Hue, rectangle for Sat/Value
 +
*'''ImGui.ColorEditFlags_PickerHueWheel''': User Options (right-click on widget to change some of them). [Picker] ColorPicker: wheel for Hue, triangle for Sat/Value
 +
*'''ImGui.ColorEditFlags_Uint8''': User Options (right-click on widget to change some of them). [DataType] ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255
  
=== StyleVar ===
+
'''Sample''':
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
ImGui.StyleVar_GrabRounding
+
ImGui.ColorEditFlags_OptionsDefault =
ImGui.StyleVar_Alpha
+
ImGui.ColorEditFlags_Uint8 | ImGui.ColorEditFlags_DisplayRGB | ImGui.ColorEditFlags_InputRGB |
ImGui.StyleVar_WindowMinSize
+
ImGui.ColorEditFlags_PickerHueBar,
ImGui.StyleVar_PopupBorderSize
 
ImGui.StyleVar_WindowBorderSize
 
ImGui.StyleVar_FrameBorderSize
 
ImGui.StyleVar_ItemSpacing
 
ImGui.StyleVar_IndentSpacing
 
ImGui.StyleVar_FramePadding
 
ImGui.StyleVar_WindowPadding
 
ImGui.StyleVar_ChildRounding
 
ImGui.StyleVar_ItemInnerSpacing
 
ImGui.StyleVar_WindowRounding
 
ImGui.StyleVar_FrameRounding
 
ImGui.StyleVar_TabRounding
 
ImGui.StyleVar_ChildBorderSize
 
ImGui.StyleVar_GrabMinSize
 
ImGui.StyleVar_ScrollbarRounding
 
ImGui.StyleVar_ScrollbarSize
 
ImGui.StyleVar_WindowTitleAlign
 
ImGui.StyleVar_SelectableTextAlign
 
ImGui.StyleVar_PopupRounding
 
ImGui.StyleVar_ButtonTextAlign
 
ImGui.StyleVar_CellPadding
 
ImGui.StyleVar_DisabledAlpha
 
ImGui.StyleVar_SeparatorTextBorderSize
 
ImGui.StyleVar_SeparatorTextAlign
 
ImGui.StyleVar_SeparatorTextPadding
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Col ===
+
== ComboFlags ==
<syntaxhighlight lang="lua">
+
Flags for ImGui::BeginCombo()
ImGui.Col_PlotHistogram
 
ImGui.Col_TitleBg
 
ImGui.Col_Separator
 
ImGui.Col_HeaderActive
 
ImGui.Col_HeaderHovered
 
ImGui.Col_ButtonHovered
 
ImGui.Col_NavWindowingHighlight
 
ImGui.Col_ScrollbarGrab
 
ImGui.Col_FrameBg
 
ImGui.Col_TextSelectedBg
 
ImGui.Col_ScrollbarGrabActive
 
ImGui.Col_TitleBgCollapsed
 
ImGui.Col_ModalWindowDimBg
 
ImGui.Col_ResizeGripActive
 
ImGui.Col_SeparatorHovered
 
ImGui.Col_ScrollbarGrabHovered
 
ImGui.Col_TabUnfocused
 
ImGui.Col_ScrollbarBg
 
ImGui.Col_ChildBg
 
ImGui.Col_Header
 
ImGui.Col_NavWindowingDimBg
 
ImGui.Col_CheckMark
 
ImGui.Col_Button
 
ImGui.Col_BorderShadow
 
ImGui.Col_DragDropTarget
 
ImGui.Col_MenuBarBg
 
ImGui.Col_TitleBgActive
 
ImGui.Col_SeparatorActive
 
ImGui.Col_Text
 
ImGui.Col_PlotLinesHovered
 
ImGui.Col_Border
 
ImGui.Col_TabUnfocusedActive
 
ImGui.Col_PlotLines
 
ImGui.Col_PlotHistogramHovered
 
ImGui.Col_ResizeGripHovered
 
ImGui.Col_Tab
 
ImGui.Col_TabHovered
 
ImGui.Col_PopupBg
 
ImGui.Col_TabActive
 
ImGui.Col_FrameBgActive
 
ImGui.Col_ButtonActive
 
ImGui.Col_WindowBg
 
ImGui.Col_SliderGrabActive
 
ImGui.Col_SliderGrab
 
ImGui.Col_NavHighlight
 
ImGui.Col_FrameBgHovered
 
ImGui.Col_TextDisabled
 
ImGui.Col_ResizeGrip
 
ImGui.Col_TableHeaderBg
 
ImGui.Col_TableBorderStrong
 
ImGui.Col_TableBorderLight
 
ImGui.Col_TableRowBg
 
ImGui.Col_TableRowBgAlt
 
</syntaxhighlight>
 
  
=== DataType ===
+
*'''ImGui.ComboFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.ComboFlags_HeightLarge''': Max ~20 items visible
ImGui.DataType_U8
+
*'''ImGui.ComboFlags_HeightLargest''': As many fitting items as possible
ImGui.DataType_S64
+
*'''ImGui.ComboFlags_HeightMask''': ImGui.ComboFlags_HeightSmall | ImGui.ComboFlags_HeightRegular | ImGui.ComboFlags_HeightLarge | ImGui.ComboFlags_HeightLargest,
ImGui.DataType_Float
+
*'''ImGui.ComboFlags_HeightRegular''': Max ~8 items visible (default)
ImGui.DataType_S16
+
*'''ImGui.ComboFlags_HeightSmall''': Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()
ImGui.DataType_U16
+
*'''ImGui.ComboFlags_NoArrowButton''': Display on the preview box without the square arrow button
ImGui.DataType_Double
+
*'''ImGui.ComboFlags_NoPreview''': Display only a square arrow button
ImGui.DataType_S8
+
*'''ImGui.ComboFlags_PopupAlignLeft''': Align the popup toward the left by default
ImGui.DataType_U32
 
ImGui.DataType_S32
 
ImGui.DataType_U64
 
</syntaxhighlight>
 
  
=== Dir ===
+
== Cond ==
<syntaxhighlight lang="lua">
+
Enumeration for ImGui::setWindow***(), setNextWindow***(), setNextItem***() functions.
ImGui.Dir_None
 
ImGui.Dir_Left
 
ImGui.Dir_Up
 
ImGui.Dir_Down
 
ImGui.Dir_Right
 
</syntaxhighlight>
 
  
=== WindowFlags ===
+
Represent a condition.
<syntaxhighlight lang="lua">
 
ImGui.WindowFlags_NoScrollWithMouse
 
ImGui.WindowFlags_None
 
ImGui.WindowFlags_NoScrollbar
 
ImGui.WindowFlags_HorizontalScrollbar
 
ImGui.WindowFlags_NoFocusOnAppearing
 
ImGui.WindowFlags_NoBringToFrontOnFocus
 
ImGui.WindowFlags_NoDecoration
 
ImGui.WindowFlags_NoCollapse
 
ImGui.WindowFlags_NoTitleBar
 
ImGui.WindowFlags_NoMove
 
ImGui.WindowFlags_NoInputs
 
ImGui.WindowFlags_NoMouseInputs
 
ImGui.WindowFlags_NoSavedSettings
 
ImGui.WindowFlags_NoNav
 
ImGui.WindowFlags_UnsavedDocument
 
ImGui.WindowFlags_NoNavFocus
 
ImGui.WindowFlags_AlwaysHorizontalScrollbar
 
ImGui.WindowFlags_AlwaysUseWindowPadding
 
ImGui.WindowFlags_NoNavInputs
 
ImGui.WindowFlags_NoResize
 
ImGui.WindowFlags_AlwaysVerticalScrollbar
 
ImGui.WindowFlags_MenuBar
 
ImGui.WindowFlags_NoBackground
 
ImGui.WindowFlags_AlwaysAutoResize
 
ImGui.WindowFlags_FullScreen -- custom constant, used to create a fullscreen window
 
</syntaxhighlight>
 
  
=== TabItemFlags ===
+
'''''Important''''': treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGui.Cond_Always
<syntaxhighlight lang="lua">
 
ImGui.TabItemFlags_SetSelected
 
ImGui.TabItemFlags_NoCloseWithMiddleMouseButton
 
ImGui.TabItemFlags_NoTooltip
 
ImGui.TabItemFlags_None
 
ImGui.TabItemFlags_NoPushId
 
ImGui.TabItemFlags_UnsavedDocument
 
ImGui.TabItemFlags_Leading
 
ImGui.TabItemFlags_Trailing
 
ImGui.TabItemFlags_NoReorder
 
</syntaxhighlight>
 
  
=== ComboFlags ===
+
*'''ImGui.Cond_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.Cond_Always''': No condition (always set the variable), same as _None
ImGui.ComboFlags_HeightSmall
+
*'''ImGui.Cond_Appearing''': Set the variable if the object/window is appearing after being hidden/inactive (or the first time)
ImGui.ComboFlags_HeightLarge
+
*'''ImGui.Cond_FirstUseEver''': Set the variable if the object/window has no persistently saved data (no entry in .ini file)
ImGui.ComboFlags_PopupAlignLeft
+
*'''ImGui.Cond_Once''': Set the variable once per runtime session (only the first call will succeed)
ImGui.ComboFlags_None
 
ImGui.ComboFlags_NoPreview
 
ImGui.ComboFlags_HeightRegular
 
ImGui.ComboFlags_HeightMask
 
ImGui.ComboFlags_NoArrowButton
 
ImGui.ComboFlags_HeightLargest
 
</syntaxhighlight>
 
  
=== Cond ===
+
== ConfigFlags ==
<syntaxhighlight lang="lua">
+
Configuration flags stored in io.ConfigFlags. Set by user/application.
ImGui.Cond_Appearing
 
ImGui.Cond_None
 
ImGui.Cond_Always
 
ImGui.Cond_FirstUseEver
 
ImGui.Cond_Once
 
</syntaxhighlight>
 
  
=== SelectableFlags ===
+
*'''ImGui.ConfigFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.ConfigFlags_IsSRGB''': User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are NOT used by core Dear ImGui). Application is SRGB-aware
ImGui.SelectableFlags_None
+
*'''ImGui.ConfigFlags_IsTouchScreen''': User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are NOT used by core Dear ImGui). Application is using a touch screen instead of a mouse
ImGui.SelectableFlags_SpanAllColumns
+
*'''ImGui.ConfigFlags_NavEnableGamepad''': Master gamepad navigation enable flag. Backend also needs to set ImGuiBackendFlags_HasGamepad
ImGui.SelectableFlags_AllowItemOverlap
+
*'''ImGui.ConfigFlags_NavEnableKeyboard''': Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + space/enter to activate
ImGui.SelectableFlags_DontClosePopups
+
*'''ImGui.ConfigFlags_NavEnableSetMousePos''': Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your backend, otherwise ImGui will react as if the mouse is jumping around back and forth
ImGui.SelectableFlags_AllowDoubleClick
+
*'''ImGui.ConfigFlags_NavNoCaptureKeyboard''': Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set
ImGui.SelectableFlags_Disabled
+
*'''ImGui.ConfigFlags_NoMouse''': Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend
</syntaxhighlight>
+
*'''ImGui.ConfigFlags_NoMouseCursorChange''': Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead
  
=== MouseCursor ===
+
== corner_flags ==
<syntaxhighlight lang="lua">
+
Flags for ImGui DrawList functions.
ImGui.MouseCursor_Hand
 
ImGui.MouseCursor_ResizeAll
 
ImGui.MouseCursor_ResizeEW
 
ImGui.MouseCursor_Arrow
 
ImGui.MouseCursor_ResizeNS
 
ImGui.MouseCursor_None
 
ImGui.MouseCursor_NotAllowed
 
ImGui.MouseCursor_ResizeNWSE
 
ImGui.MouseCursor_ResizeNESW
 
ImGui.MouseCursor_TextInput
 
</syntaxhighlight>
 
  
=== MouseButton ===
+
('''''Legacy''''': bit 0 must always correspond to ImDrawFlags_Closed to be backward compatible with old API using a bool. Bits 1..3 must be unused)
<syntaxhighlight lang="lua">
 
ImGui.MouseButton_Right
 
ImGui.MouseButton_Middle
 
ImGui.MouseButton_Left
 
</syntaxhighlight>
 
  
=== ColorEditFlags ===
+
*'''ImGui.DrawFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.DrawFlags_Closed''': PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)
ImGui.ColorEditFlags_AlphaPreview
+
*'''ImGui.DrawFlags_RoundCornersAll''': ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
ImGui.ColorEditFlags_DisplayRGB
+
*'''ImGui.DrawFlags_RoundCornersBottom''': ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
ImGui.ColorEditFlags_DisplayHex
+
*'''ImGui.DrawFlags_RoundCornersBottomLeft''': AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04
ImGui.ColorEditFlags_InputHSV
+
*'''ImGui.DrawFlags_RoundCornersBottomRight''': AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08
ImGui.ColorEditFlags_NoSidePreview
+
*'''ImGui.DrawFlags_RoundCornersLeft''': ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft,
ImGui.ColorEditFlags_Uint8
+
*'''ImGui.DrawFlags_RoundCornersRight''': ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight,
ImGui.ColorEditFlags_AlphaPreviewHalf
+
*'''ImGui.DrawFlags_RoundCornersTop''': ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight,
ImGui.ColorEditFlags_Float
+
*'''ImGui.DrawFlags_RoundCornersTopLeft''': AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01
ImGui.ColorEditFlags_PickerHueWheel
+
*'''ImGui.DrawFlags_RoundCornersTopRight''': AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02
ImGui.ColorEditFlags_OptionsDefault
 
ImGui.ColorEditFlags_InputRGB
 
ImGui.ColorEditFlags_HDR
 
ImGui.ColorEditFlags_NoPicker
 
ImGui.ColorEditFlags_AlphaBar
 
ImGui.ColorEditFlags_DisplayHSV
 
ImGui.ColorEditFlags_PickerHueBar
 
ImGui.ColorEditFlags_NoAlpha
 
ImGui.ColorEditFlags_NoOptions
 
ImGui.ColorEditFlags_NoDragDrop
 
ImGui.ColorEditFlags_NoInputs
 
ImGui.ColorEditFlags_None
 
ImGui.ColorEditFlags_NoSmallPreview
 
ImGui.ColorEditFlags_NoBorder
 
ImGui.ColorEditFlags_NoLabel
 
ImGui.ColorEditFlags_NoTooltip
 
</syntaxhighlight>
 
  
=== DragDropFlags ===
 
<syntaxhighlight lang="lua">
 
ImGui.DragDropFlags_SourceNoPreviewTooltip
 
ImGui.DragDropFlags_SourceAllowNullID
 
ImGui.DragDropFlags_AcceptNoDrawDefaultRect
 
ImGui.DragDropFlags_AcceptPeekOnly
 
ImGui.DragDropFlags_AcceptBeforeDelivery
 
ImGui.DragDropFlags_SourceNoHoldToOpenOthers
 
ImGui.DragDropFlags_AcceptNoPreviewTooltip
 
ImGui.DragDropFlags_SourceAutoExpirePayload
 
ImGui.DragDropFlags_SourceExtern
 
ImGui.DragDropFlags_None
 
ImGui.DragDropFlags_SourceNoDisableHover
 
</syntaxhighlight>
 
  
=== corner_flags ===
+
*'''ImGui.DrawFlags_RoundCornersNone''': AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!
<syntaxhighlight lang="lua">
+
*'''ImGui.DrawFlags_RoundCornersDefault''': ImDrawFlags_RoundCornersAll, // Default to ALL corners if none of the _RoundCornersXX flags are specified
ImGui.DrawFlags_None
 
ImGui.DrawFlags_Closed
 
ImGui.DrawFlags_RoundCornersTopLeft
 
ImGui.DrawFlags_RoundCornersTopRight
 
ImGui.DrawFlags_RoundCornersBottomLeft
 
ImGui.DrawFlags_RoundCornersBottomRight
 
ImGui.DrawFlags_RoundCornersTop
 
ImGui.DrawFlags_RoundCornersBottom
 
ImGui.DrawFlags_RoundCornersLeft
 
ImGui.DrawFlags_RoundCornersRight
 
ImGui.DrawFlags_RoundCornersAll
 
</syntaxhighlight>
 
  
=== ConfigFlags ===
+
== DataType ==
<syntaxhighlight lang="lua">
+
A primary data type.
ImGui.ConfigFlags_None                 
 
ImGui.ConfigFlags_NavEnableKeyboard     
 
ImGui.ConfigFlags_NavEnableGamepad     
 
ImGui.ConfigFlags_NavEnableSetMousePos 
 
ImGui.ConfigFlags_NavNoCaptureKeyboard 
 
ImGui.ConfigFlags_NoMouse               
 
ImGui.ConfigFlags_NoMouseCursorChange
 
ImGui.ConfigFlags_IsSRGB               
 
ImGui.ConfigFlags_IsTouchScreen
 
</syntaxhighlight>
 
  
=== BackendFlags ===
+
*'''ImGui.DataType_Double''': double
<syntaxhighlight lang="lua">
+
*'''ImGui.DataType_Float''': float
ImGui.BackendFlags_None
+
*'''ImGui.DataType_S8''': signed char / char (with sensible compilers)
ImGui.BackendFlags_HasGamepad
+
*'''ImGui.DataType_S16''': short
ImGui.BackendFlags_HasMouseCursors
+
*'''ImGui.DataType_S32''': int
ImGui.BackendFlags_HasSetMousePos
+
*'''ImGui.DataType_S64''': long long / __int64
ImGui.BackendFlags_RendererHasVtxOffset
+
*'''ImGui.DataType_U8''': unsigned char
</syntaxhighlight>
+
*'''ImGui.DataType_U16''': unsigned short
 +
*'''ImGui.DataType_U32''': unsigned int
 +
*'''ImGui.DataType_U64''': unsigned long long / unsigned __int64
  
=== SliderFlags ===
+
== Dir ==
<syntaxhighlight lang="lua">
+
A cardinal direction.
ImGui.SliderFlags_None         
 
ImGui.SliderFlags_ClampOnInput -- renamed in 1.79 to "SliderFlags_AlwaysClamp" (can be still used until 1.80)
 
ImGui.SliderFlags_AlwaysClamp
 
ImGui.SliderFlags_Logarithmic 
 
ImGui.SliderFlags_NoRoundToFormat
 
ImGui.SliderFlags_NoInput
 
</syntaxhighlight>
 
  
=== GlyphRanges ===
+
*'''ImGui.Dir_None''': -1
<syntaxhighlight lang="lua">
+
*'''ImGui.Dir_Down''': 3
ImGui.GlyphRanges_Default,
+
*'''ImGui.Dir_Left''': 0
ImGui.GlyphRanges_Korean,
+
*'''ImGui.Dir_Right''': 1
ImGui.GlyphRanges_ChineseFull,
+
*'''ImGui.Dir_Up''': 2
ImGui.GlyphRanges_ChineseSimplifiedCommon,
 
ImGui.GlyphRanges_Japanese,
 
ImGui.GlyphRanges_Cyrillic,
 
ImGui.GlyphRanges_Thai,
 
ImGui.GlyphRanges_Vietnamese
 
</syntaxhighlight>
 
  
=== ItemFlags ===
+
== DragDropFlags ==
<syntaxhighlight lang="lua">
+
Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload().
ImGui.ItemFlags_Disabled
 
ImGui.ItemFlags_ButtonRepeat
 
ImGui.ItemFlags_NoTabStop
 
</syntaxhighlight>
 
  
=== TableBgTarget ===
+
*'''ImGui.DragDropFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.DragDropFlags_AcceptBeforeDelivery''': AcceptDragDropPayload() flags. AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered
ImGui.TableBgTarget_None
+
*'''ImGui.DragDropFlags_AcceptNoDrawDefaultRect''': AcceptDragDropPayload() flags. Do not draw the default highlight rectangle when hovering over target
ImGui.TableBgTarget_RowBg0
+
*'''ImGui.DragDropFlags_AcceptNoPreviewTooltip''': AcceptDragDropPayload() flags. Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site
ImGui.TableBgTarget_RowBg1
+
*'''ImGui.DragDropFlags_AcceptPeekOnly''': AcceptDragDropPayload() flags. ImGui.DragDropFlags_AcceptBeforeDelivery | ImGui.DragDropFlags_AcceptNoDrawDefaultRect, // For peeking ahead and inspecting the payload before delivery
ImGui.TableBgTarget_CellBg
+
*'''ImGui.DragDropFlags_SourceAllowNullID''': BeginDragDropSource() flags. Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit
</syntaxhighlight>
+
*'''ImGui.DragDropFlags_SourceAutoExpirePayload''': BeginDragDropSource() flags. Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)
 +
*'''ImGui.DragDropFlags_SourceExtern''': BeginDragDropSource() flags. External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously
 +
*'''ImGui.DragDropFlags_SourceNoDisableHover''': BeginDragDropSource() flags. By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disables this behavior so you can still call IsItemHovered() on the source item
 +
*'''ImGui.DragDropFlags_SourceNoHoldToOpenOthers''': BeginDragDropSource() flags. Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item
 +
*'''ImGui.DragDropFlags_SourceNoPreviewTooltip''': BeginDragDropSource() flags. Disable preview tooltip. By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disables this behavior
  
=== TableColumnFlags ===
+
== FocusedFlags ==
<syntaxhighlight lang="lua">
+
Flags for ImGui::IsWindowFocused()
ImGui.TableColumnFlags_None
 
ImGui.TableColumnFlags_DefaultHide
 
ImGui.TableColumnFlags_DefaultSort
 
ImGui.TableColumnFlags_WidthStretch
 
ImGui.TableColumnFlags_WidthFixed
 
ImGui.TableColumnFlags_NoResize
 
ImGui.TableColumnFlags_NoReorder
 
ImGui.TableColumnFlags_NoHide
 
ImGui.TableColumnFlags_NoClip
 
ImGui.TableColumnFlags_NoSort
 
ImGui.TableColumnFlags_NoSortAscending
 
ImGui.TableColumnFlags_NoSortDescending
 
ImGui.TableColumnFlags_NoHeaderWidth
 
ImGui.TableColumnFlags_PreferSortAscending
 
ImGui.TableColumnFlags_PreferSortDescending
 
ImGui.TableColumnFlags_IndentEnable
 
ImGui.TableColumnFlags_IndentDisable
 
ImGui.TableColumnFlags_IsEnabled
 
ImGui.TableColumnFlags_IsVisible
 
ImGui.TableColumnFlags_IsSorted
 
ImGui.TableColumnFlags_IsHovered
 
ImGui.TableColumnFlags_Disabled
 
ImGui.TableColumnFlags_NoHeaderLabel
 
</syntaxhighlight>
 
  
=== TableFlags ===
+
*'''ImGui.FocusedFlags_None''': default = 0
<syntaxhighlight lang="lua">
+
*'''ImGui.FocusedFlags_AnyWindow''': Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!
ImGui.TableFlags_None
+
*'''ImGui.FocusedFlags_ChildWindows''': Return true if any children of the window is focused
ImGui.TableFlags_Resizable
+
*'''ImGui.FocusedFlags_NoPopupHierarchy''': Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
ImGui.TableFlags_Reorderable
+
*'''ImGui.FocusedFlags_RootAndChildWindows''': ImGui.FocusedFlags_RootWindow | ImGui.FocusedFlags_ChildWindows,
ImGui.TableFlags_Hideable
+
*'''ImGui.FocusedFlags_RootWindow''': Test from root window (top most parent of the current hierarchy)
ImGui.TableFlags_Sortable
 
ImGui.TableFlags_NoSavedSettings
 
ImGui.TableFlags_ContextMenuInBody
 
ImGui.TableFlags_RowBg
 
ImGui.TableFlags_BordersInnerH
 
ImGui.TableFlags_BordersOuterH
 
ImGui.TableFlags_BordersInnerV
 
ImGui.TableFlags_BordersOuterV
 
ImGui.TableFlags_BordersH
 
ImGui.TableFlags_BordersV
 
ImGui.TableFlags_BordersInner
 
ImGui.TableFlags_BordersOuter
 
ImGui.TableFlags_Borders
 
ImGui.TableFlags_NoBordersInBody
 
ImGui.TableFlags_NoBordersInBodyUntilResize
 
ImGui.TableFlags_SizingFixedFit
 
ImGui.TableFlags_SizingFixedSame
 
ImGui.TableFlags_SizingStretchProp
 
ImGui.TableFlags_SizingStretchSame
 
ImGui.TableFlags_NoHostExtendX
 
ImGui.TableFlags_NoHostExtendY
 
ImGui.TableFlags_NoKeepColumnsVisible
 
ImGui.TableFlags_PreciseWidths
 
ImGui.TableFlags_NoClip
 
ImGui.TableFlags_PadOuterX
 
ImGui.TableFlags_NoPadOuterX
 
ImGui.TableFlags_NoPadInnerX
 
ImGui.TableFlags_ScrollX
 
ImGui.TableFlags_ScrollY
 
ImGui.TableFlags_SortMulti
 
ImGui.TableFlags_SortTristate
 
</syntaxhighlight>
 
  
=== TableColumnFlags ===
+
== GlyphRanges ==
<syntaxhighlight lang="lua">
+
Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list).
ImGui.TableColumnFlags_None
+
'''NB''': Make sure that your string are UTF-8 and NOT in your local code page
ImGui.TableColumnFlags_DefaultHide
+
Read https://github.com/ocornut/imgui/blob/master/docs/FONTS.md/#about-utf-8-encoding for details
ImGui.TableColumnFlags_DefaultSort
+
'''NB''': Consider using ImFontGlyphRangesBuilder to build glyph ranges from textual data
ImGui.TableColumnFlags_WidthStretch
 
ImGui.TableColumnFlags_WidthFixed
 
ImGui.TableColumnFlags_NoResize
 
ImGui.TableColumnFlags_NoReorder
 
ImGui.TableColumnFlags_NoHide
 
ImGui.TableColumnFlags_NoClip
 
ImGui.TableColumnFlags_NoSort
 
ImGui.TableColumnFlags_NoSortAscending
 
ImGui.TableColumnFlags_NoSortDescending
 
ImGui.TableColumnFlags_NoHeaderWidth
 
ImGui.TableColumnFlags_PreferSortAscending
 
ImGui.TableColumnFlags_PreferSortDescending
 
ImGui.TableColumnFlags_IndentEnable
 
ImGui.TableColumnFlags_IndentDisable
 
ImGui.TableColumnFlags_IsEnabled
 
ImGui.TableColumnFlags_IsVisible
 
ImGui.TableColumnFlags_IsSorted
 
ImGui.TableColumnFlags_IsHovered
 
</syntaxhighlight>
 
  
=== TableRowFlags ===
+
*'''ImGui.GlyphRanges_ChineseFull''': Default + Half-Width + Japanese Hiragana/Katakana + full set of about 21000 CJK Unified Ideographs
<syntaxhighlight lang="lua">
+
*'''ImGui.GlyphRanges_ChineseSimplifiedCommon''': Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese
ImGui.TableRowFlags_None
+
*'''ImGui.GlyphRanges_Cyrillic''': Default + about 400 Cyrillic characters
ImGui.TableRowFlags_Headers
+
*'''ImGui.GlyphRanges_Default''': Basic Latin, Extended Latin
</syntaxhighlight>
+
*'''ImGui.GlyphRanges_Greek''': Default + Greek and Coptic
 +
*'''ImGui.GlyphRanges_Japanese''': Default + Hiragana, Katakana, Half-Width, Selection of 2999 Ideographs
 +
*'''ImGui.GlyphRanges_Korean''': Default + Korean characters
 +
*'''ImGui.GlyphRanges_Thai''': Default + Thai characters
 +
*'''ImGui.GlyphRanges_Vietnamese''': Default + Vietnamese characters
  
=== SortDirection ===
+
== HoveredFlags ==
<syntaxhighlight lang="lua">
+
Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()
ImGui.SortDirection_None
+
'''Note''': if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ!
ImGui.SortDirection_Ascending
+
'''Note''': windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls
ImGui.SortDirection_Descending
 
</syntaxhighlight>
 
  
=== TE_ColorIndex ===
+
*'''ImGui.HoveredFlags_None''': default = 0, Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them
<syntaxhighlight lang="lua">
+
*'''ImGui.HoveredFlags_AllowWhenBlockedByActiveItem''': Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns
ImGui.TE_Default
+
*'''ImGui.HoveredFlags_AllowWhenBlockedByPopup''': Return true even if a popup window is normally blocking access to this item/window
ImGui.TE_Keyword
+
*'''ImGui.HoveredFlags_AllowWhenDisabled''': IsItemHovered() only: Return true even if the item is disabled
ImGui.TE_Number
+
*'''ImGui.HoveredFlags_AllowWhenOverlapped''': IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window
ImGui.TE_String
+
*'''ImGui.HoveredFlags_AnyWindow''': IsWindowHovered() only: Return true if any window is hovered
ImGui.TE_CharLiteral
+
*'''ImGui.HoveredFlags_ChildWindows''': IsWindowHovered() only: Return true if any children of the window is hovered
ImGui.TE_Punctuation
+
*'''ImGui.HoveredFlags_DelayNormal''': Hovering delays (for tooltips). Return true after io.HoverDelayNormal elapsed (~0.30 sec)
ImGui.TE_Preprocessor
+
*'''ImGui.HoveredFlags_DelayShort''': Hovering delays (for tooltips). Return true after io.HoverDelayShort elapsed (~0.10 sec)
ImGui.TE_Identifier
+
*'''ImGui.HoveredFlags_NoNavOverride''': Disable using gamepad/keyboard navigation state when active, always query mouse
ImGui.TE_KnownIdentifier
+
*'''ImGui.HoveredFlags_NoPopupHierarchy''': IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
ImGui.TE_PreprocIdentifier
+
*'''ImGui.HoveredFlags_NoSharedDelay''': Hovering delays (for tooltips). 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)
ImGui.TE_Comment
+
*'''ImGui.HoveredFlags_RectOnly''': ImGui.HoveredFlags_AllowWhenBlockedByPopup | ImGui.HoveredFlags_AllowWhenBlockedByActiveItem | ImGui.HoveredFlags_AllowWhenOverlapped,
ImGui.TE_MultiLineComment
+
*'''ImGui.HoveredFlags_RootAndChildWindows''': ImGui.HoveredFlags_RootWindow | ImGui.HoveredFlags_ChildWindows,
ImGui.TE_Background
+
*'''ImGui.HoveredFlags_RootWindow''': IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)
ImGui.TE_Cursor
 
ImGui.TE_Selection
 
ImGui.TE_ErrorMarker
 
ImGui.TE_Breakpoint
 
ImGui.TE_LineNumber
 
ImGui.TE_CurrentLineFill
 
ImGui.TE_CurrentLineFillInactive
 
ImGui.TE_CurrentLineEdge
 
</syntaxhighlight>
 
  
 
== ImageScaleMode ==
 
== ImageScaleMode ==
<syntaxhighlight lang="lua">
+
*'''ImGui.ImageScaleMode_FitHeight''':
ImGui.ImageScaleMode_LetterBox
+
*'''ImGui.ImageScaleMode_FitWidth''':
ImGui.ImageScaleMode_FitWidth
+
*'''ImGui.ImageScaleMode_LetterBox''':
ImGui.ImageScaleMode_FitHeight
+
*'''ImGui.ImageScaleMode_Stretch''':
ImGui.ImageScaleMode_Stretch
+
 
</syntaxhighlight>
+
== InputTextFlags ==
 +
Flags for ImGui::InputText()
 +
(Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)
 +
 
 +
*'''ImGui.InputTextFlags_None''': default = 0
 +
*'''ImGui.InputTextFlags_AllowTabInput''': Pressing TAB input a '\t' character into the text field
 +
*'''ImGui.InputTextFlags_AlwaysOverwrite''': Overwrite mode
 +
*'''ImGui.InputTextFlags_AutoSelectAll''': Select entire text when first taking mouse focus
 +
*'''ImGui.InputTextFlags_CallbackAlways''': Callback on each iteration. User code may query cursor position, modify text buffer
 +
*'''ImGui.InputTextFlags_CallbackCharFilter''': Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard
 +
*'''ImGui.InputTextFlags_CallbackCompletion''': Callback on pressing TAB (for completion handling)
 +
*'''ImGui.InputTextFlags_CallbackEdit''': Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
 +
*'''ImGui.InputTextFlags_CallbackHistory''': Callback on pressing Up/Down arrows (for history handling)
 +
*'''ImGui.InputTextFlags_CallbackResize''': Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
 +
*'''ImGui.InputTextFlags_CharsDecimal''': Allow 0123456789.+-*/
 +
*'''ImGui.InputTextFlags_CharsHexadecimal''': Allow 0123456789ABCDEFabcdef
 +
*'''ImGui.InputTextFlags_CharsNoBlank''': Filter out spaces, tabs
 +
*'''ImGui.InputTextFlags_CharsScientific''': Allow 0123456789.+-*/eE (Scientific notation input)
 +
*'''ImGui.InputTextFlags_CharsUppercase''': Turn a..z into A..Z
 +
*'''ImGui.InputTextFlags_CtrlEnterForNewLine''': In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter)
 +
*'''ImGui.InputTextFlags_EnterReturnsTrue''': Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function
 +
*'''ImGui.InputTextFlags_EscapeClearsAll''': Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
 +
*'''ImGui.InputTextFlags_NoBackground -- custom constant, used to disable background''':
 +
*'''ImGui.InputTextFlags_NoHorizontalScroll''': Disable following the cursor horizontally
 +
*'''ImGui.InputTextFlags_NoUndoRedo''': Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID()
 +
*'''ImGui.InputTextFlags_Password''': Password mode, display all characters as '*'
 +
*'''ImGui.InputTextFlags_ReadOnly''': Read-only mode
 +
 
 +
== ItemFlags ==
 +
Flags used by upcoming items
 +
- input: PushItemFlag() manipulates g.CurrentItemFlags, ItemAdd() calls may add extra flags
 +
- output: stored in g.LastItemData.InFlags
 +
Current window shared by all windows.
 +
 
 +
*'''ImGui.ItemFlags_ButtonRepeat''': ''false'', Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings
 +
*'''ImGui.ItemFlags_Disabled''': ''false'', Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211
 +
*'''ImGui.ItemFlags_NoTabStop''': ''false'', Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav
 +
 
 +
== MouseButton ==
 +
Identify a mouse button.
 +
 
 +
Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience
 +
 
 +
*'''ImGui.MouseButton_Left''': 0
 +
*'''ImGui.MouseButton_Middle''': 2
 +
*'''ImGui.MouseButton_Right''': 1
 +
 
 +
== MouseCursor ==
 +
Enumeration for GetMouseCursor()
 +
 
 +
User code may request backend to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here
 +
 
 +
*'''ImGui.MouseCursor_None''': -1
 +
*'''ImGui.MouseCursor_Arrow''': 0
 +
*'''ImGui.MouseCursor_Hand''': (Unused by Dear ImGui functions. Use for e.g. hyperlinks)
 +
*'''ImGui.MouseCursor_NotAllowed''': When hovering something with disallowed interaction. Usually a crossed circle
 +
*'''ImGui.MouseCursor_ResizeAll''': (Unused by Dear ImGui functions)
 +
*'''ImGui.MouseCursor_ResizeEW''': When hovering over a vertical border or a column
 +
*'''ImGui.MouseCursor_ResizeNESW''': When hovering over the bottom-left corner of a window
 +
*'''ImGui.MouseCursor_ResizeNS''': When hovering over a horizontal border
 +
*'''ImGui.MouseCursor_ResizeNWSE''': When hovering over the bottom-right corner of a window
 +
*'''ImGui.MouseCursor_TextInput''': When hovering over InputText, etc.
 +
 
 +
== PopupFlags ==
 +
Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions.
 +
 
 +
- To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat small flags values as a mouse button index, so we encode the mouse button in the first few bits of the flags. It is therefore guaranteed to be legal to pass a mouse button index in ImGuiPopupFlags
 +
- For the same reason, we exceptionally default the ImGuiPopupFlags argument of BeginPopupContextXXX functions to 1 instead of 0
 +
 
 +
IMPORTANT: because the default parameter is 1 (==ImGuiPopupFlags_MouseButtonRight), if you rely on the default parameter and want to use another flag, you need to pass in the ImGuiPopupFlags_MouseButtonRight flag explicitly
 +
- Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later)
 +
 
 +
*'''ImGui.PopupFlags_None''': default = 0
 +
*'''ImGui.PopupFlags_AnyPopup''': ImGui.PopupFlags_AnyPopupId | ImGui.PopupFlags_AnyPopupLevel,
 +
*'''ImGui.PopupFlags_AnyPopupId''': For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup
 +
*'''ImGui.PopupFlags_AnyPopupLevel''': For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)
 +
*'''ImGui.PopupFlags_MouseButtonDefault''': /
 +
*'''ImGui.PopupFlags_MouseButtonLeft''': For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left)
 +
*'''ImGui.PopupFlags_MouseButtonMask''': /
 +
*'''ImGui.PopupFlags_MouseButtonMiddle''': For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle)
 +
*'''ImGui.PopupFlags_MouseButtonRight''': For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right)
 +
*'''ImGui.PopupFlags_NoOpenOverExistingPopup''': For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack
 +
*'''ImGui.PopupFlags_NoOpenOverItems''': For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space
 +
 
 +
== SelectableFlags ==
 +
Flags for ImGui::Selectable()
 +
 
 +
*'''ImGui.SelectableFlags_None''': default = 0
 +
*'''ImGui.SelectableFlags_AllowDoubleClick''': Generate press events on double clicks too
 +
*'''ImGui.SelectableFlags_AllowItemOverlap''': (WIP) Hit testing to allow subsequent widgets to overlap this one
 +
*'''ImGui.SelectableFlags_Disabled''': Cannot be selected, display grayed out text
 +
*'''ImGui.SelectableFlags_DontClosePopups''': Clicking this doesn't close parent popup window
 +
*'''ImGui.SelectableFlags_SpanAllColumns''': Selectable frame can span all columns (text will still fit in current column)
 +
 
 +
== SliderFlags ==
 +
Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc.
 +
We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them
 +
(Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigDragClickToInputText)
 +
 
 +
*'''ImGui.SliderFlags_None''': default = 0
 +
*'''ImGui.SliderFlags_AlwaysClamp''': Clamp value to min/max bounds when input manually with CTRL+Click. By default CTRL+Click allows going out of bounds
 +
*'''ImGui.SliderFlags_Logarithmic''': Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits
 +
*'''ImGui.SliderFlags_NoInput''': Disable CTRL+Click or Enter key allowing to input text directly into the widget
 +
*'''ImGui.SliderFlags_NoRoundToFormat''': Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)
 +
 
 +
== SortDirection ==
 +
A sorting direction.
 +
 
 +
*'''ImGui.SortDirection_None''': default = 0
 +
*'''ImGui.SortDirection_Ascending''': Ascending = 0->9, A->Z etc.
 +
*'''ImGui.SortDirection_Descending''': Descending = 9->0, Z->A etc.
 +
 
 +
== StyleVar ==
 +
Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure.
 +
- The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code. During initialization or between frames, feel free to just poke into ImGuiStyle directly
 +
 
 +
*'''ImGui.StyleVar_Alpha''': ''float'', Alpha
 +
*'''ImGui.StyleVar_ButtonTextAlign''': ''ImVec2'', ButtonTextAlign
 +
*'''ImGui.StyleVar_CellPadding''': ''ImVec2'', CellPadding
 +
*'''ImGui.StyleVar_ChildBorderSize''': ''float'', ChildBorderSize
 +
*'''ImGui.StyleVar_ChildRounding''': ''float'', ChildRounding
 +
*'''ImGui.StyleVar_DisabledAlpha''': ''float'', DisabledAlpha
 +
*'''ImGui.StyleVar_FrameBorderSize''': ''float'', FrameBorderSize
 +
*'''ImGui.StyleVar_FramePadding''': ''ImVec2'', FramePadding
 +
*'''ImGui.StyleVar_FrameRounding''': ''float'', FrameRounding
 +
*'''ImGui.StyleVar_GrabMinSize''': ''float'', GrabMinSize
 +
*'''ImGui.StyleVar_GrabRounding''': ''float'', GrabRounding
 +
*'''ImGui.StyleVar_IndentSpacing''': ''float'', IndentSpacing
 +
*'''ImGui.StyleVar_ItemInnerSpacing''': ''ImVec2'', ItemInnerSpacing
 +
*'''ImGui.StyleVar_ItemSpacing''': ''ImVec2'', ItemSpacing
 +
*'''ImGui.StyleVar_PopupBorderSize''': ''float'', PopupBorderSize
 +
*'''ImGui.StyleVar_PopupRounding''': ''float'', PopupRounding
 +
*'''ImGui.StyleVar_ScrollbarRounding''': ''float'', ScrollbarRounding
 +
*'''ImGui.StyleVar_ScrollbarSize''': ''float'', ScrollbarSize
 +
*'''ImGui.StyleVar_SelectableTextAlign''': ''ImVec2'', SelectableTextAlign
 +
*'''ImGui.StyleVar_SeparatorTextAlign''': ''ImVec2'', SeparatorTextAlign
 +
*'''ImGui.StyleVar_SeparatorTextBorderSize''': ''float'', SeparatorTextBorderSize
 +
*'''ImGui.StyleVar_SeparatorTextPadding''': ''ImVec2'', SeparatorTextPadding
 +
*'''ImGui.StyleVar_TabRounding''': ''float'', TabRounding
 +
*'''ImGui.StyleVar_WindowBorderSize''': ''float'', WindowBorderSize
 +
*'''ImGui.StyleVar_WindowMinSize''': ''ImVec2'', WindowMinSize
 +
*'''ImGui.StyleVar_WindowPadding''': ''ImVec2'', WindowPadding
 +
*'''ImGui.StyleVar_WindowRounding''': ''float'', WindowRounding
 +
*'''ImGui.StyleVar_WindowTitleAlign''': ''ImVec2'', WindowTitleAlign
 +
 
 +
== TabBarFlags ==
 +
Flags for ImGui::BeginTabBar()
 +
 
 +
*'''ImGui.TabBarFlags_None''': default = 0
 +
*'''ImGui.TabBarFlags_AutoSelectNewTabs''': Automatically select new tabs when they appear
 +
*'''ImGui.TabBarFlags_FittingPolicyDefault''': ImGui.TabBarFlags_FittingPolicyResizeDown,
 +
*'''ImGui.TabBarFlags_FittingPolicyMask''': ImGui.TabBarFlags_FittingPolicyResizeDown | ImGui.TabBarFlags_FittingPolicyScroll,
 +
*'''ImGui.TabBarFlags_FittingPolicyResizeDown''': Resize tabs when they don't fit
 +
*'''ImGui.TabBarFlags_FittingPolicyScroll''': Add scroll buttons when tabs don't fit
 +
*'''ImGui.TabBarFlags_NoCloseWithMiddleMouseButton''': Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false
 +
*'''ImGui.TabBarFlags_NoTabListScrollingButtons''':
 +
*'''ImGui.TabBarFlags_NoTooltip''': Disable tooltips when hovering a tab
 +
*'''ImGui.TabBarFlags_Reorderable''': Allow manually dragging tabs to re-order them + New tabs are appended at the end of list
 +
*'''ImGui.TabBarFlags_TabListPopupButton''': Disable buttons to open the tab list popup
 +
 
 +
== TabItemFlags ==
 +
Flags for ImGui::BeginTabItem()
 +
 
 +
*'''ImGui.TabItemFlags_None''': default = 0
 +
*'''ImGui.TabItemFlags_Leading''': Enforce the tab position to the left of the tab bar (after the tab list popup button)
 +
*'''ImGui.TabItemFlags_NoCloseWithMiddleMouseButton''': Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false
 +
*'''ImGui.TabItemFlags_NoPushId''': Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem()
 +
*'''ImGui.TabItemFlags_NoReorder''': Disable reordering this tab or having another tab cross over this tab
 +
*'''ImGui.TabItemFlags_NoTooltip''': Disable tooltip for the given tab
 +
*'''ImGui.TabItemFlags_SetSelected''': Trigger flag to programmatically make the tab selected when calling BeginTabItem()
 +
*'''ImGui.TabItemFlags_Trailing''': Enforce the tab position to the right of the tab bar (before the scrolling buttons)
 +
*'''ImGui.TabItemFlags_UnsavedDocument''': Display a dot next to the title + tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar
 +
 
 +
== TableFlags ==
 +
Flags for ImGui::BeginTable()
 +
- '''Important'''! Sizing policies have complex and subtle side effects, much more so than you would expect. Read comments/demos carefully + experiment with live demos to get acquainted with them
 +
- The DEFAULT sizing policies are:
 +
    - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize
 +
    - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off
 +
- When ScrollX is off:
 +
    - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight
 +
    - Columns sizing policy allowed: Stretch (default), Fixed/Auto
 +
    - Fixed Columns (if any) will generally obtain their requested width (unless the table cannot fit them all)
 +
    - Stretch Columns will share the remaining width according to their respective weight
 +
    - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors
 +
      The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing)
 +
- When ScrollX is on:
 +
    - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed
 +
    - Columns sizing policy allowed: Fixed/Auto mostly
 +
    - Fixed Columns can be enlarged as needed. Table will show a horizontal scrollbar if needed
 +
    - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop
 +
    - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable()
 +
      If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again
 +
 
 +
*'''ImGui.TableFlags_None''': default = 0
 +
*'''ImGui.TableFlags_Borders''': ImGui.TableFlags_BordersInner | ImGui.TableFlags_BordersOuter, Draw all borders
 +
*'''ImGui.TableFlags_BordersH''': ImGui.TableFlags_BordersInnerH | ImGui.TableFlags_BordersOuterH, Draw horizontal borders
 +
*'''ImGui.TableFlags_BordersInner''': ImGui.TableFlags_BordersInnerV | ImGui.TableFlags_BordersInnerH, Draw inner borders
 +
*'''ImGui.TableFlags_BordersInnerH ''': Draw horizontal borders between rows
 +
*'''ImGui.TableFlags_BordersInnerV''': Draw vertical borders between columns
 +
*'''ImGui.TableFlags_BordersOuter''': ImGui.TableFlags_BordersOuterV | ImGui.TableFlags_BordersOuterH, Draw outer borders
 +
*'''ImGui.TableFlags_BordersOuterH''': Draw horizontal borders at the top and bottom
 +
*'''ImGui.TableFlags_BordersOuterV''': Draw vertical borders on the left and right sides
 +
*'''ImGui.TableFlags_BordersV''': ImGui.TableFlags_BordersInnerV | ImGui.TableFlags_BordersOuterV, Draw vertical borders
 +
*'''ImGui.TableFlags_ContextMenuInBody''': Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow()
 +
*'''ImGui.TableFlags_Hideable''': Enable hiding/disabling columns in context menu
 +
*'''ImGui.TableFlags_NoBordersInBody''': [ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style
 +
*'''ImGui.TableFlags_NoBordersInBodyUntilResize''': [ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style
 +
*'''ImGui.TableFlags_NoClip''': Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze()
 +
*'''ImGui.TableFlags_NoHostExtendX''': Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used
 +
*'''ImGui.TableFlags_NoHostExtendY''': Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible
 +
*'''ImGui.TableFlags_NoKeepColumnsVisible''': Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable
 +
*'''ImGui.TableFlags_NoPadInnerX''': Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off)
 +
*'''ImGui.TableFlags_NoPadOuterX''': Default if BordersOuterV is off. Disable outermost padding
 +
*'''ImGui.TableFlags_NoSavedSettings''': Disable persisting columns order, width and sort settings in the .ini file
 +
*'''ImGui.TableFlags_PadOuterX''': Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers
 +
*'''ImGui.TableFlags_PreciseWidths''': Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth
 +
*'''ImGui.TableFlags_Reorderable''': Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)
 +
*'''ImGui.TableFlags_Resizable''': Enable resizing columns
 +
*'''ImGui.TableFlags_RowBg''': Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
 +
*'''ImGui.TableFlags_ScrollX''': Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this creates a child window, ScrollY is currently generally recommended when using ScrollX
 +
*'''ImGui.TableFlags_ScrollY''': Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size
 +
*'''ImGui.TableFlags_SizingFixedFit''': Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width
 +
*'''ImGui.TableFlags_SizingFixedSame''': Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible
 +
*'''ImGui.TableFlags_SizingStretchProp''': Columns default to _WidthStretch with default weights proportional to each columns contents widths
 +
*'''ImGui.TableFlags_SizingStretchSame''': Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn()
 +
*'''ImGui.TableFlags_Sortable''': Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate
 +
*'''ImGui.TableFlags_SortMulti''': Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1)
 +
*'''ImGui.TableFlags_SortTristate''': Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0)
 +
 
 +
== TableBgTarget ==
 +
Enum for ImGui::TableSetBgColor()
 +
Background colors are rendering in 3 layers:
 +
  - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set
 +
  - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set
 +
  - Layer 2: draw with CellBg color if set
 +
The purpose of the two row/columns layers is to let you decide if a background color change should override or blend with the existing color
 +
When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows
 +
If you set the color of RowBg0 target, your color will override the existing RowBg0 color
 +
If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color
 +
 
 +
*'''ImGui.TableBgTarget_None''': default = 0
 +
*'''ImGui.TableBgTarget_CellBg''': Set cell background color (top-most color)
 +
*'''ImGui.TableBgTarget_RowBg0''': Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)
 +
*'''ImGui.TableBgTarget_RowBg1''': Set row background color 1 (generally used for selection marking)
 +
 
 +
== TableColumnFlags ==
 +
Flags for ImGui::TableSetupColumn()
 +
 
 +
*'''ImGui.TableColumnFlags_None''': default = 0
 +
*'''ImGui.TableColumnFlags_DefaultHide''': Default as a hidden/disabled column
 +
*'''ImGui.TableColumnFlags_DefaultSort''': Default as a sorting column
 +
*'''ImGui.TableColumnFlags_Disabled''': Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)
 +
*'''ImGui.TableColumnFlags_IndentDisable''': Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored
 +
*'''ImGui.TableColumnFlags_IndentEnable''': Use current Indent value when entering cell (default for column 0)
 +
*'''ImGui.TableColumnFlags_IsEnabled''': Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags
 +
*'''ImGui.TableColumnFlags_IsHovered''': Status: is hovered by mouse
 +
*'''ImGui.TableColumnFlags_IsSorted''': Status: is currently part of the sort specs
 +
*'''ImGui.TableColumnFlags_IsVisible''': Status: is visible == is enabled AND not clipped by scrolling
 +
*'''ImGui.TableColumnFlags_NoClip''': Disable clipping for this column (all NoClip columns will render in a same draw command)
 +
*'''ImGui.TableColumnFlags_NoHeaderLabel''': TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu
 +
*'''ImGui.TableColumnFlags_NoHeaderWidth''': Disable header text width contribution to automatic column width
 +
*'''ImGui.TableColumnFlags_NoHide''': Disable ability to hide/disable this column
 +
*'''ImGui.TableColumnFlags_NoReorder''': Disable manual reordering this column, this will also prevent other columns from crossing over this column
 +
*'''ImGui.TableColumnFlags_NoResize''': Disable manual resizing
 +
*'''ImGui.TableColumnFlags_NoSort''': Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table)
 +
*'''ImGui.TableColumnFlags_NoSortAscending''': Disable ability to sort in the ascending direction
 +
*'''ImGui.TableColumnFlags_NoSortDescending''': Disable ability to sort in the descending direction
 +
*'''ImGui.TableColumnFlags_PreferSortAscending''': Make the initial sort direction Ascending when first sorting on this column (default)
 +
*'''ImGui.TableColumnFlags_PreferSortDescending''': Make the initial sort direction Descending when first sorting on this column
 +
*'''ImGui.TableColumnFlags_WidthFixed''': Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable)
 +
*'''ImGui.TableColumnFlags_WidthStretch''': Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp)
 +
 
 +
== TableRowFlags ==
 +
Flags for ImGui::TableNextRow()
 +
 
 +
*'''ImGui.TableRowFlags_None''': default = 0
 +
*'''ImGui.TableRowFlags_Headers''': Identify header row (set default background color + width of its contents accounted differently for auto column width)
 +
 
 +
== TE ==
 +
*'''ImGui.TE_Background''':
 +
*'''ImGui.TE_Breakpoint''':
 +
*'''ImGui.TE_CharLiteral''':
 +
*'''ImGui.TE_Comment''':
 +
*'''ImGui.TE_CurrentLineEdge''':
 +
*'''ImGui.TE_CurrentLineFill''':
 +
*'''ImGui.TE_CurrentLineFillInactive''':
 +
*'''ImGui.TE_Cursor''':
 +
*'''ImGui.TE_Default''':
 +
*'''ImGui.TE_ErrorMarker''':
 +
*'''ImGui.TE_Identifier''':
 +
*'''ImGui.TE_Keyword''':
 +
*'''ImGui.TE_KnownIdentifier''':
 +
*'''ImGui.TE_LineNumber''':
 +
*'''ImGui.TE_MultiLineComment''':
 +
*'''ImGui.TE_Number''':
 +
*'''ImGui.TE_Preprocessor''':
 +
*'''ImGui.TE_PreprocIdentifier''':
 +
*'''ImGui.TE_Punctuation''':
 +
*'''ImGui.TE_Selection''':
 +
*'''ImGui.TE_String''':
 +
 
 +
== TreeNodeFlags ==
 +
Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()
 +
 
 +
*'''ImGui.TreeNodeFlags_None''': default = 0
 +
*'''ImGui.TreeNodeFlags_AllowItemOverlap''': Hit testing to allow subsequent widgets to overlap this one
 +
*'''ImGui.TreeNodeFlags_Bullet''': Display a bullet instead of arrow
 +
*'''ImGui.TreeNodeFlags_CollapsingHeader''': ImGui.TreeNodeFlags_Framed | ImGui.TreeNodeFlags_NoTreePushOnOpen | ImGui.TreeNodeFlags_NoAutoOpenOnLog,
 +
*'''ImGui.TreeNodeFlags_DefaultOpen''': Default node to be open
 +
*'''ImGui.TreeNodeFlags_Framed''': Draw frame with background (e.g. for CollapsingHeader)
 +
*'''ImGui.TreeNodeFlags_FramePadding''': Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding()
 +
*'''ImGui.TreeNodeFlags_Leaf''': No collapsing, no arrow (use as a convenience for leaf nodes)
 +
*'''ImGui.TreeNodeFlags_NavLeftJumpsBackHere''': (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
 +
*'''ImGui.TreeNodeFlags_NoAutoOpenOnLog''': Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
 +
*'''ImGui.TreeNodeFlags_NoTreePushOnOpen''': Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack
 +
*'''ImGui.TreeNodeFlags_OpenOnArrow''': Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open
 +
*'''ImGui.TreeNodeFlags_OpenOnDoubleClick''': Need double-click to open node
 +
*'''ImGui.TreeNodeFlags_Selected''': Draw as selected
 +
*'''ImGui.TreeNodeFlags_SpanAvailWidth''': Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default
 +
*'''ImGui.TreeNodeFlags_SpanFullWidth''': Extend hit box to the left-most and right-most edges (bypass the indented area)
 +
 
 +
== WindowFlags ==
 +
Flags for ImGui::Begin()
 +
(Those are per-window flags. There are shared flags in ImGuiIO: io.ConfigWindowsResizeFromEdges and io.ConfigWindowsMoveFromTitleBarOnly)
 +
 
 +
*'''ImGui.WindowFlags_None''': default = 0
 +
*'''ImGui.WindowFlags_AlwaysAutoResize''': Resize every window to its content every frame
 +
*'''ImGui.WindowFlags_AlwaysHorizontalScrollbar''': Always show horizontal scrollbar (even if ContentSize.x < Size.x)
 +
*'''ImGui.WindowFlags_AlwaysUseWindowPadding''': Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
 +
*'''ImGui.WindowFlags_AlwaysVerticalScrollbar''': Always show vertical scrollbar (even if ContentSize.y < Size.y)
 +
*'''ImGui.WindowFlags_FullScreen''': Custom constant, used to create a fullscreen window
 +
*'''ImGui.WindowFlags_HorizontalScrollbar''': Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section
 +
*'''ImGui.WindowFlags_MenuBar''': Has a menu-bar
 +
*'''ImGui.WindowFlags_NoBackground''': Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f)
 +
*'''ImGui.WindowFlags_NoBringToFrontOnFocus''': Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)
 +
*'''ImGui.WindowFlags_NoCollapse''': Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node)
 +
*'''ImGui.WindowFlags_NoDecoration''': A combination of ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse
 +
*'''ImGui.WindowFlags_NoFocusOnAppearing''': Disable taking focus when transitioning from hidden to visible state
 +
*'''ImGui.WindowFlags_NoInputs''': A combination of ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
 +
*'''ImGui.WindowFlags_NoMouseInputs''': Disable catching mouse, hovering test with pass through
 +
*'''ImGui.WindowFlags_NoMove''': Disable user moving the window
 +
*'''ImGui.WindowFlags_NoNav''': A combination of ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
 +
*'''ImGui.WindowFlags_NoNavFocus''': No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
 +
*'''ImGui.WindowFlags_NoNavInputs''': No gamepad/keyboard navigation within the window
 +
*'''ImGui.WindowFlags_NoResize''': Disable user resizing with the lower-right grip
 +
*'''ImGui.WindowFlags_NoSavedSettings''': Never load/save settings in .ini file
 +
*'''ImGui.WindowFlags_NoScrollbar''': Disable scrollbars (window can still scroll with mouse or programmatically)
 +
*'''ImGui.WindowFlags_NoScrollWithMouse''': Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set
 +
*'''ImGui.WindowFlags_NoTitleBar''': Disable title-bar
 +
*'''ImGui.WindowFlags_UnsavedDocument''': Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar
  
  
 
'''[[Dear ImGui]]'''
 
'''[[Dear ImGui]]'''
 
{{GIDEROS IMPORTANT LINKS}}
 
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 19:59, 8 October 2024

_VERSION

  • ImGui._VERSION: Dear ImGui version

BackendFlags

Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend.

  • ImGui.BackendFlags_None: default = 0
  • ImGui.BackendFlags_HasGamepad: Backend Platform supports gamepad and currently has one connected
  • ImGui.BackendFlags_HasMouseCursors: Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape
  • ImGui.BackendFlags_HasSetMousePos: Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set)
  • ImGui.BackendFlags_RendererHasVtxOffset: Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices

Col

Enumeration for PushStyleColor() / PopStyleColor()

  • ImGui.Col_Border:
  • ImGui.Col_BorderShadow:
  • ImGui.Col_Button:
  • ImGui.Col_ButtonActive:
  • ImGui.Col_ButtonHovered:
  • ImGui.Col_CheckMark:
  • ImGui.Col_ChildBg: Background of child windows
  • ImGui.Col_DragDropTarget: Rectangle highlighting a drop target
  • ImGui.Col_FrameBg: Background of checkbox, radio button, plot, slider, text input
  • ImGui.Col_FrameBgActive:
  • ImGui.Col_FrameBgHovered:
  • ImGui.Col_Header: Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem
  • ImGui.Col_HeaderActive:
  • ImGui.Col_HeaderHovered:
  • ImGui.Col_MenuBarBg:
  • ImGui.Col_ModalWindowDimBg: Darken/colorize entire screen behind a modal window, when one is active
  • ImGui.Col_NavHighlight: Gamepad/keyboard: current highlighted item
  • ImGui.Col_NavWindowingDimBg: Darken/colorize entire screen behind the CTRL+TAB window list, when active
  • ImGui.Col_NavWindowingHighlight: Highlight window when using CTRL+TAB
  • ImGui.Col_PlotHistogram:
  • ImGui.Col_PlotHistogramHovered:
  • ImGui.Col_PlotLines:
  • ImGui.Col_PlotLinesHovered:
  • ImGui.Col_PopupBg: Background of popups, menus, tooltips windows
  • ImGui.Col_ResizeGrip: Resize grip in lower-right and lower-left corners of windows.
  • ImGui.Col_ResizeGripActive:
  • ImGui.Col_ResizeGripHovered:
  • ImGui.Col_ScrollbarBg:
  • ImGui.Col_ScrollbarGrab:
  • ImGui.Col_ScrollbarGrabActive:
  • ImGui.Col_ScrollbarGrabHovered:
  • ImGui.Col_Separator:
  • ImGui.Col_SeparatorActive:
  • ImGui.Col_SeparatorHovered:
  • ImGui.Col_SliderGrab:
  • ImGui.Col_SliderGrabActive:
  • ImGui.Col_Tab: TabItem in a TabBar
  • ImGui.Col_TabActive:
  • ImGui.Col_TabHovered:
  • ImGui.Col_TableBorderLight: Table inner borders (prefer using Alpha=1.0 here)
  • ImGui.Col_TableBorderStrong: Table outer and header borders (prefer using Alpha=1.0 here)
  • ImGui.Col_TableHeaderBg: Table header background
  • ImGui.Col_TableRowBg: Table row background (even rows)
  • ImGui.Col_TableRowBgAlt: Table row background (odd rows)
  • ImGui.Col_TabUnfocused:
  • ImGui.Col_TabUnfocusedActive:
  • ImGui.Col_Text:
  • ImGui.Col_TextDisabled:
  • ImGui.Col_TextSelectedBg:
  • ImGui.Col_TitleBg:
  • ImGui.Col_TitleBgActive:
  • ImGui.Col_TitleBgCollapsed:
  • ImGui.Col_WindowBg: Background of normal windows

ColorEditFlags

Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()

  • ImGui.ColorEditFlags_None: default = 0
  • ImGui.ColorEditFlags_AlphaBar: User Options (right-click on widget to change some of them). ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker
  • ImGui.ColorEditFlags_AlphaPreview: User Options (right-click on widget to change some of them). ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque
  • ImGui.ColorEditFlags_AlphaPreviewHalf: User Options (right-click on widget to change some of them). ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque
  • ImGui.ColorEditFlags_DisplayHex: User Options (right-click on widget to change some of them). [Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex
  • ImGui.ColorEditFlags_DisplayHSV: User Options (right-click on widget to change some of them). [Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex
  • ImGui.ColorEditFlags_DisplayRGB: User Options (right-click on widget to change some of them). [Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex
  • ImGui.ColorEditFlags_Float: User Options (right-click on widget to change some of them). [DataType] ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers
  • ImGui.ColorEditFlags_HDR: User Options (right-click on widget to change some of them). (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well)
  • ImGui.ColorEditFlags_InputHSV: User Options (right-click on widget to change some of them). [Input] ColorEdit, ColorPicker: input and output data in HSV format
  • ImGui.ColorEditFlags_InputRGB: User Options (right-click on widget to change some of them). [Input] ColorEdit, ColorPicker: input and output data in RGB format
  • ImGui.ColorEditFlags_NoAlpha: ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer)
  • ImGui.ColorEditFlags_NoBorder: ColorButton: disable border (which is enforced by default)
  • ImGui.ColorEditFlags_NoDragDrop: ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source
  • ImGui.ColorEditFlags_NoInputs: ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square)
  • ImGui.ColorEditFlags_NoLabel: ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker)
  • ImGui.ColorEditFlags_NoOptions: ColorEdit: disable toggling options menu when right-clicking on inputs/small preview
  • ImGui.ColorEditFlags_NoPicker: ColorEdit: disable picker when clicking on color square
  • ImGui.ColorEditFlags_NoSidePreview: ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead
  • ImGui.ColorEditFlags_NoSmallPreview: ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)
  • ImGui.ColorEditFlags_NoTooltip: ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview
  • ImGui.ColorEditFlags_OptionsDefault: Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup
  • ImGui.ColorEditFlags_PickerHueBar: User Options (right-click on widget to change some of them). [Picker] ColorPicker: bar for Hue, rectangle for Sat/Value
  • ImGui.ColorEditFlags_PickerHueWheel: User Options (right-click on widget to change some of them). [Picker] ColorPicker: wheel for Hue, triangle for Sat/Value
  • ImGui.ColorEditFlags_Uint8: User Options (right-click on widget to change some of them). [DataType] ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255

Sample:

ImGui.ColorEditFlags_OptionsDefault =
	ImGui.ColorEditFlags_Uint8 | ImGui.ColorEditFlags_DisplayRGB | ImGui.ColorEditFlags_InputRGB |
	ImGui.ColorEditFlags_PickerHueBar,

ComboFlags

Flags for ImGui::BeginCombo()

  • ImGui.ComboFlags_None: default = 0
  • ImGui.ComboFlags_HeightLarge: Max ~20 items visible
  • ImGui.ComboFlags_HeightLargest: As many fitting items as possible
  • ImGui.ComboFlags_HeightMask: ImGui.ComboFlags_HeightSmall | ImGui.ComboFlags_HeightRegular | ImGui.ComboFlags_HeightLarge | ImGui.ComboFlags_HeightLargest,
  • ImGui.ComboFlags_HeightRegular: Max ~8 items visible (default)
  • ImGui.ComboFlags_HeightSmall: Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()
  • ImGui.ComboFlags_NoArrowButton: Display on the preview box without the square arrow button
  • ImGui.ComboFlags_NoPreview: Display only a square arrow button
  • ImGui.ComboFlags_PopupAlignLeft: Align the popup toward the left by default

Cond

Enumeration for ImGui::setWindow***(), setNextWindow***(), setNextItem***() functions.

Represent a condition.

Important: treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGui.Cond_Always

  • ImGui.Cond_None: default = 0
  • ImGui.Cond_Always: No condition (always set the variable), same as _None
  • ImGui.Cond_Appearing: Set the variable if the object/window is appearing after being hidden/inactive (or the first time)
  • ImGui.Cond_FirstUseEver: Set the variable if the object/window has no persistently saved data (no entry in .ini file)
  • ImGui.Cond_Once: Set the variable once per runtime session (only the first call will succeed)

ConfigFlags

Configuration flags stored in io.ConfigFlags. Set by user/application.

  • ImGui.ConfigFlags_None: default = 0
  • ImGui.ConfigFlags_IsSRGB: User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are NOT used by core Dear ImGui). Application is SRGB-aware
  • ImGui.ConfigFlags_IsTouchScreen: User storage (to allow your backend/engine to communicate to code that may be shared between multiple projects. Those flags are NOT used by core Dear ImGui). Application is using a touch screen instead of a mouse
  • ImGui.ConfigFlags_NavEnableGamepad: Master gamepad navigation enable flag. Backend also needs to set ImGuiBackendFlags_HasGamepad
  • ImGui.ConfigFlags_NavEnableKeyboard: Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + space/enter to activate
  • ImGui.ConfigFlags_NavEnableSetMousePos: Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your backend, otherwise ImGui will react as if the mouse is jumping around back and forth
  • ImGui.ConfigFlags_NavNoCaptureKeyboard: Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set
  • ImGui.ConfigFlags_NoMouse: Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend
  • ImGui.ConfigFlags_NoMouseCursorChange: Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead

corner_flags

Flags for ImGui DrawList functions.

(Legacy: bit 0 must always correspond to ImDrawFlags_Closed to be backward compatible with old API using a bool. Bits 1..3 must be unused)

  • ImGui.DrawFlags_None: default = 0
  • ImGui.DrawFlags_Closed: PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)
  • ImGui.DrawFlags_RoundCornersAll: ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
  • ImGui.DrawFlags_RoundCornersBottom: ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight,
  • ImGui.DrawFlags_RoundCornersBottomLeft: AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04
  • ImGui.DrawFlags_RoundCornersBottomRight: AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08
  • ImGui.DrawFlags_RoundCornersLeft: ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft,
  • ImGui.DrawFlags_RoundCornersRight: ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight,
  • ImGui.DrawFlags_RoundCornersTop: ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight,
  • ImGui.DrawFlags_RoundCornersTopLeft: AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01
  • ImGui.DrawFlags_RoundCornersTopRight: AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02


  • ImGui.DrawFlags_RoundCornersNone: AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!
  • ImGui.DrawFlags_RoundCornersDefault: ImDrawFlags_RoundCornersAll, // Default to ALL corners if none of the _RoundCornersXX flags are specified

DataType

A primary data type.

  • ImGui.DataType_Double: double
  • ImGui.DataType_Float: float
  • ImGui.DataType_S8: signed char / char (with sensible compilers)
  • ImGui.DataType_S16: short
  • ImGui.DataType_S32: int
  • ImGui.DataType_S64: long long / __int64
  • ImGui.DataType_U8: unsigned char
  • ImGui.DataType_U16: unsigned short
  • ImGui.DataType_U32: unsigned int
  • ImGui.DataType_U64: unsigned long long / unsigned __int64

Dir

A cardinal direction.

  • ImGui.Dir_None: -1
  • ImGui.Dir_Down: 3
  • ImGui.Dir_Left: 0
  • ImGui.Dir_Right: 1
  • ImGui.Dir_Up: 2

DragDropFlags

Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload().

  • ImGui.DragDropFlags_None: default = 0
  • ImGui.DragDropFlags_AcceptBeforeDelivery: AcceptDragDropPayload() flags. AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered
  • ImGui.DragDropFlags_AcceptNoDrawDefaultRect: AcceptDragDropPayload() flags. Do not draw the default highlight rectangle when hovering over target
  • ImGui.DragDropFlags_AcceptNoPreviewTooltip: AcceptDragDropPayload() flags. Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site
  • ImGui.DragDropFlags_AcceptPeekOnly: AcceptDragDropPayload() flags. ImGui.DragDropFlags_AcceptBeforeDelivery | ImGui.DragDropFlags_AcceptNoDrawDefaultRect, // For peeking ahead and inspecting the payload before delivery
  • ImGui.DragDropFlags_SourceAllowNullID: BeginDragDropSource() flags. Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit
  • ImGui.DragDropFlags_SourceAutoExpirePayload: BeginDragDropSource() flags. Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)
  • ImGui.DragDropFlags_SourceExtern: BeginDragDropSource() flags. External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously
  • ImGui.DragDropFlags_SourceNoDisableHover: BeginDragDropSource() flags. By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disables this behavior so you can still call IsItemHovered() on the source item
  • ImGui.DragDropFlags_SourceNoHoldToOpenOthers: BeginDragDropSource() flags. Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item
  • ImGui.DragDropFlags_SourceNoPreviewTooltip: BeginDragDropSource() flags. Disable preview tooltip. By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disables this behavior

FocusedFlags

Flags for ImGui::IsWindowFocused()

  • ImGui.FocusedFlags_None: default = 0
  • ImGui.FocusedFlags_AnyWindow: Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!
  • ImGui.FocusedFlags_ChildWindows: Return true if any children of the window is focused
  • ImGui.FocusedFlags_NoPopupHierarchy: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
  • ImGui.FocusedFlags_RootAndChildWindows: ImGui.FocusedFlags_RootWindow | ImGui.FocusedFlags_ChildWindows,
  • ImGui.FocusedFlags_RootWindow: Test from root window (top most parent of the current hierarchy)

GlyphRanges

Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list).

NB: Make sure that your string are UTF-8 and NOT in your local code page
Read https://github.com/ocornut/imgui/blob/master/docs/FONTS.md/#about-utf-8-encoding for details
NB: Consider using ImFontGlyphRangesBuilder to build glyph ranges from textual data
  • ImGui.GlyphRanges_ChineseFull: Default + Half-Width + Japanese Hiragana/Katakana + full set of about 21000 CJK Unified Ideographs
  • ImGui.GlyphRanges_ChineseSimplifiedCommon: Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese
  • ImGui.GlyphRanges_Cyrillic: Default + about 400 Cyrillic characters
  • ImGui.GlyphRanges_Default: Basic Latin, Extended Latin
  • ImGui.GlyphRanges_Greek: Default + Greek and Coptic
  • ImGui.GlyphRanges_Japanese: Default + Hiragana, Katakana, Half-Width, Selection of 2999 Ideographs
  • ImGui.GlyphRanges_Korean: Default + Korean characters
  • ImGui.GlyphRanges_Thai: Default + Thai characters
  • ImGui.GlyphRanges_Vietnamese: Default + Vietnamese characters

HoveredFlags

Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()

Note: if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ!
Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls
  • ImGui.HoveredFlags_None: default = 0, Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them
  • ImGui.HoveredFlags_AllowWhenBlockedByActiveItem: Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns
  • ImGui.HoveredFlags_AllowWhenBlockedByPopup: Return true even if a popup window is normally blocking access to this item/window
  • ImGui.HoveredFlags_AllowWhenDisabled: IsItemHovered() only: Return true even if the item is disabled
  • ImGui.HoveredFlags_AllowWhenOverlapped: IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window
  • ImGui.HoveredFlags_AnyWindow: IsWindowHovered() only: Return true if any window is hovered
  • ImGui.HoveredFlags_ChildWindows: IsWindowHovered() only: Return true if any children of the window is hovered
  • ImGui.HoveredFlags_DelayNormal: Hovering delays (for tooltips). Return true after io.HoverDelayNormal elapsed (~0.30 sec)
  • ImGui.HoveredFlags_DelayShort: Hovering delays (for tooltips). Return true after io.HoverDelayShort elapsed (~0.10 sec)
  • ImGui.HoveredFlags_NoNavOverride: Disable using gamepad/keyboard navigation state when active, always query mouse
  • ImGui.HoveredFlags_NoPopupHierarchy: IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
  • ImGui.HoveredFlags_NoSharedDelay: Hovering delays (for tooltips). 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)
  • ImGui.HoveredFlags_RectOnly: ImGui.HoveredFlags_AllowWhenBlockedByPopup | ImGui.HoveredFlags_AllowWhenBlockedByActiveItem | ImGui.HoveredFlags_AllowWhenOverlapped,
  • ImGui.HoveredFlags_RootAndChildWindows: ImGui.HoveredFlags_RootWindow | ImGui.HoveredFlags_ChildWindows,
  • ImGui.HoveredFlags_RootWindow: IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)

ImageScaleMode

  • ImGui.ImageScaleMode_FitHeight:
  • ImGui.ImageScaleMode_FitWidth:
  • ImGui.ImageScaleMode_LetterBox:
  • ImGui.ImageScaleMode_Stretch:

InputTextFlags

Flags for ImGui::InputText()

(Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)
  • ImGui.InputTextFlags_None: default = 0
  • ImGui.InputTextFlags_AllowTabInput: Pressing TAB input a '\t' character into the text field
  • ImGui.InputTextFlags_AlwaysOverwrite: Overwrite mode
  • ImGui.InputTextFlags_AutoSelectAll: Select entire text when first taking mouse focus
  • ImGui.InputTextFlags_CallbackAlways: Callback on each iteration. User code may query cursor position, modify text buffer
  • ImGui.InputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard
  • ImGui.InputTextFlags_CallbackCompletion: Callback on pressing TAB (for completion handling)
  • ImGui.InputTextFlags_CallbackEdit: Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
  • ImGui.InputTextFlags_CallbackHistory: Callback on pressing Up/Down arrows (for history handling)
  • ImGui.InputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
  • ImGui.InputTextFlags_CharsDecimal: Allow 0123456789.+-*/
  • ImGui.InputTextFlags_CharsHexadecimal: Allow 0123456789ABCDEFabcdef
  • ImGui.InputTextFlags_CharsNoBlank: Filter out spaces, tabs
  • ImGui.InputTextFlags_CharsScientific: Allow 0123456789.+-*/eE (Scientific notation input)
  • ImGui.InputTextFlags_CharsUppercase: Turn a..z into A..Z
  • ImGui.InputTextFlags_CtrlEnterForNewLine: In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter)
  • ImGui.InputTextFlags_EnterReturnsTrue: Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function
  • ImGui.InputTextFlags_EscapeClearsAll: Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
  • ImGui.InputTextFlags_NoBackground -- custom constant, used to disable background:
  • ImGui.InputTextFlags_NoHorizontalScroll: Disable following the cursor horizontally
  • ImGui.InputTextFlags_NoUndoRedo: Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID()
  • ImGui.InputTextFlags_Password: Password mode, display all characters as '*'
  • ImGui.InputTextFlags_ReadOnly: Read-only mode

ItemFlags

Flags used by upcoming items

- input: PushItemFlag() manipulates g.CurrentItemFlags, ItemAdd() calls may add extra flags
- output: stored in g.LastItemData.InFlags

Current window shared by all windows.

  • ImGui.ItemFlags_ButtonRepeat: false, Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings
  • ImGui.ItemFlags_Disabled: false, Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211
  • ImGui.ItemFlags_NoTabStop: false, Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav

MouseButton

Identify a mouse button.

Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience
  • ImGui.MouseButton_Left: 0
  • ImGui.MouseButton_Middle: 2
  • ImGui.MouseButton_Right: 1

MouseCursor

Enumeration for GetMouseCursor()

User code may request backend to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here
  • ImGui.MouseCursor_None: -1
  • ImGui.MouseCursor_Arrow: 0
  • ImGui.MouseCursor_Hand: (Unused by Dear ImGui functions. Use for e.g. hyperlinks)
  • ImGui.MouseCursor_NotAllowed: When hovering something with disallowed interaction. Usually a crossed circle
  • ImGui.MouseCursor_ResizeAll: (Unused by Dear ImGui functions)
  • ImGui.MouseCursor_ResizeEW: When hovering over a vertical border or a column
  • ImGui.MouseCursor_ResizeNESW: When hovering over the bottom-left corner of a window
  • ImGui.MouseCursor_ResizeNS: When hovering over a horizontal border
  • ImGui.MouseCursor_ResizeNWSE: When hovering over the bottom-right corner of a window
  • ImGui.MouseCursor_TextInput: When hovering over InputText, etc.

PopupFlags

Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions.

- To be backward compatible with older API which took an 'int mouse_button = 1' argument, we need to treat small flags values as a mouse button index, so we encode the mouse button in the first few bits of the flags. It is therefore guaranteed to be legal to pass a mouse button index in ImGuiPopupFlags
- For the same reason, we exceptionally default the ImGuiPopupFlags argument of BeginPopupContextXXX functions to 1 instead of 0
IMPORTANT: because the default parameter is 1 (==ImGuiPopupFlags_MouseButtonRight), if you rely on the default parameter and want to use another flag, you need to pass in the ImGuiPopupFlags_MouseButtonRight flag explicitly
- Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later)
  • ImGui.PopupFlags_None: default = 0
  • ImGui.PopupFlags_AnyPopup: ImGui.PopupFlags_AnyPopupId | ImGui.PopupFlags_AnyPopupLevel,
  • ImGui.PopupFlags_AnyPopupId: For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup
  • ImGui.PopupFlags_AnyPopupLevel: For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)
  • ImGui.PopupFlags_MouseButtonDefault: /
  • ImGui.PopupFlags_MouseButtonLeft: For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left)
  • ImGui.PopupFlags_MouseButtonMask: /
  • ImGui.PopupFlags_MouseButtonMiddle: For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle)
  • ImGui.PopupFlags_MouseButtonRight: For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right)
  • ImGui.PopupFlags_NoOpenOverExistingPopup: For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack
  • ImGui.PopupFlags_NoOpenOverItems: For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space

SelectableFlags

Flags for ImGui::Selectable()

  • ImGui.SelectableFlags_None: default = 0
  • ImGui.SelectableFlags_AllowDoubleClick: Generate press events on double clicks too
  • ImGui.SelectableFlags_AllowItemOverlap: (WIP) Hit testing to allow subsequent widgets to overlap this one
  • ImGui.SelectableFlags_Disabled: Cannot be selected, display grayed out text
  • ImGui.SelectableFlags_DontClosePopups: Clicking this doesn't close parent popup window
  • ImGui.SelectableFlags_SpanAllColumns: Selectable frame can span all columns (text will still fit in current column)

SliderFlags

Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc.

We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them
(Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigDragClickToInputText)
  • ImGui.SliderFlags_None: default = 0
  • ImGui.SliderFlags_AlwaysClamp: Clamp value to min/max bounds when input manually with CTRL+Click. By default CTRL+Click allows going out of bounds
  • ImGui.SliderFlags_Logarithmic: Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits
  • ImGui.SliderFlags_NoInput: Disable CTRL+Click or Enter key allowing to input text directly into the widget
  • ImGui.SliderFlags_NoRoundToFormat: Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)

SortDirection

A sorting direction.

  • ImGui.SortDirection_None: default = 0
  • ImGui.SortDirection_Ascending: Ascending = 0->9, A->Z etc.
  • ImGui.SortDirection_Descending: Descending = 9->0, Z->A etc.

StyleVar

Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure.

- The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code. During initialization or between frames, feel free to just poke into ImGuiStyle directly
  • ImGui.StyleVar_Alpha: float, Alpha
  • ImGui.StyleVar_ButtonTextAlign: ImVec2, ButtonTextAlign
  • ImGui.StyleVar_CellPadding: ImVec2, CellPadding
  • ImGui.StyleVar_ChildBorderSize: float, ChildBorderSize
  • ImGui.StyleVar_ChildRounding: float, ChildRounding
  • ImGui.StyleVar_DisabledAlpha: float, DisabledAlpha
  • ImGui.StyleVar_FrameBorderSize: float, FrameBorderSize
  • ImGui.StyleVar_FramePadding: ImVec2, FramePadding
  • ImGui.StyleVar_FrameRounding: float, FrameRounding
  • ImGui.StyleVar_GrabMinSize: float, GrabMinSize
  • ImGui.StyleVar_GrabRounding: float, GrabRounding
  • ImGui.StyleVar_IndentSpacing: float, IndentSpacing
  • ImGui.StyleVar_ItemInnerSpacing: ImVec2, ItemInnerSpacing
  • ImGui.StyleVar_ItemSpacing: ImVec2, ItemSpacing
  • ImGui.StyleVar_PopupBorderSize: float, PopupBorderSize
  • ImGui.StyleVar_PopupRounding: float, PopupRounding
  • ImGui.StyleVar_ScrollbarRounding: float, ScrollbarRounding
  • ImGui.StyleVar_ScrollbarSize: float, ScrollbarSize
  • ImGui.StyleVar_SelectableTextAlign: ImVec2, SelectableTextAlign
  • ImGui.StyleVar_SeparatorTextAlign: ImVec2, SeparatorTextAlign
  • ImGui.StyleVar_SeparatorTextBorderSize: float, SeparatorTextBorderSize
  • ImGui.StyleVar_SeparatorTextPadding: ImVec2, SeparatorTextPadding
  • ImGui.StyleVar_TabRounding: float, TabRounding
  • ImGui.StyleVar_WindowBorderSize: float, WindowBorderSize
  • ImGui.StyleVar_WindowMinSize: ImVec2, WindowMinSize
  • ImGui.StyleVar_WindowPadding: ImVec2, WindowPadding
  • ImGui.StyleVar_WindowRounding: float, WindowRounding
  • ImGui.StyleVar_WindowTitleAlign: ImVec2, WindowTitleAlign

TabBarFlags

Flags for ImGui::BeginTabBar()

  • ImGui.TabBarFlags_None: default = 0
  • ImGui.TabBarFlags_AutoSelectNewTabs: Automatically select new tabs when they appear
  • ImGui.TabBarFlags_FittingPolicyDefault: ImGui.TabBarFlags_FittingPolicyResizeDown,
  • ImGui.TabBarFlags_FittingPolicyMask: ImGui.TabBarFlags_FittingPolicyResizeDown | ImGui.TabBarFlags_FittingPolicyScroll,
  • ImGui.TabBarFlags_FittingPolicyResizeDown: Resize tabs when they don't fit
  • ImGui.TabBarFlags_FittingPolicyScroll: Add scroll buttons when tabs don't fit
  • ImGui.TabBarFlags_NoCloseWithMiddleMouseButton: Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false
  • ImGui.TabBarFlags_NoTabListScrollingButtons:
  • ImGui.TabBarFlags_NoTooltip: Disable tooltips when hovering a tab
  • ImGui.TabBarFlags_Reorderable: Allow manually dragging tabs to re-order them + New tabs are appended at the end of list
  • ImGui.TabBarFlags_TabListPopupButton: Disable buttons to open the tab list popup

TabItemFlags

Flags for ImGui::BeginTabItem()

  • ImGui.TabItemFlags_None: default = 0
  • ImGui.TabItemFlags_Leading: Enforce the tab position to the left of the tab bar (after the tab list popup button)
  • ImGui.TabItemFlags_NoCloseWithMiddleMouseButton: Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false
  • ImGui.TabItemFlags_NoPushId: Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem()
  • ImGui.TabItemFlags_NoReorder: Disable reordering this tab or having another tab cross over this tab
  • ImGui.TabItemFlags_NoTooltip: Disable tooltip for the given tab
  • ImGui.TabItemFlags_SetSelected: Trigger flag to programmatically make the tab selected when calling BeginTabItem()
  • ImGui.TabItemFlags_Trailing: Enforce the tab position to the right of the tab bar (before the scrolling buttons)
  • ImGui.TabItemFlags_UnsavedDocument: Display a dot next to the title + tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar

TableFlags

Flags for ImGui::BeginTable()

- Important! Sizing policies have complex and subtle side effects, much more so than you would expect. Read comments/demos carefully + experiment with live demos to get acquainted with them
- The DEFAULT sizing policies are:
   - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize
   - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off
- When ScrollX is off:
   - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight
   - Columns sizing policy allowed: Stretch (default), Fixed/Auto
   - Fixed Columns (if any) will generally obtain their requested width (unless the table cannot fit them all)
   - Stretch Columns will share the remaining width according to their respective weight
   - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors
     The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing)
- When ScrollX is on:
   - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed
   - Columns sizing policy allowed: Fixed/Auto mostly
   - Fixed Columns can be enlarged as needed. Table will show a horizontal scrollbar if needed
   - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop
   - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable()
     If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again
  • ImGui.TableFlags_None: default = 0
  • ImGui.TableFlags_Borders: ImGui.TableFlags_BordersInner | ImGui.TableFlags_BordersOuter, Draw all borders
  • ImGui.TableFlags_BordersH: ImGui.TableFlags_BordersInnerH | ImGui.TableFlags_BordersOuterH, Draw horizontal borders
  • ImGui.TableFlags_BordersInner: ImGui.TableFlags_BordersInnerV | ImGui.TableFlags_BordersInnerH, Draw inner borders
  • ImGui.TableFlags_BordersInnerH : Draw horizontal borders between rows
  • ImGui.TableFlags_BordersInnerV: Draw vertical borders between columns
  • ImGui.TableFlags_BordersOuter: ImGui.TableFlags_BordersOuterV | ImGui.TableFlags_BordersOuterH, Draw outer borders
  • ImGui.TableFlags_BordersOuterH: Draw horizontal borders at the top and bottom
  • ImGui.TableFlags_BordersOuterV: Draw vertical borders on the left and right sides
  • ImGui.TableFlags_BordersV: ImGui.TableFlags_BordersInnerV | ImGui.TableFlags_BordersOuterV, Draw vertical borders
  • ImGui.TableFlags_ContextMenuInBody: Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow()
  • ImGui.TableFlags_Hideable: Enable hiding/disabling columns in context menu
  • ImGui.TableFlags_NoBordersInBody: [ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style
  • ImGui.TableFlags_NoBordersInBodyUntilResize: [ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style
  • ImGui.TableFlags_NoClip: Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze()
  • ImGui.TableFlags_NoHostExtendX: Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used
  • ImGui.TableFlags_NoHostExtendY: Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible
  • ImGui.TableFlags_NoKeepColumnsVisible: Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable
  • ImGui.TableFlags_NoPadInnerX: Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off)
  • ImGui.TableFlags_NoPadOuterX: Default if BordersOuterV is off. Disable outermost padding
  • ImGui.TableFlags_NoSavedSettings: Disable persisting columns order, width and sort settings in the .ini file
  • ImGui.TableFlags_PadOuterX: Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers
  • ImGui.TableFlags_PreciseWidths: Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth
  • ImGui.TableFlags_Reorderable: Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)
  • ImGui.TableFlags_Resizable: Enable resizing columns
  • ImGui.TableFlags_RowBg: Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
  • ImGui.TableFlags_ScrollX: Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this creates a child window, ScrollY is currently generally recommended when using ScrollX
  • ImGui.TableFlags_ScrollY: Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size
  • ImGui.TableFlags_SizingFixedFit: Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width
  • ImGui.TableFlags_SizingFixedSame: Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible
  • ImGui.TableFlags_SizingStretchProp: Columns default to _WidthStretch with default weights proportional to each columns contents widths
  • ImGui.TableFlags_SizingStretchSame: Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn()
  • ImGui.TableFlags_Sortable: Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate
  • ImGui.TableFlags_SortMulti: Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1)
  • ImGui.TableFlags_SortTristate: Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0)

TableBgTarget

Enum for ImGui::TableSetBgColor()

Background colors are rendering in 3 layers:
 - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set
 - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set
 - Layer 2: draw with CellBg color if set
The purpose of the two row/columns layers is to let you decide if a background color change should override or blend with the existing color
When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows
If you set the color of RowBg0 target, your color will override the existing RowBg0 color
If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color
  • ImGui.TableBgTarget_None: default = 0
  • ImGui.TableBgTarget_CellBg: Set cell background color (top-most color)
  • ImGui.TableBgTarget_RowBg0: Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)
  • ImGui.TableBgTarget_RowBg1: Set row background color 1 (generally used for selection marking)

TableColumnFlags

Flags for ImGui::TableSetupColumn()

  • ImGui.TableColumnFlags_None: default = 0
  • ImGui.TableColumnFlags_DefaultHide: Default as a hidden/disabled column
  • ImGui.TableColumnFlags_DefaultSort: Default as a sorting column
  • ImGui.TableColumnFlags_Disabled: Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)
  • ImGui.TableColumnFlags_IndentDisable: Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored
  • ImGui.TableColumnFlags_IndentEnable: Use current Indent value when entering cell (default for column 0)
  • ImGui.TableColumnFlags_IsEnabled: Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags
  • ImGui.TableColumnFlags_IsHovered: Status: is hovered by mouse
  • ImGui.TableColumnFlags_IsSorted: Status: is currently part of the sort specs
  • ImGui.TableColumnFlags_IsVisible: Status: is visible == is enabled AND not clipped by scrolling
  • ImGui.TableColumnFlags_NoClip: Disable clipping for this column (all NoClip columns will render in a same draw command)
  • ImGui.TableColumnFlags_NoHeaderLabel: TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu
  • ImGui.TableColumnFlags_NoHeaderWidth: Disable header text width contribution to automatic column width
  • ImGui.TableColumnFlags_NoHide: Disable ability to hide/disable this column
  • ImGui.TableColumnFlags_NoReorder: Disable manual reordering this column, this will also prevent other columns from crossing over this column
  • ImGui.TableColumnFlags_NoResize: Disable manual resizing
  • ImGui.TableColumnFlags_NoSort: Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table)
  • ImGui.TableColumnFlags_NoSortAscending: Disable ability to sort in the ascending direction
  • ImGui.TableColumnFlags_NoSortDescending: Disable ability to sort in the descending direction
  • ImGui.TableColumnFlags_PreferSortAscending: Make the initial sort direction Ascending when first sorting on this column (default)
  • ImGui.TableColumnFlags_PreferSortDescending: Make the initial sort direction Descending when first sorting on this column
  • ImGui.TableColumnFlags_WidthFixed: Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable)
  • ImGui.TableColumnFlags_WidthStretch: Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp)

TableRowFlags

Flags for ImGui::TableNextRow()

  • ImGui.TableRowFlags_None: default = 0
  • ImGui.TableRowFlags_Headers: Identify header row (set default background color + width of its contents accounted differently for auto column width)

TE

  • ImGui.TE_Background:
  • ImGui.TE_Breakpoint:
  • ImGui.TE_CharLiteral:
  • ImGui.TE_Comment:
  • ImGui.TE_CurrentLineEdge:
  • ImGui.TE_CurrentLineFill:
  • ImGui.TE_CurrentLineFillInactive:
  • ImGui.TE_Cursor:
  • ImGui.TE_Default:
  • ImGui.TE_ErrorMarker:
  • ImGui.TE_Identifier:
  • ImGui.TE_Keyword:
  • ImGui.TE_KnownIdentifier:
  • ImGui.TE_LineNumber:
  • ImGui.TE_MultiLineComment:
  • ImGui.TE_Number:
  • ImGui.TE_Preprocessor:
  • ImGui.TE_PreprocIdentifier:
  • ImGui.TE_Punctuation:
  • ImGui.TE_Selection:
  • ImGui.TE_String:

TreeNodeFlags

Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()

  • ImGui.TreeNodeFlags_None: default = 0
  • ImGui.TreeNodeFlags_AllowItemOverlap: Hit testing to allow subsequent widgets to overlap this one
  • ImGui.TreeNodeFlags_Bullet: Display a bullet instead of arrow
  • ImGui.TreeNodeFlags_CollapsingHeader: ImGui.TreeNodeFlags_Framed | ImGui.TreeNodeFlags_NoTreePushOnOpen | ImGui.TreeNodeFlags_NoAutoOpenOnLog,
  • ImGui.TreeNodeFlags_DefaultOpen: Default node to be open
  • ImGui.TreeNodeFlags_Framed: Draw frame with background (e.g. for CollapsingHeader)
  • ImGui.TreeNodeFlags_FramePadding: Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding()
  • ImGui.TreeNodeFlags_Leaf: No collapsing, no arrow (use as a convenience for leaf nodes)
  • ImGui.TreeNodeFlags_NavLeftJumpsBackHere: (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
  • ImGui.TreeNodeFlags_NoAutoOpenOnLog: Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
  • ImGui.TreeNodeFlags_NoTreePushOnOpen: Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack
  • ImGui.TreeNodeFlags_OpenOnArrow: Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open
  • ImGui.TreeNodeFlags_OpenOnDoubleClick: Need double-click to open node
  • ImGui.TreeNodeFlags_Selected: Draw as selected
  • ImGui.TreeNodeFlags_SpanAvailWidth: Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default
  • ImGui.TreeNodeFlags_SpanFullWidth: Extend hit box to the left-most and right-most edges (bypass the indented area)

WindowFlags

Flags for ImGui::Begin()

(Those are per-window flags. There are shared flags in ImGuiIO: io.ConfigWindowsResizeFromEdges and io.ConfigWindowsMoveFromTitleBarOnly)
  • ImGui.WindowFlags_None: default = 0
  • ImGui.WindowFlags_AlwaysAutoResize: Resize every window to its content every frame
  • ImGui.WindowFlags_AlwaysHorizontalScrollbar: Always show horizontal scrollbar (even if ContentSize.x < Size.x)
  • ImGui.WindowFlags_AlwaysUseWindowPadding: Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
  • ImGui.WindowFlags_AlwaysVerticalScrollbar: Always show vertical scrollbar (even if ContentSize.y < Size.y)
  • ImGui.WindowFlags_FullScreen: Custom constant, used to create a fullscreen window
  • ImGui.WindowFlags_HorizontalScrollbar: Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section
  • ImGui.WindowFlags_MenuBar: Has a menu-bar
  • ImGui.WindowFlags_NoBackground: Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f)
  • ImGui.WindowFlags_NoBringToFrontOnFocus: Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)
  • ImGui.WindowFlags_NoCollapse: Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node)
  • ImGui.WindowFlags_NoDecoration: A combination of ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse
  • ImGui.WindowFlags_NoFocusOnAppearing: Disable taking focus when transitioning from hidden to visible state
  • ImGui.WindowFlags_NoInputs: A combination of ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
  • ImGui.WindowFlags_NoMouseInputs: Disable catching mouse, hovering test with pass through
  • ImGui.WindowFlags_NoMove: Disable user moving the window
  • ImGui.WindowFlags_NoNav: A combination of ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus
  • ImGui.WindowFlags_NoNavFocus: No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
  • ImGui.WindowFlags_NoNavInputs: No gamepad/keyboard navigation within the window
  • ImGui.WindowFlags_NoResize: Disable user resizing with the lower-right grip
  • ImGui.WindowFlags_NoSavedSettings: Never load/save settings in .ini file
  • ImGui.WindowFlags_NoScrollbar: Disable scrollbars (window can still scroll with mouse or programmatically)
  • ImGui.WindowFlags_NoScrollWithMouse: Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set
  • ImGui.WindowFlags_NoTitleBar: Disable title-bar
  • ImGui.WindowFlags_UnsavedDocument: Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar


Dear ImGui