Flags#

Flags are passed as int. The values are enum.IntFlag members of the classes below and can be combined with |:

imgui.slider_float(
    "gamma", v=gamma, v_min=0.1, v_max=5.0,
    flags=imgui.SliderFlags_.logarithmic | imgui.SliderFlags_.no_input,
)

Col_, Cond_, StyleVar_ hold single values rather than flags, they are listed here because the elements take them.

imgui.ButtonFlags_#

Flags for InvisibleButton() [extended in imgui_internal.h]

member

description

ButtonFlags_.none

ButtonFlags_.mouse_button_left

React on left mouse button (default)

ButtonFlags_.mouse_button_right

React on right mouse button

ButtonFlags_.mouse_button_middle

React on center mouse button

ButtonFlags_.mouse_button_mask_

[Internal]

ButtonFlags_.enable_nav

InvisibleButton(): do not disable navigation/tabbing. Otherwise disabled by default.

ButtonFlags_.allow_overlap

Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().

imgui.ChildFlags_#

Flags for ImGui::BeginChild()

member

description

ChildFlags_.none

ChildFlags_.borders

Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == True for legacy reason)

ChildFlags_.always_use_window_padding

Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)

ChildFlags_.resize_x

Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags)

ChildFlags_.resize_y

Allow resize from bottom border (layout direction). “

ChildFlags_.auto_resize_x

Enable auto-resizing width. Read “IMPORTANT: Size measurement” details above.

ChildFlags_.auto_resize_y

Enable auto-resizing height. Read “IMPORTANT: Size measurement” details above.

ChildFlags_.always_auto_resize

Combined with AutoResizeX/AutoResizeY. Always measure size even when child is hidden, always return True, always disable clipping optimization! NOT RECOMMENDED.

ChildFlags_.frame_style

Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.

ChildFlags_.nav_flattened

[BETA] Share focus scope, allow keyboard/gamepad navigation to cross over parent border to this child or between sibling child windows.

imgui.Col_#

Enumeration for PushStyleColor() / PopStyleColor()

member

description

Col_.text

Col_.text_disabled

Col_.window_bg

Background of normal windows

Col_.child_bg

Background of child windows

Col_.popup_bg

Background of popups, menus, tooltips windows

Col_.border

Col_.border_shadow

Col_.frame_bg

Background of checkbox, radio button, plot, slider, text input

Col_.frame_bg_hovered

Col_.frame_bg_active

Col_.title_bg

Title bar

Col_.title_bg_active

Title bar when focused

Col_.title_bg_collapsed

Title bar when collapsed

Col_.menu_bar_bg

Col_.scrollbar_bg

Col_.scrollbar_grab

Col_.scrollbar_grab_hovered

Col_.scrollbar_grab_active

Col_.check_mark

Checkbox tick and RadioButton circle

Col_.checkbox_selected_bg

Checkbox background when Selected, otherwise use FrameBg

Col_.slider_grab

Col_.slider_grab_active

Col_.button

Col_.button_hovered

Col_.button_active

Col_.header

Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem

Col_.header_hovered

Col_.header_active

Col_.separator

Col_.separator_hovered

Col_.separator_active

Col_.resize_grip

Resize grip in lower-right and lower-left corners of windows.

Col_.resize_grip_hovered

Col_.resize_grip_active

Col_.input_text_cursor

InputText cursor/caret

Col_.tab_hovered

Tab background, when hovered

Col_.tab

Tab background, when tab-bar is focused & tab is unselected

Col_.tab_selected

Tab background, when tab-bar is focused & tab is selected

Col_.tab_selected_overline

Tab horizontal overline, when tab-bar is focused & tab is selected

Col_.tab_dimmed

Tab background, when tab-bar is unfocused & tab is unselected

Col_.tab_dimmed_selected

Tab background, when tab-bar is unfocused & tab is selected

Col_.tab_dimmed_selected_overline

..horizontal overline, when tab-bar is unfocused & tab is selected

Col_.docking_preview

Preview overlay color when about to docking something

Col_.docking_empty_bg

Background color for empty node (e.g. CentralNode with no window docked into it)

