API methods for creating widgets such as buttons, sliders, dropdowns, etc. Use widgets to control parameter values during runtime. Great for experimentation and fine-tuning values. Also usable for building application user-interfaces.
No description available
UI_Bool()
Default constructor for UI_Bool.
UI_Bool(int val)
No description available
int val()
No description available
void val(int val)
No description available
int bool_val
No description available
[ top ]
No description available
UI_String()
Default constructor for UI_String.
UI_String(string str)
No description available
string val()
No description available
void val(string val)
No description available
[ top ]
No description available
UI_Int()
Default constructor for UI_Int.
UI_Int(int initializer_int)
No description available
int val()
No description available
int val(int val)
No description available
[ top ]
No description available
UI_Int2()
Default constructor for UI_Int2.
void val(int x, int y)
No description available
int y()
No description available
int x()
No description available
[ top ]
No description available
UI_Int3()
Default constructor for UI_Int3.
void val(int x, int y, int z)
No description available
int y()
No description available
int x()
No description available
int z()
No description available
[ top ]
No description available
UI_Int4()
Default constructor for UI_Int4.
void val(int x, int y, int z, int w)
No description available
int y()
No description available
int x()
No description available
int z()
No description available
int w()
No description available
[ top ]
No description available
UI_Float()
Default constructor for UI_Float.
UI_Float(float val)
No description available
float val()
No description available
float val(float val)
No description available
[ top ]
No description available
UI_Float2()
Default constructor for UI_Float2.
UI_Float2(vec2 val)
No description available
vec2 val()
No description available
vec2 val(vec2 val)
No description available
[ top ]
No description available
UI_Float3()
Default constructor for UI_Float3.
UI_Float3(vec3 val)
No description available
vec3 val()
No description available
vec3 val(vec3 val)
No description available
[ top ]
No description available
UI_Float4()
Default constructor for UI_Float4.
UI_Float4(vec4 val)
No description available
vec4 val()
No description available
vec4 val(vec4 val)
No description available
[ top ]
Internal class used by ImGui. DO NOT INSTANTIATE DIRECTLY Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows. With multi-viewport enabled, we extend this concept to have multiple active viewports. In the future we will extend this concept further to also represent Platform Monitor and support a 'no main platform window' operation mode. About Main Area vs Work Area: - Main Area = entire viewport. - Work Area = entire viewport minus sections used by main menu bars (for platform windows), or by task bar (for platform monitor). - Windows are generally trying to stay within the Work Area of their host viewport.
UI_Viewport()
Default constructor for UI_Viewport.
vec2 center()
Main Area: Center position of the viewport.
vec2 size()
Main Area: Size of the viewport.
int id()
Returns the unique identifier for the viewport.
int flags()
Returns the UI_ViewportFlags for the viewport.
vec2 pos()
Main Area: Position of the viewport (Dear ImGui coordinates are the same as OS desktop/native coordinates).
vec2 workPos()
Work Area: Position of the viewport minus task bars, menus bars, status bars (>= Pos).
vec2 workSize()
Work Area: Size of the viewport minus task bars, menu bars, status bars (<= Size).
float dpiScale()
DPI scale: 1.0f = 96 DPI = No extra scale.
int parentID()
(Advanced) 0: no parent. Instruct the platform backend to setup a parent/child relationship between platform windows.
vec2 workCenter()
Work Area: Center position of the viewport.
[ top ]
Internal class. Do not instantiate directly. Use UI.getStyle() instead. You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame().During the frame, use UI.pushStyleVar(UI_StyleVar.XXXX)/popStyleVar() to alter the main style values,and UI.pushStyleColor(UI_Color.XXX)/popStyleColor() for colors.
UI_Style()
Default constructor for UI_Style.
void logSliderDeadzone(float logSliderDeadzone)
No description available
void tabRounding(float tabRounding)
No description available
void tabBorderSize(float tabBorderSize)
No description available
void tabMinWidthForCloseButton(float tabMinWidthForCloseButton)
No description available
void tabBarBorderSize(float tabBarBorderSize)
No description available
void tableAngledHeadersAngle(float tableAngledHeadersAngle)
No description available
void tableAngledHeadersTextAlign(vec2 tableAngledHeadersTextAlign)
No description available
void colorButtonPosition(int ui_direction)
No description available
void buttonTextAlign(vec2 buttonTextAlign)
No description available
void selectableTextAlign(vec2 selectableTextAlign)
No description available
void separatorTextBorderSize(float separatorTextBorderSize)
No description available
void separatorTextAlign(vec2 separatorTextAlign)
No description available
void separatorTextPadding(vec2 separatorTextPadding)
No description available
void displayWindowPadding(vec2 displayWindowPadding)
No description available
void displaySafeAreaPadding(vec2 displaySafeAreaPadding)
No description available
void dockingSeparatorSize(float dockingSeparatorSize)
No description available
void mouseCursorScale(float mouseCursorScale)
No description available
void antiAliasedLines(int antiAliasedLines)
No description available
void antiAliasedLinesUseTex(int antiAliasedLinesUseTex)
No description available
void antiAliasedFill(int antiAliasedFill)
No description available
void curveTessellationTol(float curveTessellationTol)
No description available
void circleTessellationMaxError(float circleTessellationMaxError)
No description available
void color(int ui_color_flag, vec4 color)
No description available
void hoverStationaryDelay(float hoverStationaryDelay)
No description available
void hoverDelayShort(float hoverDelayShort)
No description available
void hoverDelayNormal(float hoverDelayNormal)
No description available
void hoverFlagsForTooltipMouse(int hoverFlagsForTooltipMouse)
No description available
void hoverFlagsForTooltipNav(int hoverFlagsForTooltipNav)
No description available
vec2 windowPadding()
Padding within a window.
float disabledAlpha()
Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha.
float alpha()
Global alpha applies to everything in ImGui.
float windowRounding()
Radius of window corners rounding. Set to 0.0f to have rectangular windows. Large values tend to lead to variety of artifacts and are not recommended.
float windowBorderSize()
Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
vec2 windowMinSize()
Minimum window size. This is a global setting. If you want to constrain individual windows, use SetNextWindowSizeConstraints().
vec2 windowTitleAlign()
Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.
int windowMenuButtonPosition()
Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to UI_Direction.Left.
float childRounding()
Radius of child window corners rounding. Set to 0.0f to have rectangular windows.
float childBorderSize()
Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
float popupRounding()
Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding)
float popupBorderSize()
Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
vec2 framePadding()
Padding within a framed rectangle (used by most widgets).
float frameRounding()
Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets).
float frameBorderSize()
Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly).
vec2 itemSpacing()
Horizontal and vertical spacing between widgets/lines.
vec2 itemInnerSpacing()
Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label).
vec2 cellPadding()
Padding within a table cell. Cellpadding.x is locked for entire table. CellPadding.y may be altered between different rows.
vec2 touchExtraPadding()
Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
float indentSpacing()
Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
float columnsMinSpacing()
Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
float scrollbarSize()
Width of the vertical scrollbar, Height of the horizontal scrollbar.
float scrollbarRounding()
Radius of grab corners for scrollbar.
float grabMinSize()
Minimum width/height of a grab box for slider/scrollbar.
float grabRounding()
Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
float logSliderDeadzone()
The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero.
float tabRounding()
Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
float tabBorderSize()
Thickness of border around tabs.
float tabMinWidthForCloseButton()
Minimum width for close button to appear on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
float tabBarBorderSize()
Thickness of tab-bar separator, which takes on the tab active color to denote focus.
float tableAngledHeadersAngle()
Angle of angled headers (supported values range from -50.0f degrees to +50.0f degrees).
vec2 tableAngledHeadersTextAlign()
Alignment of angled headers within the cell.
int colorButtonPosition()
Side of the color button in the ColorEdit4 widget (left/right). Defaults to UI_Direction.Right.
vec2 buttonTextAlign()
Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
vec2 selectableTextAlign()
Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
float separatorTextBorderSize()
Thickkness of border in SeparatorText()
vec2 separatorTextAlign()
Alignment of text within the separator. Defaults to (0.0f, 0.5f) (left aligned, center).
vec2 separatorTextPadding()
Horizontal offset of text from each edge of the separator + spacing on other axis. Generally small values. .y is recommended to be == FramePadding.y.
vec2 displayWindowPadding()
Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows.
vec2 displaySafeAreaPadding()
If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!
float dockingSeparatorSize()
Thickness of resizing border between docked windows.
float mouseCursorScale()
Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). We apply per-monitor DPI scaling over this scale. May be removed later.
int antiAliasedLines()
Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList).
int antiAliasedLinesUseTex()
Enable anti-aliased lines/borders using textures where possible. Require backend to render with bilinear filtering (NOT point/nearest filtering). Latched at the beginning of the frame (copied to ImDrawList).
int antiAliasedFill()
Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList).
float curveTessellationTol()
Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
float circleTessellationMaxError()
Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
vec4 color(int ui_color_flag)
Get the color for a specific UI_Color flag.
float hoverStationaryDelay()
Delay for IsItemHovered(ImGuiHoveredFlags_Stationary). Time required to consider mouse stationary.
float hoverDelayShort()
Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay.
float hoverDelayNormal()
Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal).
int hoverFlagsForTooltipMouse()
Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using mouse.
int hoverFlagsForTooltipNav()
Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using keyboard/gamepad.
void alpha(float alpha)
No description available
void disabledAlpha(float disabledAlpha)
No description available
void windowPadding(vec2 windowPadding)
No description available
void windowRounding(float windowRounding)
No description available
void windowBorderSize(float windowBorderSize)
No description available
void windowMinSize(vec2 windowMinSize)
No description available
void windowTitleAlign(vec2 windowTitleAlign)
No description available
void windowMenuButtonPosition(int ui_direction)
Ui_direction is enum UI_Direction.
void childRounding(float childRounding)
No description available
void childBorderSize(float childBorderSize)
No description available
void popupRounding(float popupRounding)
No description available
void popupBorderSize(float popupBorderSize)
No description available
void framePadding(vec2 framePadding)
No description available
void frameRounding(float frameRounding)
No description available
void frameBorderSize(float frameBorderSize)
No description available
void itemSpacing(vec2 itemSpacing)
No description available
void itemInnerSpacing(vec2 itemInnerSpacing)
No description available
void cellPadding(vec2 cellPadding)
No description available
void touchExtraPadding(vec2 touchExtraPadding)
No description available
void indentSpacing(float indentSpacing)
No description available
void columnsMinSpacing(float columnsMinSpacing)
No description available
void scrollbarSize(float scrollbarSize)
No description available
void scrollbarRounding(float scrollbarRounding)
No description available
void grabMinSize(float grabMinSize)
No description available
void grabRounding(float grabRounding)
No description available
[ top ]
Flags for ImGui::Begin(). (Those are per-window flags. There are shared flags in ImGuiIO: io.ConfigWindowsResizeFromEdges and io.ConfigWindowsMoveFromTitleBarOnly).
int None
No description available
int NoTitleBar
Disable title-bar.
int NoResize
Disable user resizing with the lower-right grip.
int NoMove
Disable user moving the window.
int NoScrollbar
Disable scrollbars (window can still scroll with mouse or programmatically)
int NoScrollWithMouse
Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.
int NoCollapse
Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node).
int AlwaysAutoResize
Resize every window to its content every frame.
int NoBackground
Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f).
int NoSavedSettings
Never load/save settings in .ini file.
int NoMouseInputs
Disable catching mouse, hovering test with pass through.
int MenuBar
Has a menu-bar.
int 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.
int NoFocusOnAppearing
Disable taking focus when transitioning from hidden to visible state.
int NoBringToFrontOnFocus
Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)
int AlwaysVerticalScrollbar
Always show vertical scrollbar (even if ContentSize.y < Size.y)
int AlwaysHorizontalScrollbar
Always show horizontal scrollbar (even if ContentSize.x < Size.x)
int NoNavInputs
No gamepad/keyboard navigation within the window.
int NoNavFocus
No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
int 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.
int NoDocking
Disable docking of this window.
int NoNav
No description available
int NoDecoration
No description available
int NoInputs
No description available
[ top ]
Flags for ImGui::BeginChild(). (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'.. About using AutoResizeX/AutoResizeY flags:. - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see "Demo->Child->Auto-resize with Constraints").. - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.. - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.. While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional "resizing after becoming visible again" glitch.. - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view.. HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping..
int None
No description available
int AlwaysAutoResize
Combined with AutoResizeX/AutoResizeY. Always measure size even when child is hidden, always return true, always disable clipping optimization! NOT RECOMMENDED.
int Border
Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == true for legacy reason)
int AlwaysUseWindowPadding
Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)
int ResizeX
Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags)
int ResizeY
Allow resize from bottom border (layout direction). "
int AutoResizeX
Enable auto-resizing width. Read "IMPORTANT: Size measurement" details above.
int AutoResizeY
Enable auto-resizing height. Read "IMPORTANT: Size measurement" details above.
int FrameStyle
Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.
[ top ]
Enumeration for ImGui::SetNextWindow***(), SetWindow***(), 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 ImGuiCond_Always..
int None
No condition (always set the variable), same as _Always.
int Always
No condition (always set the variable), same as _None.
int Once
Set the variable once per runtime session (only the first call will succeed)
int FirstUseEver
Set the variable if the object/window has no persistently saved data (no entry in .ini file)
int Appearing
Set the variable if the object/window is appearing after being hidden/inactive (or the first time)
[ top ]
Enumeration for PushStyleColor() / PopStyleColor(). A color identifier for styling.
int Border
No description available
int Text
No description available
int TextDisabled
No description available
int WindowBg
Background of normal windows.
int ChildBg
Background of child windows.
int PopupBg
Background of popups, menus, tooltips windows.
int BorderShadow
No description available
int FrameBg
Background of checkbox, radio button, plot, slider, text input.
int FrameBgHovered
No description available
int FrameBgActive
No description available
int TitleBg
Title bar.
int TitleBgActive
Title bar when focused.
int TitleBgCollapsed
Title bar when collapsed.
int MenuBarBg
No description available
int ScrollbarBg
No description available
int ScrollbarGrab
No description available
int ScrollbarGrabHovered
No description available
int ScrollbarGrabActive
No description available
int CheckMark
Checkbox tick and RadioButton circle.
int SliderGrab
No description available
int SliderGrabActive
No description available
int Button
No description available
int ButtonHovered
No description available
int ButtonActive
No description available
int Header
Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem.
int HeaderHovered
No description available
int HeaderActive
No description available
int Separator
No description available
int SeparatorHovered
No description available
int SeparatorActive
No description available
int ResizeGrip
Resize grip in lower-right and lower-left corners of windows.
int ResizeGripHovered
No description available
int ResizeGripActive
No description available
int Tab
TabItem in a TabBar.
int TabHovered
No description available
int TabActive
No description available
int TabUnfocused
No description available
int TabUnfocusedActive
No description available
int DockingPreview
Preview overlay color when about to docking something.
int DockingEmptyBg
Background color for empty node (e.g. CentralNode with no window docked into it)
int PlotLines
No description available
int PlotLinesHovered
No description available
int PlotHistogram
No description available
int PlotHistogramHovered
No description available
int TableHeaderBg
Table header background.
int TableBorderStrong
Table outer and header borders (prefer using Alpha=1.0 here)
int TableBorderLight
Table inner borders (prefer using Alpha=1.0 here)
int TableRowBg
Table row background (even rows)
int TableRowBgAlt
Table row background (odd rows)
int TextSelectedBg
No description available
int DragDropTarget
Rectangle highlighting a drop target.
int NavHighlight
Gamepad/keyboard: current highlighted item.
int NavWindowingHighlight
Highlight window when using CTRL+TAB.
int NavWindowingDimBg
Darken/colorize entire screen behind the CTRL+TAB window list, when active.
int ModalWindowDimBg
Darken/colorize entire screen behind a modal window, when one is active.
int COUNT
No description available
[ top ]
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.. - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description.. - In Visual Studio: CTRL+comma ("Edit.GoToAll") can follow symbols inside comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot.. - In Visual Studio w/ Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols inside comments.. - In VS Code, CLion, etc.: CTRL+click can follow symbols inside comments.. - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type..
int COUNT
No description available
int Alpha
Float Alpha.
int DisabledAlpha
Float DisabledAlpha.
int WindowPadding
ImVec2 WindowPadding.
int WindowRounding
Float WindowRounding.
int WindowBorderSize
Float WindowBorderSize.
int WindowMinSize
ImVec2 WindowMinSize.
int WindowTitleAlign
ImVec2 WindowTitleAlign.
int ChildRounding
Float ChildRounding.
int ChildBorderSize
Float ChildBorderSize.
int PopupRounding
Float PopupRounding.
int PopupBorderSize
Float PopupBorderSize.
int FramePadding
ImVec2 FramePadding.
int FrameRounding
Float FrameRounding.
int FrameBorderSize
Float FrameBorderSize.
int ItemSpacing
ImVec2 ItemSpacing.
int ItemInnerSpacing
ImVec2 ItemInnerSpacing.
int IndentSpacing
Float IndentSpacing.
int CellPadding
ImVec2 CellPadding.
int ScrollbarSize
Float ScrollbarSize.
int ScrollbarRounding
Float ScrollbarRounding.
int GrabMinSize
Float GrabMinSize.
int GrabRounding
Float GrabRounding.
int TabRounding
Float TabRounding.
int TabBorderSize
Float TabBorderSize.
int TabBarBorderSize
Float TabBarBorderSize.
int TableAngledHeadersAngle
Float TableAngledHeadersAngle.
int TableAngledHeadersTextAlign
ImVec2 TableAngledHeadersTextAlign.
int ButtonTextAlign
ImVec2 ButtonTextAlign.
int SelectableTextAlign
ImVec2 SelectableTextAlign.
int SeparatorTextBorderSize
Float SeparatorTextBorderSize.
int SeparatorTextAlign
ImVec2 SeparatorTextAlign.
int SeparatorTextPadding
ImVec2 SeparatorTextPadding.
int DockingSeparatorSize
Float DockingSeparatorSize.
[ top ]
Flags for InvisibleButton() [extended in imgui_internal.h].
int None
No description available
int MouseButtonLeft
React on left mouse button (default)
int MouseButtonRight
React on right mouse button.
int MouseButtonMiddle
React on center mouse button.
[ top ]
A cardinal direction.
int None
No description available
int COUNT
No description available
int Left
No description available
int Right
No description available
int Up
No description available
int Down
No description available
[ top ]
Flags for ImGui::BeginCombo().
int None
No description available
int PopupAlignLeft
Align the popup toward the left by default.
int 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()
int HeightRegular
Max ~8 items visible (default)
int HeightLarge
Max ~20 items visible.
int HeightLargest
As many fitting items as possible.
int NoArrowButton
Display on the preview box without the square arrow button.
int NoPreview
Display only a square arrow button.
int WidthFitPreview
Width dynamically calculated from preview contents.
[ top ]
Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc.. We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them.. (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigDragClickToInputText).
int None
No description available
int AlwaysClamp
Clamp value to min/max bounds when input manually with CTRL+Click. By default CTRL+Click allows going out of bounds.
int Logarithmic
Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits.
int NoRoundToFormat
Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)
int NoInput
Disable CTRL+Click or Enter key allowing to input text directly into the widget.
[ top ]
Flags for ImGui::InputText(). (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive).
int None
No description available
int CharsDecimal
Allow 0123456789.+-*/.
int CharsHexadecimal
Allow 0123456789ABCDEFabcdef.
int CharsUppercase
Turn a..z into A..Z.
int CharsNoBlank
Filter out spaces, tabs.
int AutoSelectAll
Select entire text when first taking mouse focus.
int EnterReturnsTrue
Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
int CallbackCompletion
Callback on pressing TAB (for completion handling)
int CallbackHistory
Callback on pressing Up/Down arrows (for history handling)
int CallbackAlways
Callback on each iteration. User code may query cursor position, modify text buffer.
int CallbackCharFilter
Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
int AllowTabInput
Pressing TAB input a '\t' character into the text field.
int 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).
int NoHorizontalScroll
Disable following the cursor horizontally.
int AlwaysOverwrite
Overwrite mode.
int ReadOnly
Read-only mode.
int Password
Password mode, display all characters as '*'
int 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().
int CharsScientific
Allow 0123456789.+-*/eE (Scientific notation input)
int 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)
int 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)
int EscapeClearsAll
Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
[ top ]
Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton().
int None
No description available
int NoInputs
ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).
int NoAlpha
ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).
int NoPicker
ColorEdit: disable picker when clicking on color square.
int NoOptions
ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.
int NoSmallPreview
ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)
int NoTooltip
ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.
int NoLabel
ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).
int NoSidePreview
ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.
int NoDragDrop
ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.
int NoBorder
ColorButton: disable border (which is enforced by default)
int AlphaBar
ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.
int AlphaPreview
ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
int AlphaPreviewHalf
ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
int HDR
(WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).
int DisplayRGB
[Display] ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.
int DisplayHSV
[Display] "
int DisplayHex
[Display] "
int Uint8
[DataType] ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.
int Float
[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.
int PickerHueBar
[Picker] ColorPicker: bar for Hue, rectangle for Sat/Value.
int PickerHueWheel
[Picker] ColorPicker: wheel for Hue, triangle for Sat/Value.
int InputRGB
[Input] ColorEdit, ColorPicker: input and output data in RGB format.
int InputHSV
[Input] ColorEdit, ColorPicker: input and output data in HSV format.
[ top ]
Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*().
int None
No description available
int Selected
Draw as selected.
int Framed
Draw frame with background (e.g. for CollapsingHeader)
int AllowOverlap
Hit testing to allow subsequent widgets to overlap this one.
int NoTreePushOnOpen
Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack.
int NoAutoOpenOnLog
Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)
int DefaultOpen
Default node to be open.
int OpenOnDoubleClick
Need double-click to open node.
int OpenOnArrow
Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open.
int Leaf
No collapsing, no arrow (use as a convenience for leaf nodes).
int Bullet
Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don't set the _Leaf flag!
int SpanAvailWidth
Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.
int SpanFullWidth
Extend hit box to the left-most and right-most edges (cover the indent area).
int SpanTextWidth
Narrow hit box + narrow hovering highlight, will only cover the label text.
int SpanAllColumns
Frame will span all columns of its container table (text will still fit in current column)
int NavLeftJumpsBackHere
(WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
int CollapsingHeader
No description available
int FramePadding
Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding().
[ top ]
Flags for ImGui::Selectable().
int None
No description available
int AllowOverlap
(WIP) Hit testing to allow subsequent widgets to overlap this one.
int SpanAllColumns
Frame will span all columns of its container table (text will still fit in current column)
int DontClosePopups
Clicking this doesn't close parent popup window.
int AllowDoubleClick
Generate press events on double clicks too.
int Disabled
Cannot be selected, display grayed out text.
[ top ]
Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions.. - To be backward compatible with older API which took an 'int mouse_button = 1' argument instead of 'ImGuiPopupFlags flags',. 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)..
int None
No description available
int NoReopen
For OpenPopup*(), BeginPopupContext*(): don't reopen same popup if already open (won't reposition, won't reinitialize navigation)
int NoOpenOverExistingPopup
For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack.
int NoOpenOverItems
For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space.
int AnyPopupId
For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.
int AnyPopupLevel
For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)
int AnyPopup
No description available
int MouseButtonLeft
For BeginPopupContext*(): open on Left Mouse release. Guaranteed to always be == 0 (same as ImGuiMouseButton_Left)
int MouseButtonRight
For BeginPopupContext*(): open on Right Mouse release. Guaranteed to always be == 1 (same as ImGuiMouseButton_Right)
int MouseButtonMiddle
For BeginPopupContext*(): open on Middle Mouse release. Guaranteed to always be == 2 (same as ImGuiMouseButton_Middle)
[ top ]
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.. - Read on documentation at the top of imgui_tables.cpp for details..
int None
No description available
int NoSavedSettings
Disable persisting columns order, width and sort settings in the .ini file.
int Resizable
Enable resizing columns.
int Reorderable
Enable reordering columns in header row (need calling TableSetupColumn() + TableHeadersRow() to display headers)
int Hideable
Enable hiding/disabling columns in context menu.
int Sortable
Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.
int ContextMenuInBody
Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().
int RowBg
Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
int BordersInnerH
Draw horizontal borders between rows.
int BordersOuterH
Draw horizontal borders at the top and bottom.
int BordersInnerV
Draw vertical borders between columns.
int BordersOuterV
Draw vertical borders on the left and right sides.
int BordersH
Draw horizontal borders.
int BordersV
Draw vertical borders.
int BordersInner
Draw inner borders.
int BordersOuter
Draw outer borders.
int Borders
Draw all borders.
int NoBordersInBody
[ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style.
int NoBordersInBodyUntilResize
[ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style.
int SizingFixedFit
Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.
int SizingFixedSame
Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible.
int SizingStretchProp
Columns default to _WidthStretch with default weights proportional to each columns contents widths.
int SizingStretchSame
Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().
int 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.
int 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.
int NoKeepColumnsVisible
Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable.
int 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.
int 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().
int PadOuterX
Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers.
int NoPadOuterX
Default if BordersOuterV is off. Disable outermost padding.
int NoPadInnerX
Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).
int 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.
int ScrollY
Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size.
int SortMulti
Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).
int SortTristate
Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).
int HighlightHoveredColumn
Highlight column headers when hovered (may evolve into a fuller highlight)
[ top ]
Flags for ImGui::TableNextRow().
int None
No description available
int Headers
Identify header row (set default background color + width of its contents accounted differently for auto column width)
[ top ]
Flags for ImGui::TableSetupColumn().
int None
No description available
int NoResize
Disable manual resizing.
int Disabled
Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)
int NoClip
Disable clipping for this column (all NoClip columns will render in a same draw command).
int DefaultHide
Default as a hidden/disabled column.
int DefaultSort
Default as a sorting column.
int WidthStretch
Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp).
int WidthFixed
Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable).
int NoReorder
Disable manual reordering this column, this will also prevent other columns from crossing over this column.
int NoHide
Disable ability to hide/disable this column.
int NoSort
Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table).
int NoSortAscending
Disable ability to sort in the ascending direction.
int NoSortDescending
Disable ability to sort in the descending direction.
int NoHeaderLabel
TableHeadersRow() will not submit horizontal label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers.
int NoHeaderWidth
Disable header text width contribution to automatic column width.
int PreferSortAscending
Make the initial sort direction Ascending when first sorting on this column (default).
int PreferSortDescending
Make the initial sort direction Descending when first sorting on this column.
int IndentEnable
Use current Indent value when entering cell (default for column 0).
int IndentDisable
Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored.
int AngledHeader
TableHeadersRow() will submit an angled header row for this column. Note this will add an extra row.
int IsEnabled
Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags.
int IsVisible
Status: is visible == is enabled AND not clipped by scrolling.
int IsSorted
Status: is currently part of the sort specs.
int IsHovered
Status: is hovered by mouse.
[ top ]
Enum for ImGui::TableSetBgColor(). Background colors are rendering in 3 layers:. - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set.. - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set.. - Layer 2: draw with CellBg color if set.. The purpose of the two row/columns layers is to let you decide if a background color change should override or blend with the existing color.. When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows.. If you set the color of RowBg0 target, your color will override the existing RowBg0 color.. If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color..
int None
No description available
int RowBg0
Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)
int RowBg1
Set row background color 1 (generally used for selection marking)
int CellBg
Set cell background color (top-most color)
[ top ]
Flags for ImGui::BeginTabBar().
int None
No description available
int NoTooltip
Disable tooltips when hovering a tab.
int Reorderable
Allow manually dragging tabs to re-order them + New tabs are appended at the end of list.
int AutoSelectNewTabs
Automatically select new tabs when they appear.
int TabListPopupButton
Disable buttons to open the tab list popup.
int NoCloseWithMiddleMouseButton
Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false.
int NoTabListScrollingButtons
Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)
int FittingPolicyResizeDown
Resize tabs when they don't fit.
int FittingPolicyScroll
Add scroll buttons when tabs don't fit.
[ top ]
Identify a mouse button.. Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience..
int Middle
No description available
int COUNT
No description available
int Left
No description available
int Right
No description available
[ top ]
A key identifier (ImGuiKey_XXX or ImGuiMod_XXX value): can represent Keyboard, Mouse and Gamepad values.. All our named keys are >= 512. Keys value 0 to 511 are left unused as legacy native/opaque key values (< 1.87).. Since >= 1.89 we increased typing (went from int to enum), some legacy code may need a cast to ImGuiKey.. Read details about the 1.87 and 1.89 transition : https:github.com/ocornut/imgui/issues/4921. Note that "Keys" related to physical keys and are not the same concept as input "Characters", the later are submitted via io.AddInputCharacter().. The keyboard key enum values are named after the keys on a standard US keyboard, and on other keyboard types the keys reported may not match the keycaps.. Forward declared enum type ImGuiKey.
int None
No description available
int LeftArrow
No description available
int RightArrow
No description available
int UpArrow
No description available
int DownArrow
No description available
int PageUp
No description available
int PageDown
No description available
int Home
No description available
int End
No description available
int Insert
No description available
int Delete
No description available
int Backspace
No description available
int Space
No description available
int Enter
No description available
int Escape
No description available
int LeftCtrl
No description available
int LeftShift
No description available
int LeftAlt
No description available
int LeftSuper
No description available
int RightCtrl
No description available
int RightShift
No description available
int RightAlt
No description available
int RightSuper
No description available
int Menu
No description available
int Num0
No description available
int Num1
No description available
int Num2
No description available
int Num3
No description available
int Num4
No description available
int Num5
No description available
int Num6
No description available
int Num7
No description available
int Num8
No description available
int Num9
No description available
int A
No description available
int B
No description available
int C
No description available
int F
No description available
int G
No description available
int H
No description available
int K
No description available
int L
No description available
int M
No description available
int N
No description available
int O
No description available
int P
No description available
int R
No description available
int S
No description available
int T
No description available
int U
No description available
int V
No description available
int W
No description available
int Z
No description available
int F1
No description available
int F2
No description available
int F3
No description available
int F4
No description available
int F5
No description available
int F6
No description available
int F7
No description available
int F8
No description available
int F9
No description available
int F10
No description available
int F11
No description available
int F12
No description available
int F13
No description available
int F14
No description available
int F15
No description available
int F16
No description available
int F17
No description available
int F18
No description available
int F19
No description available
int F20
No description available
int F21
No description available
int F22
No description available
int F23
No description available
int F24
No description available
int Apostrophe
'
int Comma
,
int Minus
-.
int Period
.
int Slash
/.
int Semicolon
;.
int Equal
=.
int LeftBracket
[.
int Backslash
\ (this text inhibit multiline comment caused by backslash)
int RightBracket
].
int GraveAccent
`.
int CapsLock
No description available
int ScrollLock
No description available
int NumLock
No description available
int PrintScreen
No description available
int Pause
No description available
int Keypad0
No description available
int Keypad1
No description available
int Keypad2
No description available
int Keypad3
No description available
int Keypad4
No description available
int Keypad5
No description available
int Keypad6
No description available
int Keypad7
No description available
int Keypad8
No description available
int Keypad9
No description available
int KeypadDecimal
No description available
int KeypadDivide
No description available
int KeypadMultiply
No description available
int KeypadSubtract
No description available
int KeypadAdd
No description available
int KeypadEnter
No description available
int KeypadEqual
No description available
int AppBack
Available on some keyboard/mouses. Often referred as "Browser Back"
int AppForward
No description available
int GamepadStart
Menu (Xbox) + (Switch) Start/Options (PS)
int GamepadBack
View (Xbox) - (Switch) Share (PS)
int GamepadFaceLeft
X (Xbox) Y (Switch) Square (PS) Tap: Toggle Menu. Hold: Windowing mode (Focus/Move/Resize windows)
int GamepadFaceRight
B (Xbox) A (Switch) Circle (PS) Cancel / Close / Exit.
int GamepadFaceUp
Y (Xbox) X (Switch) Triangle (PS) Text Input / On-screen Keyboard.
int GamepadFaceDown
A (Xbox) B (Switch) Cross (PS) Activate / Open / Toggle / Tweak.
int GamepadDpadLeft
D-pad Left Move / Tweak / Resize Window (in Windowing mode)
int GamepadDpadRight
D-pad Right Move / Tweak / Resize Window (in Windowing mode)
int GamepadDpadUp
D-pad Up Move / Tweak / Resize Window (in Windowing mode)
int GamepadDpadDown
D-pad Down Move / Tweak / Resize Window (in Windowing mode)
int GamepadL1
L Bumper (Xbox) L (Switch) L1 (PS) Tweak Slower / Focus Previous (in Windowing mode)
int GamepadR1
R Bumper (Xbox) R (Switch) R1 (PS) Tweak Faster / Focus Next (in Windowing mode)
int GamepadL2
L Trig. (Xbox) ZL (Switch) L2 (PS) [Analog].
int GamepadR2
R Trig. (Xbox) ZR (Switch) R2 (PS) [Analog].
int GamepadL3
L Stick (Xbox) L3 (Switch) L3 (PS)
int GamepadR3
R Stick (Xbox) R3 (Switch) R3 (PS)
int GamepadLStickLeft
[Analog] Move Window (in Windowing mode)
int GamepadLStickRight
[Analog] Move Window (in Windowing mode)
int GamepadLStickUp
[Analog] Move Window (in Windowing mode)
int GamepadLStickDown
[Analog] Move Window (in Windowing mode)
int GamepadRStickLeft
[Analog].
int GamepadRStickRight
[Analog].
int GamepadRStickUp
[Analog].
int GamepadRStickDown
[Analog].
int MouseLeft
No description available
int MouseRight
No description available
int MouseMiddle
No description available
int MouseX1
No description available
int MouseX2
No description available
int MouseWheelX
No description available
int MouseWheelY
No description available
int Mod_None
No description available
int Mod_Ctrl
Ctrl (non-macOS), Cmd (macOS)
int Mod_Shift
Shift.
int Mod_Alt
Option/Menu.
int Mod_Super
Windows/Super (non-macOS), Ctrl (macOS)
int KeysData_SIZE
Size of KeysData[]: only hold named keys.
int KeysData_OFFSET
Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET) index.
int D
No description available
int E
No description available
int I
No description available
int J
No description available
int Tab
== ImGuiKey_NamedKey_BEGIN.
int Y
No description available
int X
No description available
int Q
No description available
[ top ]
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.
int None
No description available
int Arrow
No description available
int TextInput
When hovering over InputText, etc.
int ResizeAll
(Unused by Dear ImGui functions)
int ResizeNS
When hovering over a horizontal border.
int ResizeEW
When hovering over a vertical border or a column.
int ResizeNESW
When hovering over the bottom-left corner of a window.
int ResizeNWSE
When hovering over the bottom-right corner of a window.
int Hand
(Unused by Dear ImGui functions. Use for e.g. hyperlinks)
int NotAllowed
When hovering something with disallowed interaction. Usually a crossed circle.
int COUNT
No description available
[ top ]
Flags stored in ImGuiViewport::Flags, giving indications to the platform backends..
int None
No description available
int NoFocusOnAppearing
Platform Window: Don't take focus when created.
int NoDecoration
Platform Window: Disable platform decorations: title bar, borders, etc. (generally set all windows, but if ImGuiConfigFlags_ViewportsDecoration is set we only set this on popups/tooltips)
int NoInputs
Platform Window: Make mouse pass through so we can drag this window while peaking behind it.
int IsPlatformWindow
Represent a Platform Window.
int IsPlatformMonitor
Represent a Platform Monitor (unused yet)
int OwnedByApp
Platform Window: Was created/managed by the user application? (rather than our backend)
int NoTaskBarIcon
Platform Window: Disable platform task bar icon (generally set on popups/tooltips, or all windows if ImGuiConfigFlags_ViewportsNoTaskBarIcon is set)
int NoFocusOnClick
Platform Window: Don't take focus when clicked on.
int NoRendererClear
Platform Window: Renderer doesn't need to clear the framebuffer ahead (because we will fill it entirely).
int NoAutoMerge
Platform Window: Avoid merging this window into another host window. This can only be set via ImGuiWindowClass viewport flags override (because we need to now ahead if we are going to create a viewport in the first place!).
int TopMost
Platform Window: Display on top (for tooltips only).
int CanHostOtherWindows
Viewport can host multiple imgui windows (secondary viewports are associated to a single window). FIXME: In practice there's still probably code making the assumption that this is always and only on the MainViewport. Will fix once we add support for "no main viewport".
int IsMinimized
Platform Window: Window is minimized, can skip render. When minimized we tend to avoid using the viewport pos/size for clipping window or testing if they are contained in the viewport.
int IsFocused
Platform Window: Window is focused (last call to Platform_GetWindowFocus() returned true)
[ top ]
Flags for ImGui::IsWindowFocused().
int None
No description available
int ChildWindows
Return true if any children of the window is focused.
int RootWindow
Test from root window (top most parent of the current hierarchy)
int 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!
int NoPopupHierarchy
Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
int DockHierarchy
Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)
int RootAndChildWindows
No description available
[ top ]
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..
int 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.
int ChildWindows
IsWindowHovered() only: Return true if any children of the window is hovered.
int RootWindow
IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)
int AnyWindow
IsWindowHovered() only: Return true if any window is hovered.
int NoPopupHierarchy
IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
int DockHierarchy
IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)
int RootAndChildWindows
No description available
int AllowWhenBlockedByPopup
Return true even if a popup window is normally blocking access to this item/window.
int AllowWhenBlockedByActiveItem
Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.
int AllowWhenOverlappedByItem
IsItemHovered() only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item.
int AllowWhenOverlappedByWindow
IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window.
int AllowWhenDisabled
IsItemHovered() only: Return true even if the item is disabled.
int NoNavOverride
IsItemHovered() only: Disable using gamepad/keyboard navigation state when active, always query mouse.
int AllowWhenOverlapped
No description available
int RectOnly
No description available
int ForTooltip
Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence.
int 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.
int DelayNone
IsItemHovered() only: Return true immediately (default). As this is the default you generally ignore this.
int DelayShort
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).
int DelayNormal
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).
int NoSharedDelay
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)
[ top ]
Flags for ImGui::DockSpace(), shared/inherited by child nodes.. (Some flags can be applied to individual nodes directly). FIXME-DOCK: Also see ImGuiDockNodeFlagsPrivate_ which may involve using the WIP and internal DockBuilder api..
int None
No description available
int NoResize
Saved Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
int KeepAliveOnly
Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
int NoDockingOverCentralNode
Disable docking over the Central Node, which will be always kept empty.
int PassthruCentralNode
Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
int NoDockingSplit
Disable other windows/nodes from splitting this node.
int AutoHideTabBar
Tab bar will automatically hide when there is a single window in the dock node.
int NoUndocking
Disable undocking this node.
[ top ]
Base class for ImGui callback functions. Don't use this class directly.
UI_Callback()
Default constructor for UI_Callback.
[ top ]
No description available
UI_SizeCallbackData()
Default constructor for UI_SizeCallbackData.
vec2 desiredSize()
Read-write desired size, based on user's mouse position. Write to this field to restrain resizing.
vec2 currentSize()
Read-only current window size.
vec2 getPos()
Read-only window position, for reference.
vec2 desiredSize(vec2 desired_size)
Write desired size, based on user's mouse position. Write to this field to restrain resizing.
[ top ]
No description available
UI_SizeCallback()
Default constructor for UI_SizeCallback.
void handler(UI_SizeCallbackData data)
Callback function for ImGui::SetNextWindowSizeConstraints()
[ top ]
No description available
UI_ComboCallback()
Default constructor for UI_ComboCallback.
void handler(int idx)
No description available
[ top ]
All methods add to the current window draw list (igGetWindowDrawList()).This is the low-level list of polygons that ImGui:: functions are filling. At the end of the frame,all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering.Each dear imgui window contains its own ImDrawList.You can interleave normal ImGui:: calls and adding primitives to the current draw list.In single viewport mode, top-left is == GetMainViewport()->Pos (generally 0,0), bottom-right is == GetMainViewport()->Pos+Size (generally io.DisplaySize).You are totally free to apply whatever transformation matrix to want to the data (depending on the use of the transformation you may want to apply it to ClipRect as well!)Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects.Filled shapes must always use clockwise winding order. The anti-aliasing fringe depends on it. Counter-clockwise shapes will have inward anti-aliasing.For rectangular primitives, "p_min" and "p_max" represent the upper-left and lower-right corners.For circle primitives, use "num_segments == 0" to automatically calculate tessellation (preferred).In older versions (until Dear ImGui 1.77) the AddCircle functions defaulted to num_segments == 12.In future versions we will use textures to provide cheaper and higher-quality circles.Use AddNgon() and AddNgonFilled() functions if you need to guarantee a specific number of sides.
void pushClipRectFullScreen()
No description available
void pushClipRect(vec2 clip_rect_min, vec2 clip_rect_max, int intersect_with_current_clip_rect)
Render-level scissoring. This is passed down to your render function but not used for CPU-side coarse clipping. Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling)
void popClipRect()
No description available
vec2 getClipRectMin()
No description available
vec2 getClipRectMax()
No description available
void addLine(vec2 p1, vec2 p2, vec4 col)
No description available
void addLineEx(vec2 p1, vec2 p2, vec4 col, float thickness)
No description available
void addRect(vec2 p_min, vec2 p_max, vec4 col)
No description available
void addRectEx(vec2 p_min, vec2 p_max, vec4 col, float rounding, int UI_DrawFlags, float thickness)
A: upper-left, b: lower-right (== upper-left + size)
void addRectFilled(vec2 p_min, vec2 p_max, vec4 col)
No description available
void addRectFilledEx(vec2 p_min, vec2 p_max, vec4 col, float rounding, int UI_DrawFlags)
A: upper-left, b: lower-right (== upper-left + size)
void addRectFilledMultiColor(vec2 p_min, vec2 p_max, vec4 col_upr_left, vec4 col_upr_right, vec4 col_bot_right, vec4 col_bot_left)
No description available
void addQuad(vec2 p1, vec2 p2, vec2 p3, vec2 p4, vec4 col)
No description available
void addQuadEx(vec2 p1, vec2 p2, vec2 p3, vec2 p4, vec4 col, float thickness)
No description available
void addQuadFilled(vec2 p1, vec2 p2, vec2 p3, vec2 p4, vec4 col)
No description available
void addTriangle(vec2 p1, vec2 p2, vec2 p3, vec4 col)
No description available
void addTriangleEx(vec2 p1, vec2 p2, vec2 p3, vec4 col, float thickness)
No description available
void addTriangleFilled(vec2 p1, vec2 p2, vec2 p3, vec4 col)
No description available
void addCircle(vec2 center, float radius, vec4 col)
No description available
void addCircleEx(vec2 center, float radius, vec4 col, int num_segments, float thickness)
No description available
void addCircleFilled(vec2 center, float radius, vec4 col, int num_segments)
No description available
void addNgon(vec2 center, float radius, vec4 col, int num_segments)
No description available
void addNgonEx(vec2 center, float radius, vec4 col, int num_segments, float thickness)
No description available
void addNgonFilled(vec2 center, float radius, vec4 col, int num_segments)
No description available
void addEllipse(vec2 center, vec2 radius, vec4 col)
No description available
void addEllipseEx(vec2 center, vec2 radius, vec4 col, float rot, int num_segments, float thickness)
No description available
void addEllipseFilled(vec2 center, vec2 radius, vec4 col)
No description available
void addEllipseFilledEx(vec2 center, vec2 radius, vec4 col, float rot, int num_segments)
No description available
void addText(vec2 pos, vec4 col, string text_begin)
No description available
void addTextEx(vec2 pos, vec4 col, string text_begin, string text_end)
No description available
void addBezierCubic(vec2 p1, vec2 p2, vec2 p3, vec2 p4, vec4 col, float thickness, int num_segments)
Cubic Bezier (4 control points)
void addBezierQuadratic(vec2 p1, vec2 p2, vec2 p3, vec4 col, float thickness, int num_segments)
Quadratic Bezier (3 control points)
void addPolyline(vec2[] points, vec4 col, int UI_DrawFlags, float thickness)
No description available
void addConvexPolyFilled(vec2[] points, vec4 col)
No description available
void addConcavePolyFilled(vec2[] points, vec4 col)
No description available
void pathClear()
No description available
void pathLineTo(vec2 pos)
No description available
void pathLineToMergeDuplicate(vec2 pos)
No description available
void pathFillConvex(vec4 col)
No description available
void pathFillConcave(vec4 col)
No description available
void pathStroke(vec4 col, int UI_DrawFlags, float thickness)
No description available
void pathArcTo(vec2 center, float radius, float a_min, float a_max, int num_segments)
No description available
void pathArcToFast(vec2 center, float radius, int a_min_of_12, int a_max_of_12)
Use precomputed angles for a 12 steps circle.
void pathEllipticalArcTo(vec2 center, vec2 radius, float rot, float a_min, float a_max)
No description available
void pathEllipticalArcToEx(vec2 center, vec2 radius, float rot, int a_min, int a_max, int num_segments)
No description available
void pathBezierCubicCurveTo(vec2 p2, vec2 p3, vec2 p4, int num_segments)
No description available
void pathBezierQuadraticCurveTo(vec2 p2, vec2 p3, int num_segments)
No description available
void pathRect(vec2 rect_min, vec2 rect_max, float rounding, int UI_DrawFlags)
No description available
[ top ]
No description available
void showFontSelector(string label)
Add font selector block (not a window), essentially a combo listing the loaded fonts.
void showUserGuide()
Add basic help/info block (not a window): how to manipulate ImGui as an end-user (mouse/keyboard controls).
string getVersion()
Get the compiled version string e.g. "1.80 WIP" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp)
int begin(string name, UI_Bool p_open, int flags)
`flags` of type UI_WindowFlags. - UI.begin() = push window to the stack and start appending to it. UI.end() = pop window from the stack. - Passing 'UI_Bool p_open != NULL' shows a window-closing widget in the upper-right corner of the window, which clicking will set the boolean to false when clicked. - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times. Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin(). - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!
int begin(string name)
Equivalent to UI.begin(name, null, 0)
void end()
No description available
int beginChild(string str_id, vec2 size, int child_flags, int window_flags)
Manual sizing (each axis can use a different setting e.g. ImVec2(0.0f, 400.0f)): == 0.0f: use remaining parent window size for this axis. > 0.0f: use specified size for this axis. < 0.0f: right/bottom-align to specified distance from available content boundaries. Specifying UI_ChildFlags.AutoResizeX or UI_ChildFlags.AutoResizeYmakes the sizing automatic based on child contents. Combining both UI_ChildFlags.AutoResizeX _and_ UI_ChildFlags.AutoResizeY defeats purpose of a scrolling region and is NOT recommended. BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value.
void endChild()
No description available
int isWindowAppearing()
No description available
int isWindowCollapsed()
No description available
int isWindowFocused(int ui_focused_flags)
Is current window focused? or its root/child, depending on flags. flags are of type UI_FocusedFlags.
int isWindowHovered(int ui_hovered_flags)
Is current window hovered and hoverable (e.g. not blocked by a popup/modal)? flags are of type UI_HoveredFlags.
float getWindowDpiScale()
Get DPI scale currently associated to the current window's viewport.
vec2 getWindowPos()
Get current window position in screen space (note: it is unlikely you need to use this. Consider using current layout pos instead, GetCursorScreenPos())
vec2 getWindowSize()
Get current window size (note: it is unlikely you need to use this. Consider using GetCursorScreenPos() and e.g. GetContentRegionAvail() instead)
float getWindowWidth()
Get current window width (shortcut for GetWindowSize().x)
float getWindowHeight()
Get current window height (shortcut for GetWindowSize().y)
UI_Viewport getWindowViewport()
Get viewport currently associated to the current window.
void setNextWindowPos(vec2 pos, int cond)
Implied pivot = ImVec2(0, 0)
void setNextWindowPosEx(vec2 pos, int cond, vec2 pivot)
Set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc.
void setNextWindowSize(vec2 size, int cond)
Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin()
void setNextWindowSizeConstraints(vec2 size_min, vec2 size_max, UI_SizeCallback custom_callback)
Set next window size limits. use 0.0f or FLT_MAX if you don't want limits. Use -1 for both min and max of same axis to preserve current size (which itself is a constraint). Use callback to apply non-trivial programmatic constraints.
void setNextWindowContentSize(vec2 size)
Set next window content size (~ scrollable client area, which enforce the range of scrollbars). Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin()
void setNextWindowCollapsed(int collapsed, int cond)
Set next window collapsed state. call before Begin()
void setNextWindowFocus()
Set next window to be focused / top-most. call before Begin()
void setNextWindowScroll(vec2 scroll)
Set next window scrolling value (use < 0.0f to not affect a given axis).
void setNextWindowBgAlpha(float alpha)
Set next window background color alpha. helper to easily override the Alpha component of ImGuiCol_WindowBg/ChildBg/PopupBg. you may also use ImGuiWindowFlags_NoBackground.
vec2 getContentRegionAvail()
Equivalent to GetContentRegionMax() - GetCursorPos()
vec2 getContentRegionMax()
Current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates.
vec2 getWindowContentRegionMin()
Content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates.
vec2 getWindowContentRegionMax()
Content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be overridden with SetNextWindowContentSize(), in window coordinates.
float getScrollX()
Get scrolling amount [0 .. GetScrollMaxX()].
float getScrollY()
Get scrolling amount [0 .. GetScrollMaxY()].
void setScrollX(float scroll_x)
Set scrolling amount [0 .. GetScrollMaxX()].
void setScrollY(float scroll_y)
Set scrolling amount [0 .. GetScrollMaxY()].
float getScrollMaxX()
Get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x.
float getScrollMaxY()
Get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y.
void setScrollHereX(float center_x_ratio)
Adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead.
void setScrollHereY(float center_y_ratio)
Adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead.
void setScrollFromPosX(float local_x, float center_x_ratio)
Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position.
void setScrollFromPosY(float local_y, float center_y_ratio)
Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position.
void pushStyleColor(int idx, vec4 color)
Parameter idx an enum of type UI_Color.
void pushStyleColor(int idx, vec3 color)
Parameter idx an enum of type UI_Color.
void popStyleColor()
Implied count = 1.
void popStyleColor(int count)
No description available
void pushStyleVar(int idx, float val)
Modify a style float variable. always use this if you modify the style after NewFrame(). Parameter `idx` is an enum of type UI_StyleVar.
void pushStyleVar(int idx, vec2 val)
Modify a style ImVec2 variable. always use this if you modify the style after NewFrame(). Parameter `idx` is an enum of type UI_StyleVar.
void popStyleVar()
Implied count = 1.
void popStyleVar(int count)
No description available
void pushTabStop(int tab_stop)
Allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets.
void popTabStop()
No description available
void pushButtonRepeat(int repeat)
In 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame.
void popButtonRepeat()
No description available
void pushItemWidth(float item_width)
Push width of items for common large "item+label" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side).
void popItemWidth()
Pop width of items for common large "item+label" widgets.
void setNextItemWidth(float item_width)
Set width of the _next_ common large "item+label" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side)
float calcItemWidth()
Width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions.
void pushTextWrapPos(float wrap_local_pos_x)
Push word-wrapping position for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space.
void popTextWrapPos()
Pop word-wrapping position for Text*() commands.
float getFontSize()
Get current font size (= height in pixels) of current font with current scale applied.
vec2 getFontTexUvWhitePixel()
Get UV coordinate for a white pixel, useful to draw custom shapes via the ImDrawList API.
int getColorU32(int idx)
Implied alpha_mul = 1.0f. retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList Parameter `idx` is an enum of type UI_Color.
int getColorU32(int idx, float alpha_mul)
Retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList Parameter `idx` is an enum of type UI_color.
int getColorU32(vec4 col)
Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList.
vec4 getStyleColorVec4(int idx)
Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in. Parameter `idx` is an enum of type UI_Color.
vec2 getCursorScreenPos()
Cursor position in absolute coordinates (prefer using this, also more useful to work with ImDrawList API)
vec2 setCursorScreenPos(vec2 pos)
Cursor position in absolute coordinates.
vec2 getCursorPos()
Cursor position in window coordinates (relative to window position)
float getCursorPosX()
No description available
float getCursorPosY()
No description available
void setCursorPos(vec2 local_pos)
No description available
void setCursorPosX(float local_x)
No description available
void setCursorPosY(float local_y)
No description available
vec2 getCursorStartPos()
Initial cursor position, in window coordinates.
void separator()
Separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.
void sameLine()
Implied offset_from_start_x = 0.0f, spacing = -1.0f.
void spacing()
Add vertical spacing.
void sameLine(float offset_from_start_x, float spacing)
Call between widgets or groups to layout them horizontally. X position given in window coordinates.
void newLine()
Undo a SameLine() or force a new line when in a horizontal-layout context.
void dummy(vec2 size)
Add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into.
void indent()
Implied indent_w = 0.0f.
void indent(float indent_w)
Move content position toward the right, by indent_w, or style.IndentSpacing if indent_w <= 0.
void unindent()
Implied indent_w = 0.0f.
void unindent(float indent_w)
Move content position back to the left, by indent_w, or style.IndentSpacing if indent_w <= 0.
void beginGroup()
Lock horizontal starting position.
void endGroup()
Unlock horizontal starting position + capture the whole group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)
void alignTextToFramePadding()
Vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item)
float getTextLineHeight()
~ FontSize.
float getTextLineHeightWithSpacing()
~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text)
float getFrameHeight()
~ FontSize + style.FramePadding.y * 2.
float getFrameHeightWithSpacing()
~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets)
void pushID(string str_id)
Push string into the ID stack (will hash string).Read the FAQ (docs/FAQ.md or http://dearimgui.com/faq) for more details about how ID are handled in dear imgui.
void pushID(string str_id_begin, string str_id_end)
Push string into the ID stack (will hash string).
void pushID(int int_id)
Push integer into the ID stack (will hash integer).
void popID()
Pop from the ID stack.
int getID(string str_id)
Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself.
int getID(string str_id_begin, string str_id_end)
No description available
void text(string text)
Implied text_end = NULL.
void text(string text, string text_end)
Raw text without formatting. Roughly equivalent to Text("%s", text) but: A) doesn't require null terminated string if 'text_end' is specified, B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text.
void textColored(vec4 col, string text)
Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor();.
void textDisabled(string text)
Shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor();.
void textWrapped(string text)
Shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, you may need to set a size using SetNextWindowSize().
void labelText(string label, string text)
Display text+label aligned the same way as value+label widgets.
void bulletText(string text)
Shortcut for Bullet()+Text()
void separatorText(string label)
Currently: formatted text with an horizontal line.
int button(string label)
Implied size = ImVec2(0, 0)
int button(string label, vec2 size)
No description available
int smallButton(string label)
Button with (FramePadding.y == 0)
int invisibleButton(string str_id, vec2 size, int flags)
Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.)param `flags` is an enum of type UI_ButtonFlags.
int arrowButton(string str_id, int direction)
Square button with an arrow shape. param `direction` is an enum of type UI_Direction.
int checkbox(string label, UI_Bool v)
No description available
int checkboxFlags(string label, UI_Int flags, int flags_value)
No description available
int radioButton(string label, int active)
Use with e.g. if (RadioButton("one", my_value==1)) { my_value = 1; }.
int radioButton(string label, UI_Int v, int v_button)
Shortcut to handle the above pattern when value is an integer.
void progressBar(float fraction, vec2 size_arg, string overlay)
No description available
void bullet()
Draw a small circle + keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses.
int beginCombo(string label, string preview_value, int flags)
The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items. // - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. This is analogous to how ListBox are created. `flags` param is an enum of type UI_ComboFlags.
void endCombo()
Only call EndCombo() if BeginCombo() returns true!
int combo(string label, UI_Int current_item, string[] items)
Implied popup_max_height_in_items = -1.
int combo(string label, UI_Int current_item, string[] items, int popup_max_height_in_items)
No description available
int drag(string label, UI_Float v)
Implied v_speed = 1.0f, v_min = 0.0f, v_max = 0.0f, format = "%.3f", flags = 0.
int drag(string label, UI_Float v, float v_speed, float v_min, float v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Float2 v)
Implied v_speed = 1.0f, v_min = 0.0f, v_max = 0.0f, format = "%.3f", flags = 0.
int drag(string label, UI_Float2 v, float v_speed, float v_min, float v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Float2 v, float v_speed)
Implied v_min = 0.0f, v_max = 0.0f, format = "%.3f", flags = 0.
int drag(string label, UI_Float3 v)
Implied v_speed = 1.0f, v_min = 0.0f, v_max = 0.0f, format = "%.3f", flags = 0.
int drag(string label, UI_Float3 v, float v_speed, float v_min, float v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Float3 v, float v_speed)
Implied v_min = 0.0f, v_max = 0.0f, format = "%.3f", flags = 0.
int drag(string label, UI_Float4 v)
Implied v_speed = 1.0f, v_min = 0.0f, v_max = 0.0f, format = "%.3f", flags = 0.
int drag(string label, UI_Float4 v, float v_speed, float v_min, float v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Float v_current_min, UI_Float v_current_max)
Implied v_speed = 1.0f, v_min = 0.0f, v_max = 0.0f, format = "%.3f", format_max = NULL, flags = 0.
int drag(string label, UI_Float v_current_min, UI_Float v_current_max, float v_speed, float v_min, float v_max, string format, string format_max, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Int v)
Implied v_speed = 1.0f, v_min = 0, v_max = 0, format = "%d", flags = 0.
int drag(string label, UI_Int v, float v_speed, int v_min, int v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Int2 v)
Implied v_speed = 1.0f, v_min = 0, v_max = 0, format = "%d", flags = 0.
int drag(string label, UI_Int2 v, float v_speed, int v_min, int v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Int3 v)
Implied v_speed = 1.0f, v_min = 0, v_max = 0, format = "%d", flags = 0.
int drag(string label, UI_Int3 v, float v_speed, int v_min, int v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Int4 v)
Implied v_speed = 1.0f, v_min = 0, v_max = 0, format = "%d", flags = 0.
int drag(string label, UI_Int4 v, float v_speed, int v_min, int v_max, string format, int flags)
If v_min >= v_max we have no bound. Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, UI_Int v_current_min, UI_Int v_current_max)
Implied v_speed = 1.0f, v_min = 0, v_max = 0, format = "%d", format_max = NULL, flags = 0.
int drag(string label, UI_Int v_current_min, UI_Int v_current_max, float v_speed, int v_min, int v_max, string format, string format_max, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, int[] data)
No description available
int drag(string label, int[] data, float v_speed, int v_min, int v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int drag(string label, float[] data)
No description available
int drag(string label, float[] data, float v_speed, float v_min, float v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int slider(string label, UI_Float v, float v_min, float v_max)
Implied format = "%.3f", flags = 0.
int slider(string label, UI_Float v, float v_min, float v_max, string format, int flags)
Adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. `flags` is an enum of type UI_SliderFlags.
int sliderAngle(string label, UI_Float v_rad)
Implied v_degrees_min = -360.0f, v_degrees_max = +360.0f, format = "%.0f deg", flags = 0.
int sliderAngle(string label, UI_Float v_rad, float v_degrees_min, float v_degrees_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int slider(string label, UI_Int v, int v_min, int v_max)
Implied format = "%d", flags = 0.
int slider(string label, UI_Int v, int v_min, int v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int slider(string label, int[] data, int v_min, int v_max)
No description available
int slider(string label, int[] data, int v_min, int v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int slider(string label, float[] data, float v_min, float v_max)
No description available
int slider(string label, float[] data, float v_min, float v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int vslider(string label, vec2 size, UI_Float v, float v_min, float v_max)
Implied format = "%.3f", flags = 0.
int vslider(string label, vec2 size, UI_Float v, float v_min, float v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int vslider(string label, vec2 size, UI_Int v, int v_min, int v_max)
Implied format = "%d", flags = 0.
int vslider(string label, vec2 size, UI_Int v, int v_min, int v_max, string format, int flags)
Parameter `flags` is an enum of type UI_SliderFlags.
int inputText(string label, UI_String buf)
Implied max_input_length = 256, flags = 0, callback = NULL, user_data = NULL. `flags` is an enum of type UI_InputTextFlags.
int inputText(string label, UI_String buf, int max_input_length, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int inputTextMultiline(string label, UI_String buf)
Implied size = ImVec2(0, 0), flags = 0, callback = NULL, user_data = NULL.
int inputTextMultiline(string label, UI_String buf, int max_input_length, vec2 size, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int inputTextWithHint(string label, string hint, UI_String buf)
Implied max_input_length = 256, flags = 0, callback = NULL, user_data = NULL.
int inputTextWithHint(string label, string hint, UI_String buf, int max_input_length, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int inputFloat(string label, UI_Float v)
Implied step = 0.0f, step_fast = 0.0f, format = "%.3f", flags = 0.
int inputFloat(string label, UI_Float v, float step, float step_fast, string format, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int inputFloat(string label, float[] data)
Implied p_step = NULL, p_step_fast = NULL, format = NULL, flags = 0.
int inputFloat(string label, float[] data, float step, float step_fast, string format, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int inputInt(string label, UI_Int v)
Implied step = 1, step_fast = 100, flags = 0.
int inputInt(string label, UI_Int v, int step, int step_fast, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int inputInt(string label, int[] data)
Implied p_step = NULL, p_step_fast = NULL, format = NULL, flags = 0.
int inputInt(string label, int[] data, int step, int step_fast, string format, int flags)
Parameter `flags` is an enum of type UI_InputTextFlags.
int colorEdit(string label, UI_Float3 col, int flags)
`flags` is an enum of type UI_ColorEditFlags.
int colorEdit(string label, UI_Float4 col, int flags)
`flags` is an enum of type UI_ColorEditFlags.
int colorPicker(string label, UI_Float3 col, int flags)
`flags` is an enum of type UI_ColorEditFlags.
int colorPicker(string label, UI_Float4 color, int flags, vec4 reference_color)
No description available
int colorPicker(string label, UI_Float4 color, int flags)
No description available
int colorButton(string desc_id, vec4 col, int flags)
Implied size = ImVec2(0, 0). `flags` is an enum of type UI_ColorEditFlags.
int colorButton(string desc_id, vec4 col, int flags, vec2 size)
`flags` is an enum of type UI_ColorEditFlags. display a color square/button, hover for details, return true when pressed.
void setColorEditOptions(int flags)
Initialize current options (generally on application startup) if you want to select a default format, picker type, etc. User will be able to change many settings, unless you pass the _NoOptions flag to your calls.
int treeNode(string label)
Return true when the node is open, in which case you need to call TreePop()
int treeNode(string str_id, string text)
No description available
int treeNode(string label, int flags)
`flags` is an enum of type UI_TreeNodeFlags.
int treeNode(string str_id, int flags, string text)
No description available
void treePush(string str_id)
Indent()+PushID(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired.
void treePop()
~ Unindent()+PopID()
float getTreeNodeToLabelSpacing()
Horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode.
int collapsingHeader(string label, int flags)
`flags` is an enum of type UI_TreeNodeFlags. if returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop().
int collapsingHeader(string label, UI_Bool p_visible, int flags)
When 'p_visible != NULL': if '*p_visible==true' display an additional small close button on upper right of the header which will set the bool to false when clicked, if '*p_visible==false' don't display the header.
void setNextItemOpen(int is_open, int cond)
Set next TreeNode/CollapsingHeader open state. `Cond` is an enum of type UI_Cond.
int selectable(string label)
Implied selected = false, flags = 0, size = ImVec2(0, 0)
int selectable(string label, int selected, int flags, vec2 size)
`selected` carry the selection state (read-only). Selectable() is clicked is returns true so you can modify your selection state. `size.x==0.0`: use remaining width, `size.x>0.0`: specify width. `size.y==0.0`: use label height, `size.y>0.0`: specify height.
int selectable(string label, UI_Bool p_selected, int flags)
`p_selected` points to the selection state (read-write), as a convenient helper. `flags` is an enum of type UI_SelectableFlags.
int selectable(string label, UI_Bool p_selected, int flags, vec2 size)
`p_selected` points to the selection state (read-write), as a convenient helper. `flags` is an enum of type UI_SelectableFlags.
int beginListBox(string label, vec2 size)
This is essentially a thin wrapper to using BeginChild/EndChild with the ImGuiChildFlags_FrameStyle flag for stylistic changes + displaying a label. You can submit contents and manage your selection state however you want it, by creating e.g. Selectable() or any other items. The simplified/old ListBox() api are helpers over BeginListBox()/EndListBox() which are kept available for convenience purpose. This is analoguous to how Combos are created. Choose frame width: size.x > 0.0f: custom / size.x < 0.0f or -FLT_MIN: right-align / size.x = 0.0f (default): use current ItemWidth Choose frame height: size.y > 0.0f: custom / size.y < 0.0f or -FLT_MIN: bottom-align / size.y = 0.0f (default): arbitrary default height which can fit ~7 itemsThis function opens a framed scrolling region.
void endListBox()
Only call EndListBox() if BeginListBox() returned true!
int listBox(string label, UI_Int current_item, string[] items, int height_in_items)
Set `height_in_items` to -1 to use the default.
int listBox(string label, UI_Int current_item, string[] items)
Listbox ui widget, uses default item height.
void plotLines(string label, float[] values)
Implied values_offset = 0, overlay_text = NULL, scale_min = FLT_MAX, scale_max = FLT_MAX, graph_size = ImVec2(0, 0), stride = sizeof(float)
void plotLines(string label, float[] values, int values_offset, string overlay_text, float scale_min, float scale_max, vec2 graph_size)
No description available
void plotHistogram(string label, float[] values)
Implied values_offset = 0, overlay_text = NULL, scale_min = FLT_MAX, scale_max = FLT_MAX, graph_size = ImVec2(0, 0), stride = sizeof(float)
void plotHistogram(string label, float[] values, int values_offset, string overlay_text, float scale_min, float scale_max, vec2 graph_size)
No description available
int beginMenuBar()
Append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window)
void endMenuBar()
Only call EndMenuBar() if BeginMenuBar() returns true!
int beginMainMenuBar()
Create and append to a full screen menu-bar.
void endMainMenuBar()
Only call EndMainMenuBar() if BeginMainMenuBar() returns true!
int beginMenu(string label)
Implied enabled = true.
int beginMenu(string label, int enabled)
Create a sub-menu entry. only call EndMenu() if this returns true!
void endMenu()
Only call EndMenu() if BeginMenu() returns true!
int menuItem(string label)
Implied shortcut = NULL, selected = false, enabled = true.
int menuItem(string label, string shortcut, UI_Bool p_selected, int enabled)
Return true when activated + toggle (*p_selected) if p_selected != NULL.
int beginTooltip()
Begin/append a tooltip window.
void endTooltip()
Only call EndTooltip() if BeginTooltip()/BeginItemTooltip() returns true!
void tooltip(string text)
Set a text-only tooltip. Often used after a ImGui::IsItemHovered() check. Override any previous call to SetTooltip(). SetTooltip() is more or less a shortcut for the 'if (BeginTooltip()) { Text(...); EndTooltip(); }' idiom (with a subtlety that it discard any previously submitted tooltip)
void itemTooltip(string text)
Set a text-only tooltip if preceding item was hovered. override any previous call to SetTooltip(). itemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip)) { SetTooltip(...); }' idiom.
int beginPopup(string str_id, int flags)
Return true if the popup is open, and you can start outputting to it. `flags` is an enum of type UI_WindowFlags beginPopup(): query popup state, if open start appending into the window. Call endPopup() afterwards if returned true. UI_WindowFlags are forwarded to the window.
int beginPopupModal(string name, UI_Bool p_open, int flags)
Return true if the modal is open, and you can start outputting to it. `flags` is an enum of type UI_WindowFlags beginPopupModal(): block every interaction behind the window, cannot be closed by user, add a dimming background, has a title bar.
void endPopup()
No description available
void openPopup(string str_id, int popup_flags)
Call to mark popup as open (don't call every frame!). `popup_flags` is an enum of type UI_PopupFlags.
void openPopupOnItemClick(string str_id, int popup_flags)
Helper to open popup when clicked on last item. Default to UI_PopupFlags.MouseButtonRight == 1. (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors) `popup_flags` is an enum of type UI_PopupFlags.
void closeCurrentPopup()
Manually close the popup we have begin-ed into.
int beginPopupContextItem()
Implied str_id = NULL, popup_flags = 1.
int beginPopupContextItem(string str_id, int popup_flags)
Open+begin popup when clicked on last item. Use str_id==NULL to associate the popup to previous item. If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp!
int beginPopupContextWindow()
Implied str_id = NULL, popup_flags = 1.
int beginPopupContextWindow(string str_id, int popup_flags)
Open+begin popup when clicked on current window.
int beginPopupContextVoid()
Implied str_id = NULL, popup_flags = 1.
int beginPopupContextVoid(string str_id, int popup_flags)
Open+begin popup when clicked in void (where there are no windows).
int isPopupOpen(string str_id, int flags)
Return true if the popup is open. `flags` is an enum of type UI_PopupFlags.
int beginTable(string str_id, int column, int flags)
Implied outer_size = ImVec2(0.0f, 0.0f), inner_width = 0.0f `flags` is an enum of type UI_TableFlags.
int beginTable(string str_id, int column, int flags, vec2 outer_size, float inner_width)
`flags` is an enum of type UI_TableFlags.
void endTable()
Only call EndTable() if BeginTable() returns true!
void tableNextRow()
Implied row_flags = 0, min_row_height = 0.0f.
void tableNextRow(int row_flags, float min_row_height)
Append into the first cell of a new row.
int tableNextColumn()
Append into the next column (or first column of next row if currently in last column). Return true when column is visible.
int tableSetColumnIndex(int column_n)
Append into the specified column. Return true when column is visible.
void tableSetupColumn(string label, int flags)
Implied init_width_or_weight = 0.0f, user_id = 0 `flags` is an enum of type UI_TableColumnFlags.
void tableSetupColumn(string label, int flags, float init_width_or_weight, int user_id)
No description available
void tableSetupScrollFreeze(int cols, int rows)
Lock columns/rows so they stay visible when scrolled.
void tableHeader(string label)
Submit one header cell manually (rarely used)
void tableHeadersRow()
Submit a row with headers cells based on data provided to TableSetupColumn() + submit context menu.
void tableAngledHeadersRow()
Submit a row with angled headers for every column with the ImGuiTableColumnFlags_AngledHeader flag. MUST BE FIRST ROW.
int tableGetColumnCount()
Return number of columns (value passed to BeginTable)
int tableGetColumnIndex()
Return current column index.
int tableGetRowIndex()
Return current row index.
string tableGetColumnName(int column_n)
Return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column.
int tableGetColumnFlags(int column_n)
Return column flags so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column.
void tableSetColumnEnabled(int column_n, int v)
Change user accessible enabled/disabled state of a column. Set to false to hide the column. User can use the context menu to change this themselves (right-click in headers, or right-click in columns body with UI_TableFlags.ContextMenuInBody)
void tableSetBgColor(int ui_table_bg_target_flag, vec4 color, int column_n)
Change the color of a cell, row, or column. UI_TableBgTarget flags for details.
int beginTabBar(string str_id, int flags)
`flags` is an enum of type UI_TabBarFlags create and append into a TabBar.
void endTabBar()
Only call EndTabBar() if BeginTabBar() returns true!
int beginTabItem(string label, UI_Bool p_open, int flags)
Create a Tab. Returns true if the Tab is selected. `flags` is an enum of type UI_TabItemFlags.
void endTabItem()
Only call EndTabItem() if BeginTabItem() returns true!
int tabItemButton(string label, int flags)
Create a Tab behaving like a button. Returns true when clicked. cannot be selected in the tab bar. `flags` is an enum of type UI_TabItemFlags.
void setTabItemClosed(string tab_or_docked_window_label)
Notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name.
int dockSpaceOverViewport()
Implied dockspace_id = 0, viewport = NULL, flags = 0.
void beginDisabled(int disabled)
Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors) Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled) BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it.
void endDisabled()
No description available
void pushClipRect(vec2 clip_rect_min, vec2 clip_rect_max, int intersect_with_current_clip_rect)
Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only.
void popClipRect()
No description available
void setItemDefaultFocus()
Make last item the default focused item of a window.
void setKeyboardFocusHere()
Implied offset = 0.
void setKeyboardFocusHere(int offset)
Focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget.
void nextItemAllowOverlap()
Allow next item to be overlapped by a subsequent item. Useful with invisible buttons, selectable, treenode covering an area where subsequent items may need to be added. Note that both Selectable() and TreeNode() have dedicated flags doing this.
int isItemHovered(int ui_hovered_flags)
Is the last item hovered? (and usable, aka not blocked by a popup, etc.). See UI_HoveredFlags for more options.
int isItemActive()
Is the last item active? (e.g. button being held, text field being edited. This will continuously return true while holding mouse button on an item. Items that don't interact will always return false)
int isItemFocused()
Is the last item focused for keyboard/gamepad navigation?
int isItemClicked()
Implied mouse_button = 0.
int isItemClicked(int mouse_button)
Is the last item hovered and mouse clicked on? (**) == IsMouseClicked(mouse_button) && IsItemHovered(). Important. (**) this is NOT equivalent to the behavior of e.g. Button(). Read comments in function definition.mouse_button is an enum of type UI_MouseButton.
int isItemVisible()
Is the last item visible? (items may be out of sight because of clipping/scrolling)
int isItemEdited()
Did the last item modify its underlying value this frame? or was pressed? This is generally the same as the 'bool' return value of many widgets.
int isItemActivated()
Was the last item just made active (item was previously inactive).
int isItemDeactivated()
Was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that require continuous editing.
int isItemDeactivatedAfterEdit()
Was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). Useful for Undo/Redo patterns with widgets that require continuous editing. Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item).
int isItemToggledOpen()
Was the last item open state toggled? set by TreeNode().
int isAnyItemHovered()
Is any item hovered?
int isAnyItemActive()
Is any item active?
int isAnyItemFocused()
Is any item focused?
int getItemID()
Get ID of last item (~~ often same ImGui::GetID(label) beforehand)
vec2 getItemRectMin()
Get upper-left bounding rectangle of the last item (screen space)
vec2 getItemRectMax()
Get lower-right bounding rectangle of the last item (screen space)
vec2 getItemRectSize()
Get size of last item.
UI_Viewport getMainViewport()
Return primary/default viewport. This can never be NULL.
vec2 calcTextSize(string text)
Implied text_end = NULL, hide_text_after_double_hash = false, wrap_width = -1.0f.
vec2 calcTextSize(string text, string text_end, int hide_text_after_double_hash, float wrap_width)
Default hide_text_after_double_hash = false, wrap_width = -1.0f.
vec3 convertRGBtoHSV(vec3 rgb)
No description available
vec3 convertHSVtoRGB(vec3 hsv)
No description available
int isKeyDown(int key)
Is key being held. `key` is an enum of type UI_Key.
int isKeyPressed(int key)
Implied repeat = true. `key` is an enum of type UI_Key.
int isKeyPressed(int key, int repeat)
Was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate. `key` is an enum of type UI_Key.
int isKeyReleased(int key)
Was key released (went from Down to !Down)? `key` is an enum of type UI_Key.
int isKeyChordPressed(int key_chord)
Was key chord (UI_Key.Mod* + UI_Key) pressed, e.g. you can pass 'UI_Key.Mod_Ctrl | UI_Key.S' as a key-chord. This doesn't do any routing or focus check, please consider using Shortcut() function instead.
int keyPressedAmount(int key, float repeat_delay, float rate)
Uses provided repeat rate/delay. return a count, most often 0 or 1 but might be >1 if RepeatRate is small enough that DeltaTime > RepeatRate. `key` is an enum of type UI_Key.
string keyName(int key)
Returns English name of the key. Those names a provided for debugging purpose and are not meant to be saved persistently not compared.
void setNextFrameWantCaptureKeyboard(int want_capture_keyboard)
Override io.WantCaptureKeyboard flag next frame (said flag is left for your application to handle, typically when true it instructs your app to ignore inputs). e.g. force capture keyboard when your widget is being hovered. This is equivalent to setting "io.WantCaptureKeyboard = want_capture_keyboard"; after the next NewFrame() call.
int isMouseDown(int button)
Is mouse button held. `button` is an enum of type UI_MouseButton.
int isMouseClicked(int button)
Implied repeat = false. `button` is an enum of type UI_MouseButton.
int isMouseClicked(int button, int repeat)
Did mouse button clicked? (went from !Down to Down). Same as GetMouseClickedCount() == 1. `button` is an enum of type UI_MouseButton.
int isMouseReleased(int button)
Did mouse button released? (went from Down to !Down). `button` is an enum of type UI_MouseButton.
int isMouseDoubleClicked(int button)
Did mouse button double-clicked? Same as GetMouseClickedCount() == 2. `button` is an enum of type UI_MouseButton.
int getMouseClickedCount(int button)
Return the number of successive mouse-clicks at the time where a click happen (otherwise 0). `button` is an enum of type UI_MouseButton.
int isMouseHoveringRect(vec2 r_min, vec2 r_max)
Implied clip = true.
int isMouseHoveringRect(vec2 r_min, vec2 r_max, int clip)
Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block.
int isMousePosValid()
By convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse available.
vec2 getMousePos()
Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls.
vec2 getMousePosOnOpeningCurrentPopup()
Retrieve mouse position at the time of opening popup we have BeginPopup() into (helper to avoid user backing that value themselves)
int isMouseDragging(int button, float lock_threshold)
Is mouse dragging? (uses io.MouseDraggingThreshold if lock_threshold < 0.0f). `button` is an enum of type UI_MouseButton.
vec2 getMouseDragDelta(int button, float lock_threshold)
Return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses io.MouseDraggingThreshold if lock_threshold < 0.0f) `button` is an enum of type UI_MouseButton.
void resetMouseDragDelta()
Implied button = 0.
void resetMouseDragDelta(int button)
`button` is an enum of type UI_MouseButton.
int mouseCursor()
Get desired mouse cursor shape. Important: reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you.
void setMouseCursor(int cursor_type)
Set desired mouse cursor shape. `cursor_type` is an enum of type UI_MouseCursor.
void setNextFrameWantCaptureMouse(int want_capture_mouse)
Override io.WantCaptureMouse flag next frame (said flag is left for your application to handle, typical when true it instucts your app to ignore inputs). This is equivalent to setting "io.WantCaptureMouse = want_capture_mouse;" after the next NewFrame() call.
string clipboardText()
No description available
void clipboardText(string text)
No description available
void styleColorsDark()
No description available
void styleColorsLight()
No description available
void styleColorsClassic()
No description available
void disabled(int disabled)
Set whether imgui is disabled (does not call call new frame, does not submit UI draw lists to renderer)Do this if your application does not render UI and needs the extra performance from skipping UI overhead. Saves ~2ms on the render thread.While UI.disabled == true, DO NOT call any other UI functions. Doing so results in undefined behavior.
void scenegraph(GGen root)
Scene tree widget. View data about a given GGen and all its children. A simple version of a typical Editor Scenegraph.
int wantCaptureMouse()
When wantCaptureMouse=true, the mouse is interacting with UI widgets, so you know to discard/hide the mouse inputs from your underlying application.
int wantCaptureKeyboard()
When wantCaptureKeyboard=true, the keyboard is interacting with UI widgets, so you know to discard/hide the keyboard inputs from your underlying application.
UI_Style getStyle()
Access the Style structure (colors, sizes). Always use PushStyleColor(), PushStyleVar() to modify style mid-frame!
void showDemoWindow(UI_Bool p_open)
Create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
void showMetricsWindow(UI_Bool p_open)
Create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc.
void showDebugLogWindow(UI_Bool p_open)
Create Debug Log window. display a simplified log of important dear imgui events.
void showStyleEditor()
Add style selector block (not a window), essentially a combo listing the default styles.
void showIDStackToolWindow(UI_Bool p_open)
Create Stack Tool window. hover items with mouse to query information about the source of their unique ID.
void showAboutWindow(UI_Bool p_open)
Create About window. display Dear ImGui version, credits and build/system information.
int showStyleSelector(string label)
Add style selector block (not a window), essentially a combo listing the default styles.
[ top ]