imgui.cimgui

D wrapper for cimgui (Dear ImGui). Provides bindings for Dear ImGui immediate mode GUI library.

Features: - Full ImGui API coverage - @trusted wrapper functions - Preserves ImGui naming conventions - Handles memory management

Public Imports

imgui.c.dcimgui
public import imgui.c.dcimgui;
Undocumented in source.

Members

Aliases

BulletTextV
alias BulletTextV = igBulletTextV
Undocumented in source.
ColorConvertRGBtoHSV
alias ColorConvertRGBtoHSV = igColorConvertRGBtoHSV
Undocumented in source.
DebugLogV
alias DebugLogV = igDebugLogV
Undocumented in source.
ImGuiGetterCallback
alias ImGuiGetterCallback = const(char)* function(void*, int)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
ImGuiOld_callbackCallback
alias ImGuiOld_callbackCallback = bool function(void*, int, const(char)**)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
ImGuiValues_getterCallback
alias ImGuiValues_getterCallback = float function(void*, int)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
LabelTextV
alias LabelTextV = igLabelTextV
Undocumented in source.
LogTextV
alias LogTextV = igLogTextV
Undocumented in source.
SetItemTooltipV
alias SetItemTooltipV = igSetItemTooltipV
Undocumented in source.
SetTooltipV
alias SetTooltipV = igSetTooltipV
Undocumented in source.
Text
alias Text = igText
Undocumented in source.
TextColored
alias TextColored = igTextColored
Undocumented in source.
TextColoredV
alias TextColoredV = igTextColoredV
Undocumented in source.
TextDisabled
alias TextDisabled = igTextDisabled
Undocumented in source.
TextDisabledV
alias TextDisabledV = igTextDisabledV
Undocumented in source.
TextV
alias TextV = igTextV
Undocumented in source.
TextWrapped
alias TextWrapped = igTextWrapped
Undocumented in source.
TextWrappedV
alias TextWrappedV = igTextWrappedV
Undocumented in source.
TreeNodeExV
alias TreeNodeExV = igTreeNodeExV
Undocumented in source.
TreeNodeExVPtr
alias TreeNodeExVPtr = igTreeNodeExVPtr
Undocumented in source.
TreeNodeV
alias TreeNodeV = igTreeNodeV
Undocumented in source.
TreeNodeVPtr
alias TreeNodeVPtr = igTreeNodeVPtr
Undocumented in source.

Functions

AcceptDragDropPayload
const(ImGuiPayload)* AcceptDragDropPayload(const(char)* type, ImGuiDragDropFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
AlignTextToFramePadding
void AlignTextToFramePadding()
Undocumented in source. Be warned that the author may not have intended to support it.
ArrowButton
bool ArrowButton(const(char)* str_id, ImGuiDir dir)
Undocumented in source. Be warned that the author may not have intended to support it.
Begin
bool Begin(const(char)* name, bool* p_open, ImGuiWindowFlags flags)

Windows - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. - Passing '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! [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] - Note that the bottom of window stack always contains a window called "Debug".

BeginChild
bool BeginChild(const(char)* str_id, ImVec2 size, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags)

Child Windows - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child. - Before 1.90 (November 2023), the "ImGuiChildFlags child_flags = 0" parameter was "bool border = false". This API is backward compatible with old code, as we guarantee that ImGuiChildFlags_Borders == true. Consider updating your old code: BeginChild("Name", size, false) -> Begin("Name", size, 0); or Begin("Name", size, ImGuiChildFlags_None); BeginChild("Name", size, true) -> Begin("Name", size, ImGuiChildFlags_Borders); - 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.

BeginChildFrame
bool BeginChildFrame(ImGuiID id, ImVec2 size)

OBSOLETED in 1.90.0 (from September 2023)

BeginChildFrameEx
bool BeginChildFrameEx(ImGuiID id, ImVec2 size, ImGuiWindowFlags window_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginChildID
bool BeginChildID(ImGuiID id, ImVec2 size, ImGuiChildFlags child_flags, ImGuiWindowFlags window_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginCombo
bool BeginCombo(const(char)* label, const(char)* preview_value, ImGuiComboFlags flags)

Widgets: Combo Box (Dropdown) - 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.

BeginDisabled
void BeginDisabled(bool disabled)

Disabling [BETA API] - 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) - Tooltips windows by exception are opted out of disabling. - BeginDisabled(false)/EndDisabled() essentially does nothing but is provided to facilitate use of boolean expressions (as a micro-optimization: if you have tens of thousands of BeginDisabled(false)/EndDisabled() pairs, you might want to reformulate your code to avoid making those calls)

BeginDragDropSource
bool BeginDragDropSource(ImGuiDragDropFlags flags)

Drag and Drop - On source items, call BeginDragDropSource(), if it returns true also call SetDragDropPayload() + EndDragDropSource(). - On target candidates, call BeginDragDropTarget(), if it returns true also call AcceptDragDropPayload() + EndDragDropTarget(). - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback "..." tooltip, see #1725) - An item can be both drag source and drop target.

BeginDragDropTarget
bool BeginDragDropTarget()
Undocumented in source. Be warned that the author may not have intended to support it.
BeginGroup
void BeginGroup()
Undocumented in source. Be warned that the author may not have intended to support it.
BeginItemTooltip
bool BeginItemTooltip()

Tooltips: helpers for showing a tooltip when hovering an item - BeginItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip) & & BeginTooltip())' idiom. - SetItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip)) { SetTooltip(...); }' idiom. - Where 'ImGuiHoveredFlags_ForTooltip' itself is a shortcut to use 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on active input type. For mouse it defaults to 'ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort'.

BeginListBox
bool BeginListBox(const(char)* label, ImVec2 size)

Widgets: List Boxes - This is essentially a thin wrapper to using BeginChild/EndChild with the ImGuiChildFlags_FrameStyle flag for stylistic changes + displaying a label. - If you don't need a label you can probably simply use BeginChild() with the ImGuiChildFlags_FrameStyle flag for the same result. - 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 items