Col_.plot_lines

Col_.plot_lines_hovered

Col_.plot_histogram

Col_.plot_histogram_hovered

Col_.table_header_bg

Table header background

Col_.table_border_strong

Table outer and header borders (prefer using Alpha=1.0 here)

Col_.table_border_light

Table inner borders (prefer using Alpha=1.0 here)

Col_.table_row_bg

Table row background (even rows)

Col_.table_row_bg_alt

Table row background (odd rows)

Col_.text_link

Hyperlink color

Col_.text_selected_bg

Selected text inside an InputText

Col_.tree_lines

Tree node hierarchy outlines when using ImGuiTreeNodeFlags_DrawLines

Col_.drag_drop_target

Rectangle border highlighting a drop target

Col_.drag_drop_target_bg

Rectangle background highlighting a drop target

Col_.unsaved_marker

Unsaved Document marker (in window title and tabs)

Col_.nav_cursor

Color of keyboard/gamepad navigation cursor/rectangle, when visible

Col_.nav_windowing_highlight

Highlight window when using Ctrl+Tab

Col_.nav_windowing_dim_bg

Darken/colorize entire screen behind the Ctrl+Tab window list, when active

Col_.modal_window_dim_bg

Darken/colorize entire screen behind a modal window, when one is active

Col_.count

imgui.ColorEditFlags_#

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

member

description

ColorEditFlags_.none

ColorEditFlags_.no_alpha

// ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).

ColorEditFlags_.no_picker

// ColorEdit: disable picker when clicking on color square.

ColorEditFlags_.no_options

// ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.

ColorEditFlags_.no_small_preview

// ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)

ColorEditFlags_.no_inputs

// ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).

ColorEditFlags_.no_tooltip

// ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.

ColorEditFlags_.no_label

// ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).

ColorEditFlags_.no_side_preview

// ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.

ColorEditFlags_.no_drag_drop

// ColorEdit: disable drag and drop target/source. ColorButton: disable drag and drop source.

ColorEditFlags_.no_border

// ColorButton: disable border (which is enforced by default)

ColorEditFlags_.no_color_markers

// ColorEdit: disable rendering R/G/B/A color marker. May also be disabled globally by setting style.ColorMarkerSize = 0.

ColorEditFlags_.alpha_opaque

// ColorEdit, ColorPicker, ColorButton: disable alpha in the preview,. Contrary to _NoAlpha it may still be edited when calling ColorEdit4()/ColorPicker4(). For ColorButton() this does the same as _NoAlpha.

ColorEditFlags_.alpha_no_bg

// ColorEdit, ColorPicker, ColorButton: disable rendering a checkerboard background behind transparent color.

ColorEditFlags_.alpha_preview_half

// ColorEdit, ColorPicker, ColorButton: display half opaque / half transparent preview.

ColorEditFlags_.alpha_bar

// ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.

ColorEditFlags_.hdr

// (WIP) ColorEdit: Currently only disable 0.0..1.0 limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).

ColorEditFlags_.display_rgb

[Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.

ColorEditFlags_.display_hsv

[Display] // “

ColorEditFlags_.display_hex

[Display] // “

ColorEditFlags_.uint8

[DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.

ColorEditFlags_.float

[DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0..1.0 floats instead of 0..255 integers. No round-trip of value via integers.

ColorEditFlags_.picker_hue_bar

[Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value.

ColorEditFlags_.picker_hue_wheel

[Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value.

ColorEditFlags_.input_rgb

[Input] // ColorEdit, ColorPicker: input and output data in RGB format.

ColorEditFlags_.input_hsv

[Input] // ColorEdit, ColorPicker: input and output data in HSV format.

ColorEditFlags_.default_options_

ColorEditFlags_.alpha_mask_

ColorEditFlags_.display_mask_

ColorEditFlags_.data_type_mask_

ColorEditFlags_.picker_mask_

ColorEditFlags_.input_mask_

imgui.ComboFlags_#

Flags for ImGui::BeginCombo()

member

description

ComboFlags_.none

ComboFlags_.popup_align_left

Align the popup toward the left by default

ComboFlags_.height_small

Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()

ComboFlags_.height_regular

Max ~8 items visible (default)

ComboFlags_.height_large

Max ~20 items visible

ComboFlags_.height_largest

As many fitting items as possible

ComboFlags_.no_arrow_button

Display on the preview box without the square arrow button

ComboFlags_.no_preview

Display only a square arrow button

ComboFlags_.width_fit_preview

Width dynamically calculated from preview contents

ComboFlags_.height_mask_

imgui.Cond_#

Enumeration for ImGui::SetNextWindow***(), SetWindow***(), SetNextItem***() functions

member

description

Cond_.none

No condition (always set the variable), same as _Always

Cond_.always

No condition (always set the variable), same as _None

Cond_.once

Set the variable once per runtime session (only the first call will succeed)

Cond_.first_use_ever

Set the variable if the object/window has no persistently saved data (no entry in .ini file)

Cond_.appearing

Set the variable if the object/window is appearing after being hidden/inactive (or the first time)

imgui.FocusedFlags_#

Flags for ImGui::IsWindowFocused()

member

description

FocusedFlags_.none

FocusedFlags_.child_windows

Return True if any children of the window is focused

FocusedFlags_.root_window

Test from root window (top most parent of the current hierarchy)

FocusedFlags_.any_window

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!

FocusedFlags_.no_popup_hierarchy

Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)

FocusedFlags_.dock_hierarchy

Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)

FocusedFlags_.root_and_child_windows

imgui.HoveredFlags_#

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

member

description

HoveredFlags_.none

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.

HoveredFlags_.child_windows

IsWindowHovered() only: Return True if any children of the window is hovered

HoveredFlags_.root_window

IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)

HoveredFlags_.any_window

IsWindowHovered() only: Return True if any window is hovered

HoveredFlags_.no_popup_hierarchy

IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)

HoveredFlags_.dock_hierarchy

IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)

HoveredFlags_.allow_when_blocked_by_popup

Return True even if a popup window is normally blocking access to this item/window

HoveredFlags_.allow_when_blocked_by_active_item

Return True even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.

HoveredFlags_.allow_when_overlapped_by_item

IsItemHovered() only: Return True even if the item uses AllowOverlap mode and is overlapped by another hoverable item.

HoveredFlags_.allow_when_overlapped_by_window

IsItemHovered() only: Return True even if the position is obstructed or overlapped by another window.

HoveredFlags_.allow_when_disabled

IsItemHovered() only: Return True even if the item is disabled

HoveredFlags_.no_nav_override

IsItemHovered() only: Disable using keyboard/gamepad navigation state when active, always query mouse

HoveredFlags_.allow_when_overlapped

HoveredFlags_.rect_only

HoveredFlags_.root_and_child_windows

HoveredFlags_.for_tooltip

Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence.

HoveredFlags_.stationary

Require mouse to be stationary for style.HoverStationaryDelay (~0.15 sec) _at least one time_. After this, can move on same item/window. Using the stationary test tends to reduces the need for a long delay.

HoveredFlags_.delay_none

IsItemHovered() only: Return True immediately (default). As this is the default you generally ignore this.

HoveredFlags_.delay_short

IsItemHovered() only: Return True after style.HoverDelayShort elapsed (~0.15 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).

HoveredFlags_.delay_normal

IsItemHovered() only: Return True after style.HoverDelayNormal elapsed (~0.40 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).

HoveredFlags_.no_shared_delay

IsItemHovered() only: Disable shared delay system where moving from one item to the next keeps the previous timer for a short time (standard for tooltips with long delays)

imgui.InputTextFlags_#

Flags for ImGui::InputText()

member

description

InputTextFlags_.none

InputTextFlags_.chars_decimal

Allow 0123456789.+-*/

InputTextFlags_.chars_hexadecimal

Allow 0123456789ABCDEFabcdef

InputTextFlags_.chars_scientific

Allow 0123456789.+-*/eE (Scientific notation input)

InputTextFlags_.chars_uppercase

Turn a..z into A..Z

InputTextFlags_.chars_no_blank

Filter out spaces, tabs

