Difference between revisions of "Dear ImGui Flags"
Line 418: | Line 418: | ||
== TableFlags == | == TableFlags == | ||
− | + | Flags for ImGui::BeginTable() | |
− | ImGui.TableFlags_None | + | - '''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 |
− | ImGui.TableFlags_Borders | + | - The DEFAULT sizing policies are: |
− | ImGui.TableFlags_BordersH | + | - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize |
− | ImGui.TableFlags_BordersInner | + | - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off |
− | ImGui.TableFlags_BordersInnerH | + | - When ScrollX is off: |
− | ImGui.TableFlags_BordersInnerV | + | - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight |
− | ImGui.TableFlags_BordersOuter | + | - Columns sizing policy allowed: Stretch (default), Fixed/Auto |
− | ImGui.TableFlags_BordersOuterH | + | - Fixed Columns (if any) will generally obtain their requested width (unless the table cannot fit them all) |
− | ImGui.TableFlags_BordersOuterV | + | - Stretch Columns will share the remaining width according to their respective weight |
− | ImGui.TableFlags_BordersV | + | - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors |
− | ImGui.TableFlags_ContextMenuInBody | + | 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) |
− | ImGui.TableFlags_Hideable | + | - When ScrollX is on: |
− | ImGui.TableFlags_NoBordersInBody | + | - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed |
− | ImGui.TableFlags_NoBordersInBodyUntilResize | + | - Columns sizing policy allowed: Fixed/Auto mostly |
− | ImGui.TableFlags_NoClip | + | - Fixed Columns can be enlarged as needed. Table will show a horizontal scrollbar if needed |
− | ImGui.TableFlags_NoHostExtendX | + | - 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 |
− | ImGui.TableFlags_NoHostExtendY | + | - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable() |
− | ImGui.TableFlags_NoKeepColumnsVisible | + | 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_NoPadInnerX | + | |
− | ImGui.TableFlags_NoPadOuterX | + | *'''ImGui.TableFlags_None''': default = 0 |
− | ImGui.TableFlags_NoSavedSettings | + | *'''ImGui.TableFlags_Borders''': ImGui.TableFlags_BordersInner | ImGui.TableFlags_BordersOuter, Draw all borders |
− | ImGui.TableFlags_PadOuterX | + | *'''ImGui.TableFlags_BordersH''': ImGui.TableFlags_BordersInnerH | ImGui.TableFlags_BordersOuterH, Draw horizontal borders |
− | ImGui.TableFlags_PreciseWidths | + | *'''ImGui.TableFlags_BordersInner''': ImGui.TableFlags_BordersInnerV | ImGui.TableFlags_BordersInnerH, Draw inner borders |
− | ImGui.TableFlags_Reorderable | + | *'''ImGui.TableFlags_BordersInnerH ''': Draw horizontal borders between rows |
− | ImGui.TableFlags_Resizable | + | *'''ImGui.TableFlags_BordersInnerV''': Draw vertical borders between columns |
− | ImGui.TableFlags_RowBg | + | *'''ImGui.TableFlags_BordersOuter''': ImGui.TableFlags_BordersOuterV | ImGui.TableFlags_BordersOuterH, Draw outer borders |
− | ImGui.TableFlags_ScrollX | + | *'''ImGui.TableFlags_BordersOuterH''': Draw horizontal borders at the top and bottom |
− | ImGui.TableFlags_ScrollY | + | *'''ImGui.TableFlags_BordersOuterV''': Draw vertical borders on the left and right sides |
− | ImGui.TableFlags_SizingFixedFit | + | *'''ImGui.TableFlags_BordersV''': ImGui.TableFlags_BordersInnerV | ImGui.TableFlags_BordersOuterV, Draw vertical borders |
− | ImGui.TableFlags_SizingFixedSame | + | *'''ImGui.TableFlags_ContextMenuInBody''': Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow() |
− | ImGui.TableFlags_SizingStretchProp | + | *'''ImGui.TableFlags_Hideable''': Enable hiding/disabling columns in context menu |
− | ImGui.TableFlags_SizingStretchSame | + | *'''ImGui.TableFlags_NoBordersInBody''': [ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style |
− | ImGui.TableFlags_Sortable | + | *'''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_SortMulti | + | *'''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_SortTristate | + | *'''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 == | == TableBgTarget == |
Revision as of 18:08, 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.
This is going to be exposed in imgui.h when stabilized enough.
- 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
- 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
ImGui.TableBgTarget_None
ImGui.TableBgTarget_CellBg
ImGui.TableBgTarget_RowBg0
ImGui.TableBgTarget_RowBg1
TableColumnFlags
ImGui.TableColumnFlags_None
ImGui.TableColumnFlags_DefaultHide
ImGui.TableColumnFlags_DefaultSort
ImGui.TableColumnFlags_Disabled
ImGui.TableColumnFlags_IndentDisable
ImGui.TableColumnFlags_IndentEnable
ImGui.TableColumnFlags_IsEnabled
ImGui.TableColumnFlags_IsHovered
ImGui.TableColumnFlags_IsSorted
ImGui.TableColumnFlags_IsVisible
ImGui.TableColumnFlags_NoClip
ImGui.TableColumnFlags_NoHeaderLabel
ImGui.TableColumnFlags_NoHeaderWidth
ImGui.TableColumnFlags_NoHide
ImGui.TableColumnFlags_NoReorder
ImGui.TableColumnFlags_NoResize
ImGui.TableColumnFlags_NoSort
ImGui.TableColumnFlags_NoSortAscending
ImGui.TableColumnFlags_NoSortDescending
ImGui.TableColumnFlags_PreferSortAscending
ImGui.TableColumnFlags_PreferSortDescending
ImGui.TableColumnFlags_WidthFixed
ImGui.TableColumnFlags_WidthStretch
TableRowFlags
ImGui.TableRowFlags_None
ImGui.TableRowFlags_Headers
TE
ImGui.TE_Background
ImGui.TE_Breakpoint
ImGui.TE_CharLiteral
ImGui.TE_ColorIndex
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
ImGui.TreeNodeFlags_None
ImGui.TreeNodeFlags_AllowItemOverlap
ImGui.TreeNodeFlags_Bullet
ImGui.TreeNodeFlags_CollapsingHeader
ImGui.TreeNodeFlags_DefaultOpen
ImGui.TreeNodeFlags_Framed
ImGui.TreeNodeFlags_FramePadding
ImGui.TreeNodeFlags_Leaf
ImGui.TreeNodeFlags_NavLeftJumpsBackHere
ImGui.TreeNodeFlags_NoAutoOpenOnLog
ImGui.TreeNodeFlags_NoTreePushOnOpen
ImGui.TreeNodeFlags_OpenOnArrow
ImGui.TreeNodeFlags_OpenOnDoubleClick
ImGui.TreeNodeFlags_Selected
ImGui.TreeNodeFlags_SpanAvailWidth
ImGui.TreeNodeFlags_SpanFullWidth
WindowFlags
- 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