BeginMainMenuBar
bool BeginMainMenuBar()
Undocumented in source. Be warned that the author may not have intended to support it.
BeginMenu
bool BeginMenu(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginMenuBar
bool BeginMenuBar()

Widgets: Menus - Use BeginMenuBar() on a window ImGuiWindowFlags_MenuBar to append to its menu bar. - Use BeginMainMenuBar() to create a menu bar at the top of the screen and append to it. - Use BeginMenu() to create a menu. You can call BeginMenu() multiple time with the same identifier to append more items to it. - Not that MenuItem() keyboardshortcuts are displayed as a convenience but _not processed_ by Dear ImGui at the moment.

BeginMenuEx
bool BeginMenuEx(const(char)* label, bool enabled)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginMultiSelect
ImGuiMultiSelectIO* BeginMultiSelect(ImGuiMultiSelectFlags flags)

Multi-selection system for Selectable(), Checkbox(), TreeNode() functions BETA - This enables standard multi-selection/range-selection idioms (CTRL+Mouse/Keyboard, SHIFT+Mouse/Keyboard, etc.) in a way that also allow a clipper to be used. - ImGuiSelectionUserData is often used to store your item index within the current view (but may store something else). - Read comments near ImGuiMultiSelectIO for instructions/details and see 'Demo->Widgets->Selection State & Multi-Select' for demo. - TreeNode() is technically supported but... using this correctly is more complicated. You need some sort of linear/random access to your tree, which is suited to advanced trees setups already implementing filters and clipper. We will work simplifying the current demo. - 'selection_size' and 'items_count' parameters are optional and used by a few features. If they are costly for you to compute, you may avoid them.

BeginMultiSelectEx
ImGuiMultiSelectIO* BeginMultiSelectEx(ImGuiMultiSelectFlags flags, int selection_size, int items_count)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginPopup
bool BeginPopup(const(char)* str_id, ImGuiWindowFlags flags)

Popups, Modals - They block normal mouse hovering detection (and therefore most mouse interactions) behind them. - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE. - Their visibility state (~bool) is held internally instead of being held by the programmer as we are used to with regular Begin*() calls. - The 3 properties above are related: we need to retain popup visibility state in the library because popups may be closed as any time. - You can bypass the hovering restriction by using ImGuiHoveredFlags_AllowWhenBlockedByPopup when calling IsItemHovered() or IsWindowHovered(). - IMPORTANT: Popup identifiers are relative to the current ID stack, so OpenPopup and BeginPopup generally needs to be at the same level of the stack. This is sometimes leading to confusing mistakes. May rework this in the future. - BeginPopup(): query popup state, if open start appending into the window. Call EndPopup() afterwards if returned true. ImGuiWindowFlags are forwarded to the window. - BeginPopupModal(): block every interaction behind the window, cannot be closed by user, add a dimming background, has a title bar.

BeginPopupContextItem
bool BeginPopupContextItem()

Popups: open+begin combined functions helpers - Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking. - They are convenient to easily create context menus, hence the name. - IMPORTANT: Notice that BeginPopupContextXXX takes ImGuiPopupFlags just like OpenPopup() and unlike BeginPopup(). For full consistency, we may add ImGuiWindowFlags to the BeginPopupContextXXX functions in the future. - IMPORTANT: Notice that we exceptionally default their flags to 1 (== ImGuiPopupFlags_MouseButtonRight) for backward compatibility with older API taking 'int mouse_button = 1' parameter, so if you add other flags remember to re-add the ImGuiPopupFlags_MouseButtonRight.

BeginPopupContextItemEx
bool BeginPopupContextItemEx(const(char)* str_id, ImGuiPopupFlags popup_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginPopupContextVoid
bool BeginPopupContextVoid()
Undocumented in source. Be warned that the author may not have intended to support it.
BeginPopupContextVoidEx
bool BeginPopupContextVoidEx(const(char)* str_id, ImGuiPopupFlags popup_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginPopupContextWindow
bool BeginPopupContextWindow()
Undocumented in source. Be warned that the author may not have intended to support it.
BeginPopupContextWindowEx
bool BeginPopupContextWindowEx(const(char)* str_id, ImGuiPopupFlags popup_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginPopupModal
bool BeginPopupModal(const(char)* name, bool* p_open, ImGuiWindowFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginTabBar
bool BeginTabBar(const(char)* str_id, ImGuiTabBarFlags flags)

Tab Bars, Tabs - Note: Tabs are automatically created by the docking system (when in 'docking' branch). Use this to create tab bars/tabs yourself.

BeginTabItem
bool BeginTabItem(const(char)* label, bool* p_open, ImGuiTabItemFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginTable
bool BeginTable(const(char)* str_id, int columns, ImGuiTableFlags flags)

Tables - Full-featured replacement for old Columns API. - See Demo->Tables for demo code. See top of imgui_tables.cpp for general commentary. - See ImGuiTableFlags_ and ImGuiTableColumnFlags_ enums for a description of available flags. The typical call flow is: - 1. Call BeginTable(), early out if returning false. - 2. Optionally call TableSetupColumn() to submit column name/flags/defaults. - 3. Optionally call TableSetupScrollFreeze() to request scroll freezing of columns/rows. - 4. Optionally call TableHeadersRow() to submit a header row. Names are pulled from TableSetupColumn() data. - 5. Populate contents: - In most situations you can use TableNextRow() + TableSetColumnIndex(N) to start appending into a column. - If you are using tables as a sort of grid, where every column is holding the same type of contents, you may prefer using TableNextColumn() instead of TableNextRow() + TableSetColumnIndex(). TableNextColumn() will automatically wrap-around into the next row if needed. - IMPORTANT: Comparatively to the old Columns() API, we need to call TableNextColumn() for the first column! - Summary of possible call flow: - TableNextRow() -> TableSetColumnIndex(0) -> Text("Hello 0") -> TableSetColumnIndex(1) -> Text("Hello 1") // OK - TableNextRow() -> TableNextColumn() -> Text("Hello 0") -> TableNextColumn() -> Text("Hello 1") // OK - TableNextColumn() -> Text("Hello 0") -> TableNextColumn() -> Text("Hello 1") // OK: TableNextColumn() automatically gets to next row! - TableNextRow() -> Text("Hello 0") // Not OK! Missing TableSetColumnIndex() or TableNextColumn()! Text will not appear! - 5. Call EndTable()

BeginTableEx
bool BeginTableEx(const(char)* str_id, int columns, ImGuiTableFlags flags, ImVec2 outer_size, float inner_width)
Undocumented in source. Be warned that the author may not have intended to support it.
BeginTooltip
bool BeginTooltip()

Tooltips - Tooltips are windows following the mouse. They do not take focus away. - A tooltip window can contain items of any types. - SetTooltip() is more or less a shortcut for the 'if (BeginTooltip()) { Text(...); EndTooltip(); }' idiom (with a subtlety that it discard any previously submitted tooltip)

Bullet
void Bullet()
Undocumented in source. Be warned that the author may not have intended to support it.
BulletText
void BulletText(const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
Button
bool Button(const(char)* label)

Widgets: Main - Most widgets return true when the value has been changed or when pressed/selected - You may also use one of the many IsItemXXX functions (e.g. IsItemActive, IsItemHovered, etc.) to query widget state.

ButtonEx
bool ButtonEx(const(char)* label, ImVec2 size)
Undocumented in source. Be warned that the author may not have intended to support it.
CalcItemWidth
float CalcItemWidth()
Undocumented in source. Be warned that the author may not have intended to support it.
CalcTextSize
ImVec2 CalcTextSize(const(char)* text)

Text Utilities

CalcTextSizeEx
ImVec2 CalcTextSizeEx(const(char)* text, const(char)* text_end, bool hide_text_after_double_hash, float wrap_width)
Undocumented in source. Be warned that the author may not have intended to support it.
Checkbox
bool Checkbox(const(char)* label, bool* v)
Undocumented in source. Be warned that the author may not have intended to support it.
CheckboxFlagsIntPtr
bool CheckboxFlagsIntPtr(const(char)* label, int* flags, int flags_value)
Undocumented in source. Be warned that the author may not have intended to support it.
CheckboxFlagsUintPtr
bool CheckboxFlagsUintPtr(const(char)* label, uint* flags, uint flags_value)
Undocumented in source. Be warned that the author may not have intended to support it.
CloseCurrentPopup
void CloseCurrentPopup()
Undocumented in source. Be warned that the author may not have intended to support it.
CollapsingHeader
bool CollapsingHeader(const(char)* label, ImGuiTreeNodeFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
CollapsingHeaderBoolPtr
bool CollapsingHeaderBoolPtr(const(char)* label, bool* p_visible, ImGuiTreeNodeFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorButton
bool ColorButton(const(char)* desc_id, ImVec4 col, ImGuiColorEditFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorButtonEx
bool ColorButtonEx(const(char)* desc_id, ImVec4 col, ImGuiColorEditFlags flags, ImVec2 size)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorConvertFloat4ToU32
ImU32 ColorConvertFloat4ToU32(ImVec4 in_)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorConvertHSVtoRGB
void ColorConvertHSVtoRGB(float h, float s, float v, float* out_r, float* out_g, float* out_b)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorConvertU32ToFloat4
ImVec4 ColorConvertU32ToFloat4(ImU32 in_)

Color Utilities

ColorEdit3
bool ColorEdit3(const(char)* label, float* col, ImGuiColorEditFlags flags)

Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu.) - Note that in C++ a 'float vX' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. - You can pass the address of a first float element out of a contiguous structure, e.g. &myvector .x

ColorEdit4
bool ColorEdit4(const(char)* label, float* col, ImGuiColorEditFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorPicker3
bool ColorPicker3(const(char)* label, float* col, ImGuiColorEditFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
ColorPicker4
bool ColorPicker4(const(char)* label, float* col, ImGuiColorEditFlags flags, float* ref_col)
Undocumented in source. Be warned that the author may not have intended to support it.
Columns
void Columns()

Legacy Columns API (prefer using Tables!) - You can also use SameLine(pos_x) to mimic simplified columns.

ColumnsEx
void ColumnsEx(int count, const(char)* id, bool borders)
Undocumented in source. Be warned that the author may not have intended to support it.
Combo
bool Combo(const(char)* label, int* current_item, const(char)* items_separated_by_zeros)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboCallback
bool ComboCallback(const(char)* label, int* current_item, ImGuiGetterCallback getter, void* user_data, int items_count)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboCallbackEx
bool ComboCallbackEx(const(char)* label, int* current_item, ImGuiGetterCallback getter, void* user_data, int items_count, int popup_max_height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboChar
bool ComboChar(const(char)* label, int* current_item, const(char)** items, int items_count)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboCharEx
bool ComboCharEx(const(char)* label, int* current_item, const(char)** items, int items_count, int popup_max_height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboEx
bool ComboEx(const(char)* label, int* current_item, const(char)* items_separated_by_zeros, int popup_max_height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboObsolete
bool ComboObsolete(const(char)* label, int* current_item, ImGuiOld_callbackCallback old_callback, void* user_data, int items_count)
Undocumented in source. Be warned that the author may not have intended to support it.
ComboObsoleteEx
bool ComboObsoleteEx(const(char)* label, int* current_item, ImGuiOld_callbackCallback old_callback, void* user_data, int items_count, int popup_max_height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
CreateContext
ImGuiContext* CreateContext(ImFontAtlas* shared_font_atlas)

Context creation and access - Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between contexts. - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions() for each static/DLL boundary you are calling from. Read "Context and Memory Allocators" section of imgui.cpp for details.

DebugCheckVersionAndDataLayout
bool DebugCheckVersionAndDataLayout(const(char)* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx)
Undocumented in source. Be warned that the author may not have intended to support it.
DebugFlashStyleColor
void DebugFlashStyleColor(ImGuiCol idx)
Undocumented in source. Be warned that the author may not have intended to support it.
DebugLog
void DebugLog(const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
DebugStartItemPicker
void DebugStartItemPicker()
Undocumented in source. Be warned that the author may not have intended to support it.
DebugTextEncoding
void DebugTextEncoding(const(char)* text)

Debug Utilities - Your main debugging friend is the ShowMetricsWindow() function, which is also accessible from Demo->Tools->Metrics Debugger

DestroyContext
void DestroyContext(ImGuiContext* ctx)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloat
bool DragFloat(const(char)* label, float* v)

Widgets: Drag Sliders - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp. - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every function, note that a 'float vX' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector .x - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. - Format string may also be set to NULL or use the default format ("%f" or "%d"). - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For keyboard/gamepad navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision). - Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used. - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum. - 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. - Legacy: Pre-1.78 there are DragXXX() function signatures that take a final float power=1.0f' argument instead of the ImGuiSliderFlags flags=0' argument. If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361

DragFloat2
bool DragFloat2(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloat2Ex
bool DragFloat2Ex(const(char)* label, float* v, float v_speed, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloat3
bool DragFloat3(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloat3Ex
bool DragFloat3Ex(const(char)* label, float* v, float v_speed, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloat4
bool DragFloat4(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloat4Ex
bool DragFloat4Ex(const(char)* label, float* v, float v_speed, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloatEx
bool DragFloatEx(const(char)* label, float* v, float v_speed, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloatRange2
bool DragFloatRange2(const(char)* label, float* v_current_min, float* v_current_max)
Undocumented in source. Be warned that the author may not have intended to support it.
DragFloatRange2Ex
bool DragFloatRange2Ex(const(char)* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const(char)* format, const(char)* format_max, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt
bool DragInt(const(char)* label, int* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt2
bool DragInt2(const(char)* label, int* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt2Ex
bool DragInt2Ex(const(char)* label, int* v, float v_speed, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt3
bool DragInt3(const(char)* label, int* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt3Ex
bool DragInt3Ex(const(char)* label, int* v, float v_speed, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt4
bool DragInt4(const(char)* label, int* v)
Undocumented in source. Be warned that the author may not have intended to support it.
DragInt4Ex
bool DragInt4Ex(const(char)* label, int* v, float v_speed, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragIntEx
bool DragIntEx(const(char)* label, int* v, float v_speed, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragIntRange2
bool DragIntRange2(const(char)* label, int* v_current_min, int* v_current_max)
Undocumented in source. Be warned that the author may not have intended to support it.
DragIntRange2Ex
bool DragIntRange2Ex(const(char)* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const(char)* format, const(char)* format_max, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragScalar
bool DragScalar(const(char)* label, ImGuiDataType data_type, void* p_data)
Undocumented in source. Be warned that the author may not have intended to support it.
DragScalarEx
bool DragScalarEx(const(char)* label, ImGuiDataType data_type, void* p_data, float v_speed, void* p_min, void* p_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
DragScalarN
bool DragScalarN(const(char)* label, ImGuiDataType data_type, void* p_data, int components)
Undocumented in source. Be warned that the author may not have intended to support it.
DragScalarNEx
bool DragScalarNEx(const(char)* label, ImGuiDataType data_type, void* p_data, int components, float v_speed, void* p_min, void* p_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
Dummy
void Dummy(ImVec2 size)
Undocumented in source. Be warned that the author may not have intended to support it.
End
void End()
Undocumented in source. Be warned that the author may not have intended to support it.
EndChild
void EndChild()
Undocumented in source. Be warned that the author may not have intended to support it.
EndChildFrame
void EndChildFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
EndCombo
void EndCombo()
Undocumented in source. Be warned that the author may not have intended to support it.
EndDisabled
void EndDisabled()
Undocumented in source. Be warned that the author may not have intended to support it.
EndDragDropSource
void EndDragDropSource()
Undocumented in source. Be warned that the author may not have intended to support it.
EndDragDropTarget
void EndDragDropTarget()
Undocumented in source. Be warned that the author may not have intended to support it.
EndFrame
void EndFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
EndGroup
void EndGroup()
Undocumented in source. Be warned that the author may not have intended to support it.
EndListBox
void EndListBox()
Undocumented in source. Be warned that the author may not have intended to support it.
EndMainMenuBar
void EndMainMenuBar()
Undocumented in source. Be warned that the author may not have intended to support it.
EndMenu
void EndMenu()
Undocumented in source. Be warned that the author may not have intended to support it.
EndMenuBar
void EndMenuBar()
Undocumented in source. Be warned that the author may not have intended to support it.
EndMultiSelect
ImGuiMultiSelectIO* EndMultiSelect()
Undocumented in source. Be warned that the author may not have intended to support it.
EndPopup
void EndPopup()
Undocumented in source. Be warned that the author may not have intended to support it.
EndTabBar
void EndTabBar()
Undocumented in source. Be warned that the author may not have intended to support it.
EndTabItem
void EndTabItem()
Undocumented in source. Be warned that the author may not have intended to support it.
EndTable
void EndTable()
Undocumented in source. Be warned that the author may not have intended to support it.
EndTooltip
void EndTooltip()
Undocumented in source. Be warned that the author may not have intended to support it.
GetAllocatorFunctions
void GetAllocatorFunctions(ImGuiMemAllocFunc* p_alloc_func, ImGuiMemFreeFunc* p_free_func, void** p_user_data)
Undocumented in source. Be warned that the author may not have intended to support it.
GetBackgroundDrawList
ImDrawList* GetBackgroundDrawList()

Background/Foreground Draw Lists

GetClipboardText
const(char)* GetClipboardText()

Clipboard Utilities - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard.

GetColorU32
ImU32 GetColorU32(ImGuiCol idx)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColorU32Ex
ImU32 GetColorU32Ex(ImGuiCol idx, float alpha_mul)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColorU32ImU32
ImU32 GetColorU32ImU32(ImU32 col)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColorU32ImU32Ex
ImU32 GetColorU32ImU32Ex(ImU32 col, float alpha_mul)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColorU32ImVec4
ImU32 GetColorU32ImVec4(ImVec4 col)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColumnIndex
int GetColumnIndex()
Undocumented in source. Be warned that the author may not have intended to support it.
GetColumnOffset
float GetColumnOffset(int column_index)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColumnWidth
float GetColumnWidth(int column_index)
Undocumented in source. Be warned that the author may not have intended to support it.
GetColumnsCount
int GetColumnsCount()
Undocumented in source. Be warned that the author may not have intended to support it.
GetContentRegionAvail
ImVec2 GetContentRegionAvail()
Undocumented in source. Be warned that the author may not have intended to support it.
GetContentRegionMax
ImVec2 GetContentRegionMax()
Undocumented in source. Be warned that the author may not have intended to support it.
GetCurrentContext
ImGuiContext* GetCurrentContext()
Undocumented in source. Be warned that the author may not have intended to support it.
GetCursorPos
ImVec2 GetCursorPos()
Undocumented in source. Be warned that the author may not have intended to support it.
GetCursorPosX
float GetCursorPosX()
Undocumented in source. Be warned that the author may not have intended to support it.
GetCursorPosY
float GetCursorPosY()
Undocumented in source. Be warned that the author may not have intended to support it.
GetCursorScreenPos
ImVec2 GetCursorScreenPos()

Layout cursor positioning - By "cursor" we mean the current output position. - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down. - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget. - YOU CAN DO 99% OF WHAT YOU NEED WITH ONLY GetCursorScreenPos() and GetContentRegionAvail(). - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API: - Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. -> this is the preferred way forward. - Window-local coordinates: SameLine(offset), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), PushTextWrapPos() - Window-local coordinates: GetContentRegionMax(), GetWindowContentRegionMin(), GetWindowContentRegionMax() --> all obsoleted. YOU DON'T NEED THEM. - GetCursorScreenPos() = GetCursorPos() + GetWindowPos(). GetWindowPos() is almost only ever useful to convert from window-local to absolute coordinates. Try not to use it.

GetCursorStartPos
ImVec2 GetCursorStartPos()
Undocumented in source. Be warned that the author may not have intended to support it.
GetDragDropPayload
const(ImGuiPayload)* GetDragDropPayload()
Undocumented in source. Be warned that the author may not have intended to support it.
GetDrawData
ImDrawData* GetDrawData()
Undocumented in source. Be warned that the author may not have intended to support it.
GetDrawListSharedData
ImDrawListSharedData* GetDrawListSharedData()
Undocumented in source. Be warned that the author may not have intended to support it.
GetFont
ImFont* GetFont()

Style read access - Use the ShowStyleEditor() function to interactively see/edit the colors.

GetFontSize
float GetFontSize()
Undocumented in source. Be warned that the author may not have intended to support it.
GetFontTexUvWhitePixel
ImVec2 GetFontTexUvWhitePixel()
Undocumented in source. Be warned that the author may not have intended to support it.
GetForegroundDrawList
ImDrawList* GetForegroundDrawList()
Undocumented in source. Be warned that the author may not have intended to support it.
GetFrameCount
int GetFrameCount()
Undocumented in source. Be warned that the author may not have intended to support it.
GetFrameHeight
float GetFrameHeight()
Undocumented in source. Be warned that the author may not have intended to support it.
GetFrameHeightWithSpacing
float GetFrameHeightWithSpacing()
Undocumented in source. Be warned that the author may not have intended to support it.
GetID
ImGuiID GetID(const(char)* str_id)
Undocumented in source. Be warned that the author may not have intended to support it.
GetIDInt
ImGuiID GetIDInt(int int_id)
Undocumented in source. Be warned that the author may not have intended to support it.
GetIDPtr
ImGuiID GetIDPtr(void* ptr_id)
Undocumented in source. Be warned that the author may not have intended to support it.
GetIDStr
ImGuiID GetIDStr(const(char)* str_id_begin, const(char)* str_id_end)
Undocumented in source. Be warned that the author may not have intended to support it.
GetIO
ImGuiIO* GetIO()

Main

GetItemID
ImGuiID GetItemID()
Undocumented in source. Be warned that the author may not have intended to support it.
GetItemRectMax
ImVec2 GetItemRectMax()
Undocumented in source. Be warned that the author may not have intended to support it.
GetItemRectMin
ImVec2 GetItemRectMin()
Undocumented in source. Be warned that the author may not have intended to support it.
GetItemRectSize
ImVec2 GetItemRectSize()
Undocumented in source. Be warned that the author may not have intended to support it.
GetKeyName
const(char)* GetKeyName(ImGuiKey key)
Undocumented in source. Be warned that the author may not have intended to support it.
GetKeyPressedAmount
int GetKeyPressedAmount(ImGuiKey key, float repeat_delay, float rate)
Undocumented in source. Be warned that the author may not have intended to support it.
GetMainViewport
ImGuiViewport* GetMainViewport()

Viewports - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows. - In 'docking' branch 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.

GetMouseClickedCount
int GetMouseClickedCount(ImGuiMouseButton button)
Undocumented in source. Be warned that the author may not have intended to support it.
GetMouseCursor
ImGuiMouseCursor GetMouseCursor()
Undocumented in source. Be warned that the author may not have intended to support it.
GetMouseDragDelta
ImVec2 GetMouseDragDelta(ImGuiMouseButton button, float lock_threshold)
Undocumented in source. Be warned that the author may not have intended to support it.
GetMousePos
ImVec2 GetMousePos()
Undocumented in source. Be warned that the author may not have intended to support it.
GetMousePosOnOpeningCurrentPopup
ImVec2 GetMousePosOnOpeningCurrentPopup()
Undocumented in source. Be warned that the author may not have intended to support it.
GetPlatformIO
ImGuiPlatformIO* GetPlatformIO()
Undocumented in source. Be warned that the author may not have intended to support it.
GetScrollMaxX
float GetScrollMaxX()
Undocumented in source. Be warned that the author may not have intended to support it.
GetScrollMaxY
float GetScrollMaxY()
Undocumented in source. Be warned that the author may not have intended to support it.
GetScrollX
float GetScrollX()

Windows Scrolling - Any change of Scroll will be applied at the beginning of next frame in the first call to Begin(). - You may instead use SetNextWindowScroll() prior to calling Begin() to avoid this delay, as an alternative to using SetScrollX()/SetScrollY().

GetScrollY
float GetScrollY()
Undocumented in source. Be warned that the author may not have intended to support it.
GetStateStorage
ImGuiStorage* GetStateStorage()
Undocumented in source. Be warned that the author may not have intended to support it.
GetStyle
ImGuiStyle* GetStyle()
Undocumented in source. Be warned that the author may not have intended to support it.
GetStyleColorName
const(char)* GetStyleColorName(ImGuiCol idx)
Undocumented in source. Be warned that the author may not have intended to support it.
GetStyleColorVec4
const(ImVec4)* GetStyleColorVec4(ImGuiCol idx)
Undocumented in source. Be warned that the author may not have intended to support it.
GetTextLineHeight
float GetTextLineHeight()
Undocumented in source. Be warned that the author may not have intended to support it.
GetTextLineHeightWithSpacing
float GetTextLineHeightWithSpacing()
Undocumented in source. Be warned that the author may not have intended to support it.
GetTime
double GetTime()
Undocumented in source. Be warned that the author may not have intended to support it.
GetTreeNodeToLabelSpacing
float GetTreeNodeToLabelSpacing()
Undocumented in source. Be warned that the author may not have intended to support it.
GetVersion
const(char)* GetVersion()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowContentRegionMax
ImVec2 GetWindowContentRegionMax()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowContentRegionMin
ImVec2 GetWindowContentRegionMin()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowDrawList
ImDrawList* GetWindowDrawList()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowHeight
float GetWindowHeight()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowPos
ImVec2 GetWindowPos()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowSize
ImVec2 GetWindowSize()
Undocumented in source. Be warned that the author may not have intended to support it.
GetWindowWidth
float GetWindowWidth()
Undocumented in source. Be warned that the author may not have intended to support it.
Image
void Image(ImTextureID user_texture_id, ImVec2 image_size)

Widgets: Images - Read about ImTextureID here: https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples - 'uv0' and 'uv1' are texture coordinates. Read about them from the same link above. - Image() pads adds style.ImageBorderSize on each side, ImageButton() adds style.FramePadding on each side. - ImageButton() draws a background based on regular Button() color + optionally an inner background if specified.

ImageButton
bool ImageButton(const(char)* str_id, ImTextureID user_texture_id, ImVec2 image_size)
Undocumented in source. Be warned that the author may not have intended to support it.
ImageButtonEx
bool ImageButtonEx(const(char)* str_id, ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 bg_col, ImVec4 tint_col)
Undocumented in source. Be warned that the author may not have intended to support it.
ImageEx
void ImageEx(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1)
Undocumented in source. Be warned that the author may not have intended to support it.
ImageImVec4
void ImageImVec4(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 tint_col, ImVec4 border_col)

OBSOLETED in 1.91.9 (from February 2025)

ImageWithBg
void ImageWithBg(ImTextureID user_texture_id, ImVec2 image_size)
Undocumented in source. Be warned that the author may not have intended to support it.
ImageWithBgEx
void ImageWithBgEx(ImTextureID user_texture_id, ImVec2 image_size, ImVec2 uv0, ImVec2 uv1, ImVec4 bg_col, ImVec4 tint_col)
Undocumented in source. Be warned that the author may not have intended to support it.
Indent
void Indent()
Undocumented in source. Be warned that the author may not have intended to support it.
IndentEx
void IndentEx(float indent_w)
Undocumented in source. Be warned that the author may not have intended to support it.
InputDouble
bool InputDouble(const(char)* label, double* v)
Undocumented in source. Be warned that the author may not have intended to support it.
InputDoubleEx
bool InputDoubleEx(const(char)* label, double* v, double step, double step_fast, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat
bool InputFloat(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat2
bool InputFloat2(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat2Ex
bool InputFloat2Ex(const(char)* label, float* v, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat3
bool InputFloat3(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat3Ex
bool InputFloat3Ex(const(char)* label, float* v, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat4
bool InputFloat4(const(char)* label, float* v)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloat4Ex
bool InputFloat4Ex(const(char)* label, float* v, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputFloatEx
bool InputFloatEx(const(char)* label, float* v, float step, float step_fast, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputInt
bool InputInt(const(char)* label, int* v)
Undocumented in source. Be warned that the author may not have intended to support it.
InputInt2
bool InputInt2(const(char)* label, int* v, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputInt3
bool InputInt3(const(char)* label, int* v, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputInt4
bool InputInt4(const(char)* label, int* v, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputIntEx
bool InputIntEx(const(char)* label, int* v, int step, int step_fast, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputScalar
bool InputScalar(const(char)* label, ImGuiDataType data_type, void* p_data)
Undocumented in source. Be warned that the author may not have intended to support it.
InputScalarEx
bool InputScalarEx(const(char)* label, ImGuiDataType data_type, void* p_data, void* p_step, void* p_step_fast, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputScalarN
bool InputScalarN(const(char)* label, ImGuiDataType data_type, void* p_data, int components)
Undocumented in source. Be warned that the author may not have intended to support it.
InputScalarNEx
bool InputScalarNEx(const(char)* label, ImGuiDataType data_type, void* p_data, int components, void* p_step, void* p_step_fast, const(char)* format, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputText
bool InputText(const(char)* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags)

Widgets: Input with Keyboard - If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp. - Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc.

InputTextEx
bool InputTextEx(const(char)* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
Undocumented in source. Be warned that the author may not have intended to support it.
InputTextMultiline
bool InputTextMultiline(const(char)* label, char* buf, size_t buf_size)
Undocumented in source. Be warned that the author may not have intended to support it.
InputTextMultilineEx
bool InputTextMultilineEx(const(char)* label, char* buf, size_t buf_size, ImVec2 size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
Undocumented in source. Be warned that the author may not have intended to support it.
InputTextWithHint
bool InputTextWithHint(const(char)* label, const(char)* hint, char* buf, size_t buf_size, ImGuiInputTextFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
InputTextWithHintEx
bool InputTextWithHintEx(const(char)* label, const(char)* hint, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
Undocumented in source. Be warned that the author may not have intended to support it.
InvisibleButton
bool InvisibleButton(const(char)* str_id, ImVec2 size, ImGuiButtonFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
IsAnyItemActive
bool IsAnyItemActive()
Undocumented in source. Be warned that the author may not have intended to support it.
IsAnyItemFocused
bool IsAnyItemFocused()
Undocumented in source. Be warned that the author may not have intended to support it.
IsAnyItemHovered
bool IsAnyItemHovered()
Undocumented in source. Be warned that the author may not have intended to support it.
IsAnyMouseDown
bool IsAnyMouseDown()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemActivated
bool IsItemActivated()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemActive
bool IsItemActive()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemClicked
bool IsItemClicked()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemClickedEx
bool IsItemClickedEx(ImGuiMouseButton mouse_button)
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemDeactivated
bool IsItemDeactivated()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemDeactivatedAfterEdit
bool IsItemDeactivatedAfterEdit()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemEdited
bool IsItemEdited()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemFocused
bool IsItemFocused()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemHovered
bool IsItemHovered(ImGuiHoveredFlags flags)

Item/Widgets Utilities and Query Functions - Most of the functions are referring to the previous Item that has been submitted. - See Demo Window under "Widgets->Querying Status" for an interactive visualization of most of those functions.

IsItemToggledOpen
bool IsItemToggledOpen()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemToggledSelection
bool IsItemToggledSelection()
Undocumented in source. Be warned that the author may not have intended to support it.
IsItemVisible
bool IsItemVisible()
Undocumented in source. Be warned that the author may not have intended to support it.
IsKeyChordPressed
bool IsKeyChordPressed(ImGuiKeyChord key_chord)
Undocumented in source. Be warned that the author may not have intended to support it.
IsKeyDown
bool IsKeyDown(ImGuiKey key)

Inputs Utilities: Keyboard/Mouse/Gamepad - the ImGuiKey enum contains all possible keyboard, mouse and gamepad inputs (e.g. ImGuiKey_A, ImGuiKey_MouseLeft, ImGuiKey_GamepadDpadUp...). - (legacy: before v1.87, we used ImGuiKey to carry native/user indices as defined by each backends. This was obsoleted in 1.87 (2022-02) and completely removed in 1.91.5 (2024-11). See https://github.com/ocornut/imgui/issues/4921) - (legacy: any use of ImGuiKey will assert when key < 512 to detect passing legacy native/user indices)

IsKeyPressed
bool IsKeyPressed(ImGuiKey key)
Undocumented in source. Be warned that the author may not have intended to support it.
IsKeyPressedEx
bool IsKeyPressedEx(ImGuiKey key, bool repeat)
Undocumented in source. Be warned that the author may not have intended to support it.
IsKeyReleased
bool IsKeyReleased(ImGuiKey key)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseClicked
bool IsMouseClicked(ImGuiMouseButton button)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseClickedEx
bool IsMouseClickedEx(ImGuiMouseButton button, bool repeat)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseDoubleClicked
bool IsMouseDoubleClicked(ImGuiMouseButton button)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseDown
bool IsMouseDown(ImGuiMouseButton button)

Inputs Utilities: Mouse - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right. - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold')

IsMouseDragging
bool IsMouseDragging(ImGuiMouseButton button, float lock_threshold)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseHoveringRect
bool IsMouseHoveringRect(ImVec2 r_min, ImVec2 r_max)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseHoveringRectEx
bool IsMouseHoveringRectEx(ImVec2 r_min, ImVec2 r_max, bool clip)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMousePosValid
bool IsMousePosValid(ImVec2* mouse_pos)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseReleased
bool IsMouseReleased(ImGuiMouseButton button)
Undocumented in source. Be warned that the author may not have intended to support it.
IsMouseReleasedWithDelay
bool IsMouseReleasedWithDelay(ImGuiMouseButton button, float delay)
Undocumented in source. Be warned that the author may not have intended to support it.
IsPopupOpen
bool IsPopupOpen(const(char)* str_id, ImGuiPopupFlags flags)

Popups: query functions - IsPopupOpen(): return true if the popup is open at the current BeginPopup() level of the popup stack. - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId: return true if any popup is open at the current BeginPopup() level of the popup stack. - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId + ImGuiPopupFlags_AnyPopupLevel: return true if any popup is open.

IsRectVisible
bool IsRectVisible(ImVec2 rect_min, ImVec2 rect_max)
Undocumented in source. Be warned that the author may not have intended to support it.
IsRectVisibleBySize
bool IsRectVisibleBySize(ImVec2 size)

Miscellaneous Utilities

IsWindowAppearing
bool IsWindowAppearing()

Windows Utilities - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into.

IsWindowCollapsed
bool IsWindowCollapsed()
Undocumented in source. Be warned that the author may not have intended to support it.
IsWindowFocused
bool IsWindowFocused(ImGuiFocusedFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
IsWindowHovered
bool IsWindowHovered(ImGuiHoveredFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
LabelText
void LabelText(const(char)* label, const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
ListBox
bool ListBox(const(char)* label, int* current_item, const(char)** items, int items_count, int height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
ListBoxCallback
bool ListBoxCallback(const(char)* label, int* current_item, ImGuiGetterCallback getter, void* user_data, int items_count)
Undocumented in source. Be warned that the author may not have intended to support it.
ListBoxCallbackEx
bool ListBoxCallbackEx(const(char)* label, int* current_item, ImGuiGetterCallback getter, void* user_data, int items_count, int height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
ListBoxObsolete
bool ListBoxObsolete(const(char)* label, int* current_item, ImGuiOld_callbackCallback old_callback, void* user_data, int items_count)
Undocumented in source. Be warned that the author may not have intended to support it.
ListBoxObsoleteEx
bool ListBoxObsoleteEx(const(char)* label, int* current_item, ImGuiOld_callbackCallback old_callback, void* user_data, int items_count, int height_in_items)
Undocumented in source. Be warned that the author may not have intended to support it.
LoadIniSettingsFromDisk
void LoadIniSettingsFromDisk(const(char)* ini_filename)

Settings/.Ini Utilities - The disk functions are automatically called if io.IniFilename != NULL (default is "imgui.ini"). - Set io.IniFilename to NULL to load/save manually. Read io.WantSaveIniSettings description about handling .ini saving manually. - Important: default value "imgui.ini" is relative to current working dir! Most apps will want to lock this to an absolute path (e.g. same path as executables).

LoadIniSettingsFromMemory
void LoadIniSettingsFromMemory(const(char)* ini_data, size_t ini_size)
Undocumented in source. Be warned that the author may not have intended to support it.
LogButtons
void LogButtons()
Undocumented in source. Be warned that the author may not have intended to support it.
LogFinish
void LogFinish()
Undocumented in source. Be warned that the author may not have intended to support it.
LogText
void LogText(const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
LogToClipboard
void LogToClipboard(int auto_open_depth)
Undocumented in source. Be warned that the author may not have intended to support it.
LogToFile
void LogToFile(int auto_open_depth, const(char)* filename)
Undocumented in source. Be warned that the author may not have intended to support it.
LogToTTY
void LogToTTY(int auto_open_depth)

Logging/Capture - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging.

MemAlloc
void* MemAlloc(size_t size)
Undocumented in source. Be warned that the author may not have intended to support it.
MemFree
void MemFree(void* ptr)
Undocumented in source. Be warned that the author may not have intended to support it.
MenuItem
bool MenuItem(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
MenuItemBoolPtr
bool MenuItemBoolPtr(const(char)* label, const(char)* shortcut, bool* p_selected, bool enabled)
Undocumented in source. Be warned that the author may not have intended to support it.
MenuItemEx
bool MenuItemEx(const(char)* label, const(char)* shortcut, bool selected, bool enabled)
Undocumented in source. Be warned that the author may not have intended to support it.
NewFrame
void NewFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
NewLine
void NewLine()
Undocumented in source. Be warned that the author may not have intended to support it.
NextColumn
void NextColumn()
Undocumented in source. Be warned that the author may not have intended to support it.
OpenPopup
void OpenPopup(const(char)* str_id, ImGuiPopupFlags popup_flags)

Popups: open/close functions - OpenPopup(): set popup state to open. ImGuiPopupFlags are available for opening options. - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE. - CloseCurrentPopup(): use inside the BeginPopup()/EndPopup() scope to close manually. - CloseCurrentPopup() is called by default by Selectable()/MenuItem() when activated (FIXME: need some options). - Use ImGuiPopupFlags_NoOpenOverExistingPopup to avoid opening a popup if there's already one at the same level. This is equivalent to e.g. testing for !IsAnyPopupOpen() prior to OpenPopup(). - Use IsWindowAppearing() after BeginPopup() to tell if a window just opened. - IMPORTANT: Notice that for OpenPopupOnItemClick() we exceptionally default flags to 1 (== ImGuiPopupFlags_MouseButtonRight) for backward compatibility with older API taking 'int mouse_button = 1' parameter

OpenPopupID
void OpenPopupID(ImGuiID id, ImGuiPopupFlags popup_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
OpenPopupOnItemClick
void OpenPopupOnItemClick(const(char)* str_id, ImGuiPopupFlags popup_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotHistogram
void PlotHistogram(const(char)* label, float* values, int values_count)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotHistogramCallback
void PlotHistogramCallback(const(char)* label, ImGuiValues_getterCallback values_getter, void* data, int values_count)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotHistogramCallbackEx
void PlotHistogramCallbackEx(const(char)* label, ImGuiValues_getterCallback values_getter, void* data, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotHistogramEx
void PlotHistogramEx(const(char)* label, float* values, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotLines
void PlotLines(const(char)* label, float* values, int values_count)

Widgets: Data Plotting - Consider using ImPlot (https://github.com/epezent/implot) which is much better!

PlotLinesCallback
void PlotLinesCallback(const(char)* label, ImGuiValues_getterCallback values_getter, void* data, int values_count)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotLinesCallbackEx
void PlotLinesCallbackEx(const(char)* label, ImGuiValues_getterCallback values_getter, void* data, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size)
Undocumented in source. Be warned that the author may not have intended to support it.
PlotLinesEx
void PlotLinesEx(const(char)* label, float* values, int values_count, int values_offset, const(char)* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride)
Undocumented in source. Be warned that the author may not have intended to support it.
PopAllowKeyboardFocus
void PopAllowKeyboardFocus()
Undocumented in source. Be warned that the author may not have intended to support it.
PopButtonRepeat
void PopButtonRepeat()
Undocumented in source. Be warned that the author may not have intended to support it.
PopClipRect
void PopClipRect()
Undocumented in source. Be warned that the author may not have intended to support it.
PopFont
void PopFont()
Undocumented in source. Be warned that the author may not have intended to support it.
PopID
void PopID()
Undocumented in source. Be warned that the author may not have intended to support it.
PopItemFlag
void PopItemFlag()
Undocumented in source. Be warned that the author may not have intended to support it.
PopItemWidth
void PopItemWidth()
Undocumented in source. Be warned that the author may not have intended to support it.
PopStyleColor
void PopStyleColor()
Undocumented in source. Be warned that the author may not have intended to support it.
PopStyleColorEx
void PopStyleColorEx(int count)
Undocumented in source. Be warned that the author may not have intended to support it.
PopStyleVar
void PopStyleVar()
Undocumented in source. Be warned that the author may not have intended to support it.
PopStyleVarEx
void PopStyleVarEx(int count)
Undocumented in source. Be warned that the author may not have intended to support it.
PopTabStop
void PopTabStop()
Undocumented in source. Be warned that the author may not have intended to support it.
PopTextWrapPos
void PopTextWrapPos()
Undocumented in source. Be warned that the author may not have intended to support it.
ProgressBar
void ProgressBar(float fraction, ImVec2 size_arg, const(char)* overlay)
Undocumented in source. Be warned that the author may not have intended to support it.
PushAllowKeyboardFocus
void PushAllowKeyboardFocus(bool tab_stop)

OBSOLETED in 1.89.4 (from March 2023)

PushButtonRepeat
void PushButtonRepeat(bool repeat)

OBSOLETED in 1.91.0 (from July 2024)

PushClipRect
void PushClipRect(ImVec2 clip_rect_min, ImVec2 clip_rect_max, bool intersect_with_current_clip_rect)

Clipping - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only.

PushFont
void PushFont(ImFont* font)

Parameters stacks (shared)

PushID
void PushID(const(char)* str_id)

ID stack/scopes Read the FAQ (docs/FAQ.md or http://dearimgui.com/faq) for more details about how ID are handled in dear imgui. - Those questions are answered and impacted by understanding of the ID stack system: - "Q: Why is my widget not reacting when I click on it?" - "Q: How can I have widgets with an empty label?" - "Q: How can I have multiple widgets with the same label?" - Short version: ID are hashes of the entire ID stack. If you are creating widgets in a loop you most likely want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them. - You can also use the "Label##foobar" syntax within widget label to distinguish them from each others. - In this header file we use the "label"/"name" terminology to denote a string that will be displayed + used as an ID, whereas "str_id" denote a string that is only used as an ID and not normally displayed.

PushIDInt
void PushIDInt(int int_id)
Undocumented in source. Be warned that the author may not have intended to support it.
PushIDPtr
void PushIDPtr(void* ptr_id)
Undocumented in source. Be warned that the author may not have intended to support it.
PushIDStr
void PushIDStr(const(char)* str_id_begin, const(char)* str_id_end)
Undocumented in source. Be warned that the author may not have intended to support it.
PushItemFlag
void PushItemFlag(ImGuiItemFlags option, bool enabled)
Undocumented in source. Be warned that the author may not have intended to support it.
PushItemWidth
void PushItemWidth(float item_width)

Parameters stacks (current window)

PushStyleColor
void PushStyleColor(ImGuiCol idx, ImU32 col)
Undocumented in source. Be warned that the author may not have intended to support it.
PushStyleColorImVec4
void PushStyleColorImVec4(ImGuiCol idx, ImVec4 col)
Undocumented in source. Be warned that the author may not have intended to support it.
PushStyleVar
void PushStyleVar(ImGuiStyleVar idx, float val)
Undocumented in source. Be warned that the author may not have intended to support it.
PushStyleVarImVec2
void PushStyleVarImVec2(ImGuiStyleVar idx, ImVec2 val)
Undocumented in source. Be warned that the author may not have intended to support it.
PushStyleVarX
void PushStyleVarX(ImGuiStyleVar idx, float val_x)
Undocumented in source. Be warned that the author may not have intended to support it.
PushStyleVarY
void PushStyleVarY(ImGuiStyleVar idx, float val_y)
Undocumented in source. Be warned that the author may not have intended to support it.
PushTabStop
void PushTabStop(bool tab_stop)
Undocumented in source. Be warned that the author may not have intended to support it.
PushTextWrapPos
void PushTextWrapPos(float wrap_local_pos_x)
Undocumented in source. Be warned that the author may not have intended to support it.
RadioButton
bool RadioButton(const(char)* label, bool active)
Undocumented in source. Be warned that the author may not have intended to support it.
RadioButtonIntPtr
bool RadioButtonIntPtr(const(char)* label, int* v, int v_button)
Undocumented in source. Be warned that the author may not have intended to support it.
Render
void Render()
Undocumented in source. Be warned that the author may not have intended to support it.
ResetMouseDragDelta
void ResetMouseDragDelta()
Undocumented in source. Be warned that the author may not have intended to support it.
ResetMouseDragDeltaEx
void ResetMouseDragDeltaEx(ImGuiMouseButton button)
Undocumented in source. Be warned that the author may not have intended to support it.
SameLine
void SameLine()
Undocumented in source. Be warned that the author may not have intended to support it.
SameLineEx
void SameLineEx(float offset_from_start_x, float spacing)
Undocumented in source. Be warned that the author may not have intended to support it.
SaveIniSettingsToDisk
void SaveIniSettingsToDisk(const(char)* ini_filename)
Undocumented in source. Be warned that the author may not have intended to support it.
SaveIniSettingsToMemory
const(char)* SaveIniSettingsToMemory(size_t* out_ini_size)
Undocumented in source. Be warned that the author may not have intended to support it.
Selectable
bool Selectable(const(char)* label)

Widgets: Selectables - A selectable highlights when hovered, and can display another color when selected. - Neighbors selectable extend their highlight bounds in order to leave no gap between them. This is so a series of selected Selectable appear contiguous.

SelectableBoolPtr
bool SelectableBoolPtr(const(char)* label, bool* p_selected, ImGuiSelectableFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SelectableBoolPtrEx
bool SelectableBoolPtrEx(const(char)* label, bool* p_selected, ImGuiSelectableFlags flags, ImVec2 size)
Undocumented in source. Be warned that the author may not have intended to support it.
SelectableEx
bool SelectableEx(const(char)* label, bool selected, ImGuiSelectableFlags flags, ImVec2 size)
Undocumented in source. Be warned that the author may not have intended to support it.
Separator
void Separator()

Other layout functions

SeparatorText
void SeparatorText(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
SetAllocatorFunctions
void SetAllocatorFunctions(ImGuiMemAllocFunc alloc_func, ImGuiMemFreeFunc free_func, void* user_data)

Memory Allocators - Those functions are not reliant on the current context. - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions() for each static/DLL boundary you are calling from. Read "Context and Memory Allocators" section of imgui.cpp for more details.

SetClipboardText
void SetClipboardText(const(char)* text)
Undocumented in source. Be warned that the author may not have intended to support it.
SetColorEditOptions
void SetColorEditOptions(ImGuiColorEditFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SetColumnOffset
void SetColumnOffset(int column_index, float offset_x)
Undocumented in source. Be warned that the author may not have intended to support it.
SetColumnWidth
void SetColumnWidth(int column_index, float width)
Undocumented in source. Be warned that the author may not have intended to support it.
SetCurrentContext
void SetCurrentContext(ImGuiContext* ctx)
Undocumented in source. Be warned that the author may not have intended to support it.
SetCursorPos
void SetCursorPos(ImVec2 local_pos)
Undocumented in source. Be warned that the author may not have intended to support it.
SetCursorPosX
void SetCursorPosX(float local_x)
Undocumented in source. Be warned that the author may not have intended to support it.
SetCursorPosY
void SetCursorPosY(float local_y)
Undocumented in source. Be warned that the author may not have intended to support it.
SetCursorScreenPos
void SetCursorScreenPos(ImVec2 pos)
Undocumented in source. Be warned that the author may not have intended to support it.
SetDragDropPayload
bool SetDragDropPayload(const(char)* type, void* data, size_t sz, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetItemAllowOverlap
void SetItemAllowOverlap()

OBSOLETED in 1.89.7 (from June 2023)

SetItemDefaultFocus
void SetItemDefaultFocus()

Focus, Activation

SetItemKeyOwner
void SetItemKeyOwner(ImGuiKey key)

Inputs Utilities: Key/Input Ownership BETA - One common use case would be to allow your items to disable standard inputs behaviors such as Tab or Alt key handling, Mouse Wheel scrolling, etc. e.g. Button(...); SetItemKeyOwner(ImGuiKey_MouseWheelY); to make hovering/activating a button disable wheel for scrolling. - Reminder ImGuiKey enum include access to mouse buttons and gamepad, so key ownership can apply to them. - Many related features are still in imgui_internal.h. For instance, most IsKeyXXX()/IsMouseXXX() functions have an owner-id-aware version.

SetItemTooltip
void SetItemTooltip(const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
SetKeyboardFocusHere
void SetKeyboardFocusHere()
Undocumented in source. Be warned that the author may not have intended to support it.
SetKeyboardFocusHereEx
void SetKeyboardFocusHereEx(int offset)
Undocumented in source. Be warned that the author may not have intended to support it.
SetMouseCursor
void SetMouseCursor(ImGuiMouseCursor cursor_type)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNavCursorVisible
void SetNavCursorVisible(bool visible)

Keyboard/Gamepad Navigation

SetNextFrameWantCaptureKeyboard
void SetNextFrameWantCaptureKeyboard(bool want_capture_keyboard)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextFrameWantCaptureMouse
void SetNextFrameWantCaptureMouse(bool want_capture_mouse)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextItemAllowOverlap
void SetNextItemAllowOverlap()

Overlapping mode

SetNextItemOpen
void SetNextItemOpen(bool is_open, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextItemSelectionUserData
void SetNextItemSelectionUserData(ImGuiSelectionUserData selection_user_data)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextItemShortcut
void SetNextItemShortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextItemStorageID
void SetNextItemStorageID(ImGuiID storage_id)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextItemWidth
void SetNextItemWidth(float item_width)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowBgAlpha
void SetNextWindowBgAlpha(float alpha)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowCollapsed
void SetNextWindowCollapsed(bool collapsed, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowContentSize
void SetNextWindowContentSize(ImVec2 size)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowFocus
void SetNextWindowFocus()
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowPos
void SetNextWindowPos(ImVec2 pos, ImGuiCond cond)

Window manipulation - Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin).

SetNextWindowPosEx
void SetNextWindowPosEx(ImVec2 pos, ImGuiCond cond, ImVec2 pivot)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowScroll
void SetNextWindowScroll(ImVec2 scroll)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowSize
void SetNextWindowSize(ImVec2 size, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetNextWindowSizeConstraints
void SetNextWindowSizeConstraints(ImVec2 size_min, ImVec2 size_max, ImGuiSizeCallback custom_callback, void* custom_callback_data)
Undocumented in source. Be warned that the author may not have intended to support it.
SetScrollFromPosX
void SetScrollFromPosX(float local_x, float center_x_ratio)
Undocumented in source. Be warned that the author may not have intended to support it.
SetScrollFromPosY
void SetScrollFromPosY(float local_y, float center_y_ratio)
Undocumented in source. Be warned that the author may not have intended to support it.
SetScrollHereX
void SetScrollHereX(float center_x_ratio)
Undocumented in source. Be warned that the author may not have intended to support it.
SetScrollHereY
void SetScrollHereY(float center_y_ratio)
Undocumented in source. Be warned that the author may not have intended to support it.
SetScrollX
void SetScrollX(float scroll_x)
Undocumented in source. Be warned that the author may not have intended to support it.
SetScrollY
void SetScrollY(float scroll_y)
Undocumented in source. Be warned that the author may not have intended to support it.
SetStateStorage
void SetStateStorage(ImGuiStorage* storage)
Undocumented in source. Be warned that the author may not have intended to support it.
SetTabItemClosed
void SetTabItemClosed(const(char)* tab_or_docked_window_label)
Undocumented in source. Be warned that the author may not have intended to support it.
SetTooltip
void SetTooltip(const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowCollapsed
void SetWindowCollapsed(bool collapsed, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowCollapsedStr
void SetWindowCollapsedStr(const(char)* name, bool collapsed, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowFocus
void SetWindowFocus()
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowFocusStr
void SetWindowFocusStr(const(char)* name)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowFontScale
void SetWindowFontScale(float scale)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowPos
void SetWindowPos(ImVec2 pos, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowPosStr
void SetWindowPosStr(const(char)* name, ImVec2 pos, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowSize
void SetWindowSize(ImVec2 size, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
SetWindowSizeStr
void SetWindowSizeStr(const(char)* name, ImVec2 size, ImGuiCond cond)
Undocumented in source. Be warned that the author may not have intended to support it.
Shortcut
bool Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags)

Inputs Utilities: Shortcut Testing & Routing BETA - ImGuiKeyChord = a ImGuiKey + optional ImGuiMod_Alt/ImGuiMod_Ctrl/ImGuiMod_Shift/ImGuiMod_Super. ImGuiKey_C // Accepted by functions taking ImGuiKey or ImGuiKeyChord arguments) ImGuiMod_Ctrl | ImGuiKey_C // Accepted by functions taking ImGuiKeyChord arguments) only ImGuiMod_XXX values are legal to combine with an ImGuiKey. You CANNOT combine two ImGuiKey values. - The general idea is that several callers may register interest in a shortcut, and only one owner gets it. Parent -> call Shortcut(Ctrl+S) // When Parent is focused, Parent gets the shortcut. Child1 -> call Shortcut(Ctrl+S) // When Child1 is focused, Child1 gets the shortcut (Child1 overrides Parent shortcuts) Child2 -> no call // When Child2 is focused, Parent gets the shortcut. The whole system is order independent, so if Child1 makes its calls before Parent, results will be identical. This is an important property as it facilitate working with foreign code or larger codebase. - To understand the difference: - IsKeyChordPressed() compares mods and call IsKeyPressed() -> function has no side-effect. - Shortcut() submits a route, routes are resolved, if it currently can be routed it calls IsKeyChordPressed() -> function has (desirable) side-effects as it can prevents another call from getting the route. - Visualize registered routes in 'Metrics/Debugger->Inputs'.

ShowAboutWindow
void ShowAboutWindow(bool* p_open)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowDebugLogWindow
void ShowDebugLogWindow(bool* p_open)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowDemoWindow
void ShowDemoWindow(bool* p_open)

Demo, Debug, Information

ShowFontSelector
void ShowFontSelector(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowIDStackToolWindow
void ShowIDStackToolWindow()
Undocumented in source. Be warned that the author may not have intended to support it.
ShowIDStackToolWindowEx
void ShowIDStackToolWindowEx(bool* p_open)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowMetricsWindow
void ShowMetricsWindow(bool* p_open)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowStackToolWindow
void ShowStackToolWindow(bool* p_open)

static inline bool BeginChild(const char* str_id, const ImVec2 & size_arg, bool borders, ImGuiWindowFlags window_flags){ return BeginChild(str_id, size_arg, borders ? ImGuiChildFlags_Borders : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Borders static inline bool BeginChild(ImGuiID id, const ImVec2 & size_arg, bool borders, ImGuiWindowFlags window_flags) { return BeginChild(id, size_arg, borders ? ImGuiChildFlags_Borders : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Borders

ShowStyleEditor
void ShowStyleEditor(ImGuiStyle* ref_)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowStyleSelector
bool ShowStyleSelector(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
ShowUserGuide
void ShowUserGuide()
Undocumented in source. Be warned that the author may not have intended to support it.
SliderAngle
bool SliderAngle(const(char)* label, float* v_rad)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderAngleEx
bool SliderAngleEx(const(char)* label, float* v_rad, float v_degrees_min, float v_degrees_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloat
bool SliderFloat(const(char)* label, float* v, float v_min, float v_max)

Widgets: Regular Sliders - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp. - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. - Format string may also be set to NULL or use the default format ("%f" or "%d"). - Legacy: Pre-1.78 there are SliderXXX() function signatures that take a final float power=1.0f' argument instead of the ImGuiSliderFlags flags=0' argument. If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361

SliderFloat2
bool SliderFloat2(const(char)* label, float* v, float v_min, float v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloat2Ex
bool SliderFloat2Ex(const(char)* label, float* v, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloat3
bool SliderFloat3(const(char)* label, float* v, float v_min, float v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloat3Ex
bool SliderFloat3Ex(const(char)* label, float* v, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloat4
bool SliderFloat4(const(char)* label, float* v, float v_min, float v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloat4Ex
bool SliderFloat4Ex(const(char)* label, float* v, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderFloatEx
bool SliderFloatEx(const(char)* label, float* v, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt
bool SliderInt(const(char)* label, int* v, int v_min, int v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt2
bool SliderInt2(const(char)* label, int* v, int v_min, int v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt2Ex
bool SliderInt2Ex(const(char)* label, int* v, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt3
bool SliderInt3(const(char)* label, int* v, int v_min, int v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt3Ex
bool SliderInt3Ex(const(char)* label, int* v, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt4
bool SliderInt4(const(char)* label, int* v, int v_min, int v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderInt4Ex
bool SliderInt4Ex(const(char)* label, int* v, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderIntEx
bool SliderIntEx(const(char)* label, int* v, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderScalar
bool SliderScalar(const(char)* label, ImGuiDataType data_type, void* p_data, void* p_min, void* p_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderScalarEx
bool SliderScalarEx(const(char)* label, ImGuiDataType data_type, void* p_data, void* p_min, void* p_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderScalarN
bool SliderScalarN(const(char)* label, ImGuiDataType data_type, void* p_data, int components, void* p_min, void* p_max)
Undocumented in source. Be warned that the author may not have intended to support it.
SliderScalarNEx
bool SliderScalarNEx(const(char)* label, ImGuiDataType data_type, void* p_data, int components, void* p_min, void* p_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
SmallButton
bool SmallButton(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
Spacing
void Spacing()
Undocumented in source. Be warned that the author may not have intended to support it.
StyleColorsClassic
void StyleColorsClassic(ImGuiStyle* dst)
Undocumented in source. Be warned that the author may not have intended to support it.
StyleColorsDark
void StyleColorsDark(ImGuiStyle* dst)

Styles

StyleColorsLight
void StyleColorsLight(ImGuiStyle* dst)
Undocumented in source. Be warned that the author may not have intended to support it.
TabItemButton
bool TabItemButton(const(char)* label, ImGuiTabItemFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
TableAngledHeadersRow
void TableAngledHeadersRow()
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetColumnCount
int TableGetColumnCount()
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetColumnFlags
ImGuiTableColumnFlags TableGetColumnFlags(int column_n)
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetColumnIndex
int TableGetColumnIndex()
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetColumnName
const(char)* TableGetColumnName(int column_n)
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetHoveredColumn
int TableGetHoveredColumn()
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetRowIndex
int TableGetRowIndex()
Undocumented in source. Be warned that the author may not have intended to support it.
TableGetSortSpecs
ImGuiTableSortSpecs* TableGetSortSpecs()

Tables: Sorting & Miscellaneous functions - Sorting: call TableGetSortSpecs() to retrieve latest sort specs for the table. NULL when not sorting. When 'sort_specs->SpecsDirty == true' you should sort your data. It will be true when sorting specs have changed since last call, or the first time. Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame! - Functions args 'int column_n' treat the default value of -1 as the same as passing the current column index.

TableHeader
void TableHeader(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
TableHeadersRow
void TableHeadersRow()
Undocumented in source. Be warned that the author may not have intended to support it.
TableNextColumn
bool TableNextColumn()
Undocumented in source. Be warned that the author may not have intended to support it.
TableNextRow
void TableNextRow()
Undocumented in source. Be warned that the author may not have intended to support it.
TableNextRowEx
void TableNextRowEx(ImGuiTableRowFlags row_flags, float min_row_height)
Undocumented in source. Be warned that the author may not have intended to support it.
TableSetBgColor
void TableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n)
Undocumented in source. Be warned that the author may not have intended to support it.
TableSetColumnEnabled
void TableSetColumnEnabled(int column_n, bool v)
Undocumented in source. Be warned that the author may not have intended to support it.
TableSetColumnIndex
bool TableSetColumnIndex(int column_n)
Undocumented in source. Be warned that the author may not have intended to support it.
TableSetupColumn
void TableSetupColumn(const(char)* label, ImGuiTableColumnFlags flags)

Tables: Headers & Columns declaration - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc. - Use TableHeadersRow() to create a header row and automatically submit a TableHeader() for each column. Headers are required to perform: reordering, sorting, and opening the context menu. The context menu can also be made available in columns body using ImGuiTableFlags_ContextMenuInBody. - You may manually submit headers using TableNextRow() + TableHeader() calls, but this is only useful in some advanced use cases (e.g. adding custom widgets in header row). - Use TableSetupScrollFreeze() to lock columns/rows so they stay visible when scrolled.

TableSetupColumnEx
void TableSetupColumnEx(const(char)* label, ImGuiTableColumnFlags flags, float init_width_or_weight, ImGuiID user_id)
Undocumented in source. Be warned that the author may not have intended to support it.
TableSetupScrollFreeze
void TableSetupScrollFreeze(int cols, int rows)
Undocumented in source. Be warned that the author may not have intended to support it.
TextLink
bool TextLink(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
TextLinkOpenURL
void TextLinkOpenURL(const(char)* label)
Undocumented in source. Be warned that the author may not have intended to support it.
TextLinkOpenURLEx
void TextLinkOpenURLEx(const(char)* label, const(char)* url)
Undocumented in source. Be warned that the author may not have intended to support it.
TextUnformatted
void TextUnformatted(const(char)* text)

Widgets: Text

TextUnformattedEx
void TextUnformattedEx(const(char)* text, const(char)* text_end)
Undocumented in source. Be warned that the author may not have intended to support it.
TreeNode
bool TreeNode(const(char)* label)

Widgets: Trees - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents.

TreeNodeEx
bool TreeNodeEx(const(char)* label, ImGuiTreeNodeFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
TreeNodeExPtr
bool TreeNodeExPtr(void* ptr_id, ImGuiTreeNodeFlags flags, const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
TreeNodeExStr
bool TreeNodeExStr(const(char)* str_id, ImGuiTreeNodeFlags flags, const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
TreeNodePtr
bool TreeNodePtr(void* ptr_id, const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
TreeNodeStr
bool TreeNodeStr(const(char)* str_id, const(char)* fmt)
Undocumented in source. Be warned that the author may not have intended to support it.
TreePop
void TreePop()
Undocumented in source. Be warned that the author may not have intended to support it.
TreePush
void TreePush(const(char)* str_id)
Undocumented in source. Be warned that the author may not have intended to support it.
TreePushPtr
void TreePushPtr(void* ptr_id)
Undocumented in source. Be warned that the author may not have intended to support it.
Unindent
void Unindent()
Undocumented in source. Be warned that the author may not have intended to support it.
UnindentEx
void UnindentEx(float indent_w)
Undocumented in source. Be warned that the author may not have intended to support it.
VSliderFloat
bool VSliderFloat(const(char)* label, ImVec2 size, float* v, float v_min, float v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
VSliderFloatEx
bool VSliderFloatEx(const(char)* label, ImVec2 size, float* v, float v_min, float v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
VSliderInt
bool VSliderInt(const(char)* label, ImVec2 size, int* v, int v_min, int v_max)
Undocumented in source. Be warned that the author may not have intended to support it.
VSliderIntEx
bool VSliderIntEx(const(char)* label, ImVec2 size, int* v, int v_min, int v_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.
VSliderScalar
bool VSliderScalar(const(char)* label, ImVec2 size, ImGuiDataType data_type, void* p_data, void* p_min, void* p_max)
Undocumented in source. Be warned that the author may not have intended to support it.
VSliderScalarEx
bool VSliderScalarEx(const(char)* label, ImVec2 size, ImGuiDataType data_type, void* p_data, void* p_min, void* p_max, const(char)* format, ImGuiSliderFlags flags)
Undocumented in source. Be warned that the author may not have intended to support it.

Meta