InputTextFlags_.allow_tab_input

Pressing TAB input a ‘\t’ character into the text field

InputTextFlags_.enter_returns_true

Return ‘True’ when Enter is pressed (as opposed to every time the value was modified). Consider using IsItemDeactivatedAfterEdit() instead!

InputTextFlags_.escape_clears_all

Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)

InputTextFlags_.ctrl_enter_for_new_line

In multi-line mode: validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter). Note that Shift+Enter always enter a new line either way.

InputTextFlags_.read_only

Read-only mode

InputTextFlags_.password

Password mode, display all characters as ‘*’, disable copy

InputTextFlags_.always_overwrite

Overwrite mode

InputTextFlags_.auto_select_all

Select entire text when first taking mouse focus

InputTextFlags_.parse_empty_ref_val

InputFloat(), InputInt(), InputScalar() etc. only: parse empty string as zero value.

InputTextFlags_.display_empty_ref_val

InputFloat(), InputInt(), InputScalar() etc. only: when value is zero, do not display it. Generally used with ImGuiInputTextFlags_ParseEmptyRefVal.

InputTextFlags_.no_horizontal_scroll

Disable following the cursor horizontally

InputTextFlags_.no_undo_redo

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().

InputTextFlags_.elide_left

When text doesn’t fit, elide left side to ensure right side stays visible. Useful for path/filenames. Single-line only!

InputTextFlags_.callback_completion

Callback on pressing TAB (for completion handling)

InputTextFlags_.callback_history

Callback on pressing Up/Down arrows (for history handling)

InputTextFlags_.callback_always

Callback on each iteration. User code may query cursor position, modify text buffer.

InputTextFlags_.callback_char_filter

Callback on character inputs to replace or discard them. Modify ‘EventChar’ to replace or discard, or return 1 in callback to discard.

InputTextFlags_.callback_resize

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)

InputTextFlags_.callback_edit

Callback on any edit. Note that InputText() already returns True on edit + you can always use IsItemEdited(). The callback is useful to manipulate the underlying buffer while focus is active.

InputTextFlags_.word_wrap

InputTextMultiline(): word-wrap lines that are too long.

imgui.PopupFlags_#

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

member

description

PopupFlags_.none

PopupFlags_.mouse_button_left

For BeginPopupContext*(): open on Left Mouse release. Only one button allowed!

PopupFlags_.mouse_button_right

For BeginPopupContext*(): open on Right Mouse release. Only one button allowed! (default)

PopupFlags_.mouse_button_middle

For BeginPopupContext*(): open on Middle Mouse release. Only one button allowed!

PopupFlags_.no_reopen

For OpenPopup*(), BeginPopupContext*(): don’t reopen same popup if already open (won’t reposition, won’t reinitialize navigation)

PopupFlags_.no_open_over_existing_popup

For OpenPopup*(), BeginPopupContext*(): don’t open if there’s already a popup at the same level of the popup stack

PopupFlags_.no_open_over_items

For BeginPopupContextWindow(): don’t return True when hovering items, only when hovering empty space

PopupFlags_.any_popup_id

For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.

PopupFlags_.any_popup_level

For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)

PopupFlags_.any_popup

PopupFlags_.mouse_button_shift_

[Internal]

PopupFlags_.mouse_button_mask_

[Internal]

PopupFlags_.invalid_mask_

[Internal] Reserve legacy bits 0-1 to detect incorrectly passing 1 or 2 to the function.

imgui.SelectableFlags_#

Flags for ImGui::Selectable()

member

description

SelectableFlags_.none

SelectableFlags_.no_auto_close_popups

Clicking this doesn’t close parent popup window (overrides ImGuiItemFlags_AutoClosePopups)

SelectableFlags_.span_all_columns

Frame will span all columns of its container table (text will still fit in current column)

SelectableFlags_.allow_double_click

Generate press events on double clicks too

SelectableFlags_.disabled

Cannot be selected, display grayed out text

SelectableFlags_.allow_overlap

Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().

SelectableFlags_.highlight

Make the item be displayed as if it is hovered

SelectableFlags_.select_on_nav

Auto-select when moved into, unless Ctrl is held. Automatic when in a BeginMultiSelect() block.

imgui.SliderFlags_#

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

member

description

SliderFlags_.none

SliderFlags_.logarithmic

Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits.

SliderFlags_.no_round_to_format

Disable rounding underlying value to match precision of the display format string (e.g. %.3 values are rounded to those 3 digits).

SliderFlags_.no_input

Disable Ctrl+Click or Enter key allowing to input text directly into the widget.

SliderFlags_.wrap_around

Enable wrapping around from max to min and from min to max. Only supported by DragXXX() functions for now.

SliderFlags_.clamp_on_input

Clamp value to min/max bounds when input manually with Ctrl+Click. By default Ctrl+Click allows going out of bounds.

SliderFlags_.clamp_zero_range

Clamp even if min==max==0.0. Otherwise due to legacy reason DragXXX functions don’t clamp with those values. When your clamping limits are dynamic you almost always want to use it.

SliderFlags_.no_speed_tweaks

Disable keyboard modifiers altering tweak speed. Useful if you want to alter tweak speed yourself based on your own logic.

SliderFlags_.color_markers

DragScalarN(), SliderScalarN(): Draw R/G/B/A color markers on each component.

SliderFlags_.always_clamp

SliderFlags_.invalid_mask_

[Internal] We treat using those bits as being potentially a ‘float power’ argument from legacy API (obsoleted 2020-08) that has got miscast to this enum, and will trigger an assert if needed.

imgui.StyleVar_#

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

member

description

StyleVar_.alpha

float Alpha

StyleVar_.disabled_alpha

float DisabledAlpha

StyleVar_.window_padding

ImVec2 WindowPadding

StyleVar_.window_rounding

float WindowRounding

StyleVar_.window_border_size

float WindowBorderSize

StyleVar_.window_min_size

ImVec2 WindowMinSize

StyleVar_.window_title_align

ImVec2 WindowTitleAlign

StyleVar_.child_rounding

float ChildRounding

StyleVar_.child_border_size

float ChildBorderSize

StyleVar_.popup_rounding

float PopupRounding

StyleVar_.popup_border_size

float PopupBorderSize

StyleVar_.frame_padding

ImVec2 FramePadding

StyleVar_.frame_rounding

float FrameRounding

StyleVar_.frame_border_size

float FrameBorderSize

StyleVar_.item_spacing

ImVec2 ItemSpacing

StyleVar_.item_inner_spacing

ImVec2 ItemInnerSpacing

StyleVar_.indent_spacing

float IndentSpacing

StyleVar_.cell_padding

ImVec2 CellPadding

StyleVar_.scrollbar_size

float ScrollbarSize

StyleVar_.scrollbar_rounding

float ScrollbarRounding

StyleVar_.scrollbar_padding

float ScrollbarPadding

StyleVar_.grab_min_size

float GrabMinSize

StyleVar_.grab_rounding

float GrabRounding

StyleVar_.image_rounding

float ImageRounding

StyleVar_.image_border_size

float ImageBorderSize

StyleVar_.layout_align

float LayoutAlign

StyleVar_.tab_rounding

float TabRounding

StyleVar_.tab_border_size

float TabBorderSize

StyleVar_.tab_min_width_base

float TabMinWidthBase

StyleVar_.tab_min_width_shrink

float TabMinWidthShrink

StyleVar_.tab_bar_border_size

float TabBarBorderSize

StyleVar_.tab_bar_overline_size

float TabBarOverlineSize

StyleVar_.table_angled_headers_angle

float TableAngledHeadersAngle

StyleVar_.table_angled_headers_text_align

ImVec2 TableAngledHeadersTextAlign

StyleVar_.tree_lines_size

float TreeLinesSize

StyleVar_.tree_lines_rounding

float TreeLinesRounding

StyleVar_.drag_drop_target_rounding

float DragDropTargetRounding

StyleVar_.button_text_align

ImVec2 ButtonTextAlign

StyleVar_.selectable_text_align

ImVec2 SelectableTextAlign

StyleVar_.separator_size

float SeparatorSize

StyleVar_.separator_text_border_size

float SeparatorTextBorderSize

StyleVar_.separator_text_align

ImVec2 SeparatorTextAlign

StyleVar_.separator_text_padding

ImVec2 SeparatorTextPadding

StyleVar_.docking_separator_size

float DockingSeparatorSize

StyleVar_.count

imgui.TabBarFlags_#

Flags for ImGui::BeginTabBar()

member

description

TabBarFlags_.none

TabBarFlags_.reorderable

Allow manually dragging tabs to re-order them + New tabs are appended at the end of list

TabBarFlags_.auto_select_new_tabs

Automatically select new tabs when they appear

TabBarFlags_.tab_list_popup_button

Disable buttons to open the tab list popup

TabBarFlags_.no_close_with_middle_mouse_button

Disable behavior of closing tabs (that are submitted with p_open != None) with middle mouse button. You may handle this behavior manually on user’s side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = False.

TabBarFlags_.no_tab_list_scrolling_buttons

Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)

TabBarFlags_.no_tooltip

Disable tooltips when hovering a tab

TabBarFlags_.draw_selected_overline

Draw selected overline markers over selected tab

TabBarFlags_.fitting_policy_mixed

Shrink down tabs when they don’t fit, until width is style.TabMinWidthShrink, then enable scrolling. Setting TabMinWidthShrink to FLT_MAX makes this behave like ImGuiTabBarFlags_FittingPolicyScroll.

TabBarFlags_.fitting_policy_shrink

Shrink down tabs when they don’t fit

TabBarFlags_.fitting_policy_scroll

Enable scrolling buttons when tabs don’t fit

TabBarFlags_.fitting_policy_mask_

TabBarFlags_.fitting_policy_default_

imgui.TabItemFlags_#

Flags for ImGui::BeginTabItem()

member

description

TabItemFlags_.none

TabItemFlags_.unsaved_document

Display a dot next to the title + set ImGuiTabItemFlags_NoAssumedClosure.

TabItemFlags_.set_selected

Trigger flag to programmatically make the tab selected when calling BeginTabItem()

TabItemFlags_.no_close_with_middle_mouse_button

Disable behavior of closing tabs (that are submitted with p_open != None) with middle mouse button. You may handle this behavior manually on user’s side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = False.

TabItemFlags_.no_push_id

Don’t call PushID()/PopID() on BeginTabItem()/EndTabItem()

TabItemFlags_.no_tooltip

Disable tooltip for the given tab

TabItemFlags_.no_reorder

Disable reordering this tab or having another tab cross over this tab

TabItemFlags_.leading

Enforce the tab position to the left of the tab bar (after the tab list popup button)

TabItemFlags_.trailing

Enforce the tab position to the right of the tab bar (before the scrolling buttons)

TabItemFlags_.no_assumed_closure

Tab is selected when trying to close + closure is not immediately 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.

imgui.TableColumnFlags_#

Flags for ImGui::TableSetupColumn()

member

description

TableColumnFlags_.none

TableColumnFlags_.disabled

Overriding/master disable flag: hide column, won’t show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)

TableColumnFlags_.default_hide

Default as a hidden/disabled column.

TableColumnFlags_.default_sort

Default as a sorting column.

TableColumnFlags_.width_stretch

Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp).

TableColumnFlags_.width_fixed

Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable).

TableColumnFlags_.no_resize

Disable manual resizing.

TableColumnFlags_.no_reorder

Disable manual reordering this column, this will also prevent other columns from crossing over this column.

TableColumnFlags_.no_hide

Disable ability to hide/disable this column.

TableColumnFlags_.no_clip

Disable clipping for this column (all NoClip columns will render in a same draw command).

TableColumnFlags_.no_sort

Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table).

TableColumnFlags_.no_sort_ascending

Disable ability to sort in the ascending direction.

TableColumnFlags_.no_sort_descending

Disable ability to sort in the descending direction.

TableColumnFlags_.no_header_label

TableHeadersRow() will submit an empty label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. You may append into this cell by calling TableSetColumnIndex() right after the TableHeadersRow() call.

TableColumnFlags_.no_header_width

Disable header text width contribution to automatic column width.

TableColumnFlags_.prefer_sort_ascending

Make the initial sort direction Ascending when first sorting on this column (default).

TableColumnFlags_.prefer_sort_descending

Make the initial sort direction Descending when first sorting on this column.

TableColumnFlags_.indent_enable

Use current Indent value when entering cell (default for column 0).

TableColumnFlags_.indent_disable

Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored.

TableColumnFlags_.angled_header

TableHeadersRow() will submit an angled header row for this column. Note this will add an extra row.

TableColumnFlags_.is_enabled

Status: is enabled == not hidden by user/api (referred to as “Hide” in _DefaultHide and _NoHide) flags.

TableColumnFlags_.is_visible

Status: is visible == is enabled AND not clipped by scrolling.

TableColumnFlags_.is_sorted

Status: is currently part of the sort specs

TableColumnFlags_.is_hovered

Status: is hovered by mouse

TableColumnFlags_.width_mask_

TableColumnFlags_.indent_mask_

TableColumnFlags_.status_mask_

TableColumnFlags_.no_direct_resize_

[Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge)

imgui.TableFlags_#

Flags for ImGui::BeginTable()

member

description

TableFlags_.none

TableFlags_.resizable

Enable resizing columns.

TableFlags_.reorderable

Enable reordering columns in header row. (Need calling TableSetupColumn() + TableHeadersRow() to display headers, or using ImGuiTableFlags_ContextMenuInBody to access context-menu without headers).

TableFlags_.hideable

Enable hiding/disabling columns in context menu.

TableFlags_.sortable

Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.

TableFlags_.no_saved_settings

Disable persisting columns order, width, visibility and sort settings in the .ini file.

TableFlags_.context_menu_in_body

Right-click on columns body/contents will also display table context menu. By default it is available in TableHeadersRow().

TableFlags_.row_bg

Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)

TableFlags_.borders_inner_h

Draw horizontal borders between rows.

TableFlags_.borders_outer_h

Draw horizontal borders at the top and bottom.

TableFlags_.borders_inner_v

Draw vertical borders between columns.

TableFlags_.borders_outer_v

Draw vertical borders on the left and right sides.

TableFlags_.borders_h

Draw horizontal borders.

TableFlags_.borders_v

Draw vertical borders.

TableFlags_.borders_inner

Draw inner borders.

TableFlags_.borders_outer

Draw outer borders.

TableFlags_.borders

Draw all borders.

TableFlags_.no_borders_in_body

[ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style

TableFlags_.no_borders_in_body_until_resize

[ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style

TableFlags_.sizing_fixed_fit

Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.

TableFlags_.sizing_fixed_same

Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible.

TableFlags_.sizing_stretch_prop

Columns default to _WidthStretch with default weights proportional to each columns contents widths.

TableFlags_.sizing_stretch_same

Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().

TableFlags_.no_host_extend_x

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.

TableFlags_.no_host_extend_y

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.

TableFlags_.no_keep_columns_visible

Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable.

TableFlags_.precise_widths

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.

TableFlags_.no_clip

Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().

TableFlags_.pad_outer_x

Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers.

TableFlags_.no_pad_outer_x

Default if BordersOuterV is off. Disable outermost padding.

TableFlags_.no_pad_inner_x

Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).

TableFlags_.scroll_x

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.

TableFlags_.scroll_y

Enable vertical scrolling. Require ‘outer_size’ parameter of BeginTable() to specify the container size.

TableFlags_.sort_multi

Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).

TableFlags_.sort_tristate

Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).

TableFlags_.highlight_hovered_column

Highlight column headers when hovered (may evolve into a fuller highlight)

TableFlags_.sizing_mask_

imgui.TableRowFlags_#

Flags for ImGui::TableNextRow()

member

description

TableRowFlags_.none

TableRowFlags_.headers

Identify header row (set default background color + width of its contents accounted differently for auto column width)

imgui.TreeNodeFlags_#

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

member

description

TreeNodeFlags_.none

TreeNodeFlags_.selected

Draw as selected

TreeNodeFlags_.framed

Draw frame with background (e.g. for CollapsingHeader)

TreeNodeFlags_.allow_overlap

Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().

TreeNodeFlags_.no_tree_push_on_open

Don’t do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack

TreeNodeFlags_.no_auto_open_on_log

Don’t automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)

TreeNodeFlags_.default_open

Default node to be open

TreeNodeFlags_.open_on_double_click

Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.

TreeNodeFlags_.open_on_arrow

Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.

TreeNodeFlags_.leaf

No collapsing, no arrow (use as a convenience for leaf nodes). Note: will always open a tree/id scope and return True. If you never use that scope, add ImGuiTreeNodeFlags_NoTreePushOnOpen.

TreeNodeFlags_.bullet

Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don’t set the _Leaf flag!

TreeNodeFlags_.frame_padding

Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node.

TreeNodeFlags_.span_avail_width

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 without using AllowOverlap mode.

TreeNodeFlags_.span_full_width

Extend hit box to the left-most and right-most edges (cover the indent area).

TreeNodeFlags_.span_label_width

Narrow hit box + narrow hovering highlight, will only cover the label text.

TreeNodeFlags_.span_all_columns

Frame will span all columns of its container table (label will still fit in current column)

TreeNodeFlags_.label_span_all_columns

Label will span all columns of its container table

TreeNodeFlags_.nav_left_jumps_to_parent

Nav: left arrow moves back to parent. This is processed in TreePop() when there’s an unfulfilled Left nav request remaining.

TreeNodeFlags_.collapsing_header

TreeNodeFlags_.draw_lines_none

No lines drawn

TreeNodeFlags_.draw_lines_full

Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents. Faster (for large trees).

TreeNodeFlags_.draw_lines_to_nodes

Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node. Slower (for large trees).

imgui.WindowFlags_#

Flags for ImGui::Begin()

member

description

WindowFlags_.none

WindowFlags_.no_title_bar

Disable title-bar

WindowFlags_.no_resize

Disable user resizing with the lower-right grip

WindowFlags_.no_move

Disable user moving the window

WindowFlags_.no_scrollbar

Disable scrollbars (window can still scroll with mouse or programmatically)

WindowFlags_.no_scroll_with_mouse

Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.

WindowFlags_.no_collapse

Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node).

WindowFlags_.always_auto_resize

Resize every window to its content every frame

WindowFlags_.no_background

Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0).

WindowFlags_.no_saved_settings

Never load/save settings in .ini file

WindowFlags_.no_mouse_inputs

Disable catching mouse, hovering test with pass through.

WindowFlags_.menu_bar

Has a menu-bar

WindowFlags_.horizontal_scrollbar

Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0)); prior to calling Begin() to specify width. Read code in imgui_demo in the “Horizontal Scrolling” section.

WindowFlags_.no_focus_on_appearing

Disable taking focus when transitioning from hidden to visible state

WindowFlags_.no_bring_to_front_on_focus

Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)

WindowFlags_.always_vertical_scrollbar

Always show vertical scrollbar (even if ContentSize.y < Size.y)

WindowFlags_.always_horizontal_scrollbar

Always show horizontal scrollbar (even if ContentSize.x < Size.x)

WindowFlags_.no_nav_inputs

No keyboard/gamepad navigation within the window

WindowFlags_.no_nav_focus

No focusing toward this window with keyboard/gamepad navigation (e.g. skipped by Ctrl+Tab)

WindowFlags_.unsaved_document

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.

WindowFlags_.no_docking

Disable docking of this window

WindowFlags_.no_nav

WindowFlags_.no_decoration

WindowFlags_.no_inputs

WindowFlags_.dock_node_host

Don’t use! For internal use by Begin()/NewFrame()

WindowFlags_.child_window

Don’t use! For internal use by BeginChild()

WindowFlags_.tooltip

Don’t use! For internal use by BeginTooltip()

WindowFlags_.popup

Don’t use! For internal use by BeginPopup()

WindowFlags_.modal

Don’t use! For internal use by BeginPopupModal()

WindowFlags_.child_menu

Don’t use! For internal use by BeginMenu()