API Reference
This page documents the wrapper functions we have for the ImGui API. The Backends and the Makie integration are documented separately.
You can always get the current ImGui version with:
CImGui.imgui_version — Function
imgui_version()::VersionNumberReturn the upstream ImGui version.
CImGui.AcceptDragDropPayload — Function
AcceptDragDropPayload(type) -> Ptr{CImGui.lib.ImGuiPayload}
AcceptDragDropPayload(
type,
flags::Union{CImGui.lib.ImGuiDragDropFlags_, Integer}
) -> Ptr{CImGui.lib.ImGuiPayload}
Accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released.
CImGui.ActivateItemByID — Method
ActivateItemByID(id::Integer)
Activate an item by ID (button, checkbox, tree node etc.). Activation is queued and processed on the next frame when the item is encountered again. Was called 'ActivateItem()' before 1.89.7.
CImGui.AddBezierCubic — Function
AddBezierCubic(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness
)
AddBezierCubic(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness,
num_segments
)
Cubic Bezier (4 control points).
CImGui.AddBezierQuadratic — Function
AddBezierQuadratic(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness
)
AddBezierQuadratic(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness,
num_segments
)
Quadratic Bezier (3 control points).
CImGui.AddCallback — Function
AddCallback(
self::Ptr{CImGui.lib.ImDrawList},
callback::Union{Ptr{Nothing}, Base.CFunction}
)
AddCallback(
self::Ptr{CImGui.lib.ImDrawList},
callback::Union{Ptr{Nothing}, Base.CFunction},
userdata
)
AddCallback(
self::Ptr{CImGui.lib.ImDrawList},
callback::Union{Ptr{Nothing}, Base.CFunction},
userdata,
userdata_size
)
Advanced: Draw Callbacks
- May be used to alter render state (change sampler, blending, current shader). May be used to emit custom rendering commands (difficult to do correctly, but possible).
- Use special GetPlatformIO().DrawCallback_ResetRenderState callback to instruct backend to reset its render state to the default.
- See other standard callbacks in GetPlatformIO(), which may or not be supported by your backend.
- Your rendering loop must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles. All standard backends are honoring this.
- For some backends, the callback may access selected render-states exposed by the backend in a ImGuiImplXXXXRenderState structure pointed to by platformio.RendererRenderState.
- IMPORTANT: please be mindful of the different level of indirection between using size==0 (copying argument) and using size>0 (copying pointed data into a buffer).
- If userdata_size == 0: we copy/store the 'userdata' argument as-is. It will be available unmodified in ImDrawCmd::UserCallbackData during render.
- If userdatasize > 0, we copy/store 'userdatasize' bytes pointed to by 'userdata'. We store them in a buffer stored inside the drawlist. ImDrawCmd::UserCallbackData will point inside that buffer so you have to retrieve data from there. Your callback may need to use ImDrawCmd::UserCallbackDataSize if you expect dynamically-sized data.
- Support for userdata_size > 0 was added in v1.91.4, October 2024. So earlier code always only allowed to copy/store a simple void*.
CImGui.AddChar — Method
CImGui.AddCircle — Function
AddCircle(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer
)
AddCircle(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer,
num_segments
)
AddCircle(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer,
num_segments,
thickness
)
CImGui.AddCircleFilled — Function
AddCircleFilled(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer
)
AddCircleFilled(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer,
num_segments
)
CImGui.AddConcavePolyFilled — Method
AddConcavePolyFilled(
self::Ptr{CImGui.lib.ImDrawList},
points::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
num_points,
col::Integer
)
CImGui.AddContextHook — Method
AddContextHook(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
hook::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContextHook}}
) -> UInt32
CImGui.AddConvexPolyFilled — Method
AddConvexPolyFilled(
self::Ptr{CImGui.lib.ImDrawList},
points::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
num_points,
col::Integer
)
CImGui.AddCustomRect — Function
AddCustomRect(
self::Ptr{CImGui.lib.ImFontAtlas},
width,
height
) -> Int32
AddCustomRect(
self::Ptr{CImGui.lib.ImFontAtlas},
width,
height,
out_r::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlasRect}}
) -> Int32
Register and retrieve custom rectangles
- You can request arbitrary rectangles to be packed into the atlas, for your own purpose.
- Since 1.92.0, packing is done immediately in the function call (previously packing was done during the Build call)
- You can render your pixels into the texture right after calling the AddCustomRect() functions.
- VERY IMPORTANT:
- Texture may be created/resized at any time when calling ImGui or ImFontAtlas functions.
- IT WILL INVALIDATE RECTANGLE DATA SUCH AS UV COORDINATES. Always use latest values from GetCustomRect().
- UV coordinates are associated to the current texture identifier aka 'atlas->TexRef'. Both TexRef and UV coordinates are typically changed at the same time.
- If you render colored output into your custom rectangles: set 'atlas->TexPixelsUseColors = true' as this may help some backends decide of preferred texture format.
- Read docs/FONTS.md for more details about using colorful icons.
- Note: this API may be reworked further in order to facilitate supporting e.g. multi-monitor, varying DPI settings.
- (Pre-1.92 names) ––––––> (1.92 names)
- GetCustomRectByIndex() –> Use GetCustomRect()
- CalcCustomRectUV() –> Use GetCustomRect() and read uv0, uv1 fields.
- AddCustomRectRegular() –> Renamed to AddCustomRect()
- AddCustomRectFontGlyph() –> Prefer using custom ImFontLoader inside ImFontConfig
- ImFontAtlasCustomRect –> Renamed to ImFontAtlasRect// Register a rectangle. Return -1 (ImFontAtlasRectId_Invalid) on error.
CImGui.AddDrawCmd — Method
AddDrawCmd(self::Ptr{CImGui.lib.ImDrawList})
Advanced: Miscellaneous// This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible.
CImGui.AddDrawList — Method
AddDrawList(
self::Ptr{CImGui.lib.ImDrawData},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}}
)
Helper to add an external draw list into an existing ImDrawData.
CImGui.AddDrawListToDrawDataEx — Method
AddDrawListToDrawDataEx(
draw_data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawData}},
out_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVector_ImDrawListPtr}},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}}
)
CImGui.AddEllipse — Function
AddEllipse(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddEllipse(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rot
)
AddEllipse(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rot,
num_segments
)
AddEllipse(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rot,
num_segments,
thickness
)
CImGui.AddEllipseFilled — Function
AddEllipseFilled(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddEllipseFilled(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rot
)
AddEllipseFilled(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rot,
num_segments
)
CImGui.AddFocusEvent — Method
AddFocusEvent(self::Ptr{CImGui.lib.ImGuiIO}, focused)
Queue a gain/loss of focus for the application (generally based on OS/platform focus of your window).
CImGui.AddFont — Method
AddFont(
self::Ptr{CImGui.lib.ImFontAtlas},
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
CImGui.AddFontDefault — Function
AddFontDefault(
self::Ptr{CImGui.lib.ImFontAtlas}
) -> Ptr{CImGui.lib.ImFont}
AddFontDefault(
self::Ptr{CImGui.lib.ImFontAtlas},
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
Selects between AddFontDefaultVector() and AddFontDefaultBitmap().
CImGui.AddFontDefaultBitmap — Function
AddFontDefaultBitmap(
self::Ptr{CImGui.lib.ImFontAtlas}
) -> Ptr{CImGui.lib.ImFont}
AddFontDefaultBitmap(
self::Ptr{CImGui.lib.ImFontAtlas},
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
Embedded classic pixel-clean font. Recommended at Size 13px with no scaling.
CImGui.AddFontDefaultVector — Function
AddFontDefaultVector(
self::Ptr{CImGui.lib.ImFontAtlas}
) -> Ptr{CImGui.lib.ImFont}
AddFontDefaultVector(
self::Ptr{CImGui.lib.ImFontAtlas},
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
Embedded scalable font. Recommended at any higher size.
CImGui.AddFontFromFileTTF — Function
AddFontFromFileTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
filename
) -> Ptr{CImGui.lib.ImFont}
AddFontFromFileTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
filename,
size_pixels
) -> Ptr{CImGui.lib.ImFont}
AddFontFromFileTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
filename,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
AddFontFromFileTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
filename,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
glyph_ranges::Union{Ptr{Nothing}, Ref{UInt16}}
) -> Ptr{CImGui.lib.ImFont}
CImGui.AddFontFromMemoryCompressedBase85TTF — Function
AddFontFromMemoryCompressedBase85TTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data_base85
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryCompressedBase85TTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data_base85,
size_pixels
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryCompressedBase85TTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data_base85,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryCompressedBase85TTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data_base85,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
glyph_ranges::Union{Ptr{Nothing}, Ref{UInt16}}
) -> Ptr{CImGui.lib.ImFont}
'compressedfontdatabase85' still owned by caller. Compress with binarytocompressedc.cpp with -base85 parameter.
CImGui.AddFontFromMemoryCompressedTTF — Function
AddFontFromMemoryCompressedTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data,
compressed_font_data_size
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryCompressedTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data,
compressed_font_data_size,
size_pixels
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryCompressedTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data,
compressed_font_data_size,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryCompressedTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
compressed_font_data,
compressed_font_data_size,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
glyph_ranges::Union{Ptr{Nothing}, Ref{UInt16}}
) -> Ptr{CImGui.lib.ImFont}
'compressedfontdata' still owned by caller. Compress with binarytocompressed_c.cpp.
CImGui.AddFontFromMemoryTTF — Function
AddFontFromMemoryTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
font_data,
font_data_size
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
font_data,
font_data_size,
size_pixels
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
font_data,
font_data_size,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Ptr{CImGui.lib.ImFont}
AddFontFromMemoryTTF(
self::Ptr{CImGui.lib.ImFontAtlas},
font_data,
font_data_size,
size_pixels,
font_cfg::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
glyph_ranges::Union{Ptr{Nothing}, Ref{UInt16}}
) -> Ptr{CImGui.lib.ImFont}
Note: Transfer ownership of 'ttfdata' to ImFontAtlas! Will be deleted after destruction of the atlas. Set fontcfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed.
CImGui.AddImage — Function
AddImage(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImage(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImage(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImage(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
Image primitives
- Read FAQ to understand what ImTextureID/ImTextureRef are.
- "pmin" and "pmax" represent the upper-left and lower-right corners of the rectangle.
- "uvmin" and "uvmax" represent the normalized texture coordinates to use for those corners. Using (0,0)->(1,1) texture coordinates will generally display the entire texture.
CImGui.AddImageQuad — Function
AddImageQuad(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImageQuad(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImageQuad(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImageQuad(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImageQuad(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
AddImageQuad(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.AddImageRounded — Function
AddImageRounded(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding
)
AddImageRounded(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef,
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
CImGui.AddInputCharacter — Method
CImGui.AddInputCharacterUTF16 — Method
AddInputCharacterUTF16(
self::Ptr{CImGui.lib.ImGuiIO},
c::UInt16
)
Queue a new character input from a UTF-16 character, it can be a surrogate.
CImGui.AddInputCharactersUTF8 — Method
AddInputCharactersUTF8(self::Ptr{CImGui.lib.ImGuiIO}, str)
Queue a new characters input from a UTF-8 string.
CImGui.AddKeyAnalogEvent — Method
AddKeyAnalogEvent(
self::Ptr{CImGui.lib.ImGuiIO},
key::CImGui.lib.ImGuiKey,
down,
v
)
Queue a new key down/up event for analog values (e.g. ImGuiKeyGamepad values). Dead-zones should be handled by the backend.
CImGui.AddKeyEvent — Method
AddKeyEvent(
self::Ptr{CImGui.lib.ImGuiIO},
key::CImGui.lib.ImGuiKey,
down
)
Input Functions// Queue a new key down/up event. Key should be "translated" (as in, generally ImGuiKey_A matches the key end-user would use to emit an 'A' character).
CImGui.AddLine — Function
AddLine(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddLine(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness
)
Primitives
- Filled shapes must always use clockwise winding order. The anti-aliasing fringe depends on it. Counter-clockwise shapes will have "inward" anti-aliasing.
- For rectangular primitives, "pmin" and "pmax" represent the upper-left and lower-right corners.
- For circle primitives, use "numsegments == 0" to automatically calculate tessellation (preferred). In older versions (until Dear ImGui 1.77) the AddCircle functions defaulted to numsegments == 12. In future versions we will use textures to provide cheaper and higher-quality circles. Use AddNgon() and AddNgonFilled() functions if you need to guarantee a specific number of sides.
CImGui.AddLineH — Function
AddLineH(
self::Ptr{CImGui.lib.ImDrawList},
min_x,
max_x,
y,
col::Integer
)
AddLineH(
self::Ptr{CImGui.lib.ImDrawList},
min_x,
max_x,
y,
col::Integer,
thickness
)
CImGui.AddLineV — Function
AddLineV(
self::Ptr{CImGui.lib.ImDrawList},
x,
min_y,
max_y,
col::Integer
)
AddLineV(
self::Ptr{CImGui.lib.ImDrawList},
x,
min_y,
max_y,
col::Integer,
thickness
)
CImGui.AddMouseButtonEvent — Method
AddMouseButtonEvent(
self::Ptr{CImGui.lib.ImGuiIO},
button,
down
)
Queue a mouse button change.
CImGui.AddMousePosEvent — Method
AddMousePosEvent(self::Ptr{CImGui.lib.ImGuiIO}, x, y)
Queue a mouse position update. Use -FLTMAX,-FLTMAX to signify no mouse (e.g. app not focused and not hovered).
CImGui.AddMouseSourceEvent — Method
AddMouseSourceEvent(
self::Ptr{CImGui.lib.ImGuiIO},
source::CImGui.lib.ImGuiMouseSource
)
Queue a mouse source change (Mouse/TouchScreen/Pen).
CImGui.AddMouseViewportEvent — Method
AddMouseViewportEvent(
self::Ptr{CImGui.lib.ImGuiIO},
id::Integer
)
Queue a mouse hovered viewport. Requires backend to set ImGuiBackendFlags_HasMouseHoveredViewport to call this (for multi-viewport support).
CImGui.AddMouseWheelEvent — Method
AddMouseWheelEvent(
self::Ptr{CImGui.lib.ImGuiIO},
wheel_x,
wheel_y
)
Queue a mouse wheel update. wheely<0: scroll down, wheely>0: scroll up, wheelx<0: scroll right, wheelx>0: scroll left.
CImGui.AddNgon — Function
AddNgon(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer,
num_segments
)
AddNgon(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer,
num_segments,
thickness
)
CImGui.AddNgonFilled — Method
AddNgonFilled(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
col::Integer,
num_segments
)
CImGui.AddPolyline — Function
AddPolyline(
self::Ptr{CImGui.lib.ImDrawList},
points::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
num_points,
col::Integer,
thickness
)
AddPolyline(
self::Ptr{CImGui.lib.ImDrawList},
points::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
num_points,
col::Integer,
thickness,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
General polygon
- Only simple polygons are supported by filling functions (no self-intersections, no holes).
- Concave polygon fill is more expensive than convex one: it has O(N^2) complexity. Provided as a convenience for the user but not used by the main library.
CImGui.AddQuad — Function
AddQuad(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddQuad(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness
)
CImGui.AddQuadFilled — Method
AddQuadFilled(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.AddRanges — Method
AddRanges(
self::Ptr{CImGui.lib.ImFontGlyphRangesBuilder},
ranges::Union{Ptr{Nothing}, Ref{UInt16}}
)
Add ranges, e.g. builder.AddRanges(ImFontAtlas::GetGlyphRangesDefault()) to force add all of ASCII/Latin+Ext.
CImGui.AddRect — Function
AddRect(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddRect(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding
)
AddRect(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding,
thickness
)
AddRect(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding,
thickness,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
A: upper-left, b: lower-right (== upper-left + size).
CImGui.AddRectFilled — Function
AddRectFilled(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddRectFilled(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding
)
AddRectFilled(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
rounding,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
A: upper-left, b: lower-right (== upper-left + size).
CImGui.AddRectFilledMultiColor — Method
AddRectFilledMultiColor(
self::Ptr{CImGui.lib.ImDrawList},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col_upr_left::Integer,
col_upr_right::Integer,
col_bot_right::Integer,
col_bot_left::Integer
)
CImGui.AddRemapChar — Method
AddRemapChar(
self::Ptr{CImGui.lib.ImFont},
from_codepoint::UInt16,
to_codepoint::UInt16
)
Makes 'fromcodepoint' character points to 'tocodepoint' glyph.
CImGui.AddSettingsHandler — Method
AddSettingsHandler(
handler::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiSettingsHandler}}
)
CImGui.AddText — Function
AddText(
self::Ptr{CImGui.lib.ImDrawList},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
text_begin::Union{Ptr{Int8}, Ptr{Nothing}, String}
)
AddText(
self::Ptr{CImGui.lib.ImDrawList},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
text_begin::Union{Ptr{Int8}, Ptr{Nothing}, String},
text_end::Union{Ptr{Int8}, Ptr{Nothing}, String}
)
CImGui.AddText — Function
AddText(
self::Ptr{CImGui.lib.ImDrawList},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size::Real,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
text_begin::Union{Ptr{Int8}, Ptr{Nothing}, String}
)
AddText(
self::Ptr{CImGui.lib.ImDrawList},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size::Real,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
text_begin::Union{Ptr{Int8}, Ptr{Nothing}, String},
text_end::Union{Ptr{Int8}, Ptr{Nothing}, String}
)
AddText(
self::Ptr{CImGui.lib.ImDrawList},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size::Real,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
text_begin::Union{Ptr{Int8}, Ptr{Nothing}, String},
text_end::Union{Ptr{Int8}, Ptr{Nothing}, String},
wrap_width::Real
)
AddText(
self::Ptr{CImGui.lib.ImDrawList},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size::Real,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
text_begin::Union{Ptr{Int8}, Ptr{Nothing}, String},
text_end::Union{Ptr{Int8}, Ptr{Nothing}, String},
wrap_width::Real,
cpu_fine_clip_rect::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec4}, Ref{NTuple{4, T} where T}}
)
CImGui.AddText — Function
AddText(
self::Ptr{CImGui.lib.ImFontGlyphRangesBuilder},
text
)
AddText(
self::Ptr{CImGui.lib.ImFontGlyphRangesBuilder},
text,
text_end
)
Add string (each character of the UTF-8 string are added).
CImGui.AddTriangle — Function
AddTriangle(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
AddTriangle(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
thickness
)
CImGui.AddTriangleFilled — Method
AddTriangleFilled(
self::Ptr{CImGui.lib.ImDrawList},
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.AddX — Method
AddX(self::Ptr{CImGui.lib.ImRect}, x)
CImGui.AddY — Method
AddY(self::Ptr{CImGui.lib.ImRect}, y)
CImGui.AlignTextToFramePadding — Method
AlignTextToFramePadding()
Vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item).
CImGui.Append — Function
Append(self::Ptr{CImGui.lib.ImGuiTextBuffer}, str)
Append(self::Ptr{CImGui.lib.ImGuiTextBuffer}, str, str_end)
CImGui.Append — Method
Append(
self::Ptr{CImGui.lib.ImGuiTextIndex},
base,
old_size,
new_size
)
CImGui.Appendf — Method
Appendf(self::Ptr{CImGui.lib.ImGuiTextBuffer}, fmt)
CImGui.ApplyRequests — Method
ApplyRequests(
self::Ptr{CImGui.lib.ImGuiSelectionBasicStorage},
ms_io::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiMultiSelectIO}}
)
Apply selection requests coming from BeginMultiSelect() and EndMultiSelect() functions. It uses 'items_count' passed to BeginMultiSelect().
CImGui.ApplyRequests — Method
ApplyRequests(
self::Ptr{CImGui.lib.ImGuiSelectionExternalStorage},
ms_io::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiMultiSelectIO}}
)
Apply selection requests by using AdapterSetItemSelected() calls.
CImGui.ArrowButton — Method
ArrowButton(str_id, dir::CImGui.lib.ImGuiDir) -> Bool
Square button with an arrow shape.
CImGui.ArrowButtonEx — Function
ArrowButtonEx(
str_id,
dir::CImGui.lib.ImGuiDir,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
ArrowButtonEx(
str_id,
dir::CImGui.lib.ImGuiDir,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiButtonFlags_, Integer}
) -> Bool
CImGui.AsVec4 — Method
AsVec4(
self::Ptr{CImGui.lib.ImRect}
) -> Ptr{CImGui.lib.ImVec4}
CImGui.Begin — Function
Begin(name::Union{Ptr{Int8}, Ptr{Nothing}, String}) -> Bool
Begin(
name::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_open
) -> Bool
Begin(
name::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_open,
flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
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".
CImGui.Begin — Function
Begin(self::Ptr{CImGui.lib.ImGuiListClipper}, items_count)
Begin(
self::Ptr{CImGui.lib.ImGuiListClipper},
items_count,
items_height
)
CImGui.Begin — Method
Begin(self::Ptr{CImGui.lib.ImGuiTextBuffer}) -> Ptr{Int8}
CImGui.BeginBoxSelect — Method
BeginBoxSelect(
scope_rect::CImGui.lib.ImRect,
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
box_select_id::Integer,
ms_flags::Union{CImGui.lib.ImGuiMultiSelectFlags_, Integer}
) -> Bool
Box-Select API.
CImGui.BeginChild — Function
BeginChild(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
BeginChild(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
BeginChild(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
child_flags::Union{CImGui.lib.ImGuiChildFlags_, Integer}
) -> Bool
BeginChild(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
child_flags::Union{CImGui.lib.ImGuiChildFlags_, Integer},
window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
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 childflags = 0" parameter was "bool border = false". This API is backward compatible with old code, as we guarantee that ImGuiChildFlagsBorders == true. Consider updating your old code: BeginChild("Name", size, false) -> Begin("Name", size, 0); or Begin("Name", size, ImGuiChildFlagsNone); BeginChild("Name", size, true) -> Begin("Name", size, ImGuiChildFlagsBorders);
- 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: right/bottom-align to specified distance from available content boundaries.0.0f: use specified size for this axis.
- Specifying ImGuiChildFlagsAutoResizeX or ImGuiChildFlagsAutoResizeY makes the sizing automatic based on child contents. Combining both ImGuiChildFlagsAutoResizeX _and ImGuiChildFlags_AutoResizeY defeats purpose of a scrolling region and is NOT recommended.
- BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value. [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.].
CImGui.BeginChild — Function
BeginChild(id::Integer) -> Bool
BeginChild(
id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
BeginChild(
id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
child_flags::Union{CImGui.lib.ImGuiChildFlags_, Integer}
) -> Bool
BeginChild(
id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
child_flags::Union{CImGui.lib.ImGuiChildFlags_, Integer},
window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
CImGui.BeginChildEx — Method
BeginChildEx(
name,
id::Integer,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
child_flags::Union{CImGui.lib.ImGuiChildFlags_, Integer},
window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
Childs.
CImGui.BeginColumns — Function
BeginColumns(str_id, count)
BeginColumns(
str_id,
count,
flags::Union{CImGui.lib.ImGuiOldColumnFlags_, Integer}
)
Setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
CImGui.BeginCombo — Function
BeginCombo(label, preview_value) -> Bool
BeginCombo(
label,
preview_value,
flags::Union{CImGui.lib.ImGuiComboFlags_, Integer}
) -> Bool
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.
CImGui.BeginComboPopup — Method
BeginComboPopup(
popup_id::Integer,
bb::CImGui.lib.ImRect,
flags::Union{CImGui.lib.ImGuiComboFlags_, Integer}
) -> Bool
Combos.
CImGui.BeginComboPreview — Method
BeginComboPreview() -> Bool
CImGui.BeginDisabled — Function
BeginDisabled()
BeginDisabled(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 are automatically opted out of disabling. Note that IsItemHovered() by default returns false on disabled items, unless using ImGuiHoveredFlags_AllowWhenDisabled.
- 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).
CImGui.BeginDisabledOverrideReenable — Method
BeginDisabledOverrideReenable()
CImGui.BeginDockableDragDropSource — Method
BeginDockableDragDropSource(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.BeginDockableDragDropTarget — Method
BeginDockableDragDropTarget(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.BeginDocked — Method
BeginDocked(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
p_open
)
CImGui.BeginDragDropSource — Function
BeginDragDropSource() -> Bool
BeginDragDropSource(
flags::Union{CImGui.lib.ImGuiDragDropFlags_, Integer}
) -> Bool
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.// call after submitting an item which may be dragged. when this return true, you can call SetDragDropPayload() + EndDragDropSource().
CImGui.BeginDragDropTarget — Method
BeginDragDropTarget() -> Bool
Call after submitting an item that may receive a payload. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget().
CImGui.BeginDragDropTargetCustom — Method
BeginDragDropTargetCustom(
bb::CImGui.lib.ImRect,
id::Integer
) -> Bool
CImGui.BeginDragDropTargetViewport — Function
BeginDragDropTargetViewport(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}}
) -> Bool
BeginDragDropTargetViewport(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}},
p_bb::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}}
) -> Bool
CImGui.BeginErrorTooltip — Method
BeginErrorTooltip() -> Bool
CImGui.BeginGroup — Method
CImGui.BeginItemTooltip — Method
BeginItemTooltip() -> Bool
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 'ImGuiHoveredFlagsForTooltip' itself is a shortcut to use 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on active input type. For mouse it defaults to 'ImGuiHoveredFlagsStationary | ImGuiHoveredFlags_DelayShort'.// begin/append a tooltip window if preceding item was hovered.
CImGui.BeginListBox — Function
BeginListBox(label) -> Bool
BeginListBox(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
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 analogous 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// open a framed scrolling region.
CImGui.BeginMainMenuBar — Method
CImGui.BeginMenu — Function
BeginMenu(label) -> Bool
BeginMenu(label, enabled) -> Bool
Create a sub-menu entry. only call EndMenu() if this returns true!
CImGui.BeginMenuBar — Method
BeginMenuBar() -> Bool
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.
- Note that MenuItem() keyboard shortcuts are displayed as a convenience but not processed by Dear ImGui at the moment.// append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window).
CImGui.BeginMenuEx — Function
BeginMenuEx(label, icon) -> Bool
BeginMenuEx(label, icon, enabled) -> Bool
CImGui.BeginMultiSelect — Function
BeginMultiSelect(
flags::Union{CImGui.lib.ImGuiMultiSelectFlags_, Integer}
) -> Ptr{CImGui.lib.ImGuiMultiSelectIO}
BeginMultiSelect(
flags::Union{CImGui.lib.ImGuiMultiSelectFlags_, Integer},
selection_size
) -> Ptr{CImGui.lib.ImGuiMultiSelectIO}
BeginMultiSelect(
flags::Union{CImGui.lib.ImGuiMultiSelectFlags_, Integer},
selection_size,
items_count
) -> Ptr{CImGui.lib.ImGuiMultiSelectIO}
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.
- 'selectionsize' and 'itemscount' parameters are optional and used by a few features. If they are costly for you to compute, you may avoid them.
CImGui.BeginPopup — Function
BeginPopup(str_id) -> Bool
BeginPopup(
str_id,
flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
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 (call 'Shortcut(ImGuiKey_Escape)' to claim a higher-priority shortcut).
- 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.// return true if the popup is open, and you can start outputting to it.
CImGui.BeginPopupContextItem — Function
BeginPopupContextItem() -> Bool
BeginPopupContextItem(str_id) -> Bool
BeginPopupContextItem(
str_id,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
Popups: Open+Begin popup combined functions helpers to create context menus.
- Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking.
- 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: If you ever used the left mouse button with BeginPopupContextXXX() helpers before 1.92.6:
- Before this version, OpenPopupOnItemClick(), BeginPopupContextItem(), BeginPopupContextWindow(), BeginPopupContextVoid() had 'a ImGuiPopupFlags popup_flags = 1' default value in their function signature.
- Before: Explicitly passing a literal 0 meant ImGuiPopupFlagsMouseButtonLeft. The default = 1 meant ImGuiPopupFlagsMouseButtonRight.
- After: The default = 0 means ImGuiPopupFlagsMouseButtonRight. Explicitly passing a literal 1 also means ImGuiPopupFlagsMouseButtonRight (if legacy behavior are enabled) or will assert (if legacy behavior are disabled).
- TL;DR: if you don't want to use right mouse button for popups, always specify it explicitly using a named ImGuiPopupFlags_MouseButtonXXXX value.
- Read "API BREAKING CHANGES" 2026/01/07 (1.92.6) entry in imgui.cpp or GitHub topic #9157 for all details.// open+begin popup when clicked on last item. Use str_id==NULL to associate the popup to previous item. If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp!
CImGui.BeginPopupContextVoid — Function
BeginPopupContextVoid() -> Bool
BeginPopupContextVoid(str_id) -> Bool
BeginPopupContextVoid(
str_id,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
Open+begin popup when clicked in void (where there are no windows).
CImGui.BeginPopupContextWindow — Function
BeginPopupContextWindow() -> Bool
BeginPopupContextWindow(str_id) -> Bool
BeginPopupContextWindow(
str_id,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
Open+begin popup when clicked on current window.
CImGui.BeginPopupEx — Method
BeginPopupEx(
id::Integer,
extra_window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
Popups, Modals.
CImGui.BeginPopupMenuEx — Method
BeginPopupMenuEx(
id::Integer,
label,
extra_window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
CImGui.BeginPopupModal — Function
BeginPopupModal(name) -> Bool
BeginPopupModal(name, p_open) -> Bool
BeginPopupModal(
name,
p_open,
flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
Return true if the modal is open, and you can start outputting to it.
CImGui.BeginTabBar — Function
BeginTabBar(str_id) -> Bool
BeginTabBar(
str_id,
flags::Union{CImGui.lib.ImGuiTabBarFlags_, Integer}
) -> Bool
Tab Bars, Tabs
- Note: Tabs are automatically created by the docking system (when in 'docking' branch). Use this to create tab bars/tabs yourself.// create and append into a TabBar.
CImGui.BeginTabBarEx — Method
BeginTabBarEx(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
bb::CImGui.lib.ImRect,
flags::Union{CImGui.lib.ImGuiTabBarFlags_, Integer}
) -> Bool
CImGui.BeginTabItem — Function
BeginTabItem(label) -> Bool
BeginTabItem(label, p_open) -> Bool
BeginTabItem(
label,
p_open,
flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer}
) -> Bool
Create a Tab. Returns true if the Tab is selected.
CImGui.BeginTable — Function
BeginTable(str_id, columns) -> Bool
BeginTable(
str_id,
columns,
flags::Union{CImGui.lib.ImGuiTableFlags_, Integer}
) -> Bool
BeginTable(
str_id,
columns,
flags::Union{CImGui.lib.ImGuiTableFlags_, Integer},
outer_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
BeginTable(
str_id,
columns,
flags::Union{CImGui.lib.ImGuiTableFlags_, Integer},
outer_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
inner_width
) -> Bool
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:
- Call BeginTable(), early out if returning false.
- Optionally call TableSetupColumn() to submit column name/flags/defaults.
- Optionally call TableSetupScrollFreeze() to request scroll freezing of columns/rows.
- Optionally call TableHeadersRow() to submit a header row. Names are pulled from TableSetupColumn() data.
- 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!
- Call EndTable().
CImGui.BeginTableEx — Function
BeginTableEx(name, id::Integer, columns_count) -> Bool
BeginTableEx(
name,
id::Integer,
columns_count,
flags::Union{CImGui.lib.ImGuiTableFlags_, Integer}
) -> Bool
BeginTableEx(
name,
id::Integer,
columns_count,
flags::Union{CImGui.lib.ImGuiTableFlags_, Integer},
outer_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
BeginTableEx(
name,
id::Integer,
columns_count,
flags::Union{CImGui.lib.ImGuiTableFlags_, Integer},
outer_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
inner_width
) -> Bool
CImGui.BeginTooltip — Method
BeginTooltip() -> Bool
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)// begin/append a tooltip window.
CImGui.BeginTooltipEx — Method
BeginTooltipEx(
tooltip_flags::Union{CImGui.lib.ImGuiTooltipFlags_, Integer},
extra_window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
Tooltips.
CImGui.BeginTooltipHidden — Method
BeginTooltipHidden() -> Bool
CImGui.BeginViewportSideBar — Method
BeginViewportSideBar(
name,
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}},
dir::CImGui.lib.ImGuiDir,
size,
window_flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer}
) -> Bool
Menus.
CImGui.BringWindowToDisplayBack — Method
BringWindowToDisplayBack(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.BringWindowToDisplayBehind — Method
BringWindowToDisplayBehind(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
above_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.BringWindowToDisplayFront — Method
BringWindowToDisplayFront(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.BringWindowToFocusFront — Method
BringWindowToFocusFront(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.Build — Method
Build(self::Ptr{CImGui.lib.ImGuiTextFilter})
CImGui.BuildRanges — Method
BuildRanges(
self::Ptr{CImGui.lib.ImFontGlyphRangesBuilder},
out_ranges::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVector_ImWchar}}
)
Output new ranges.
CImGui.BuildSortByKey — Method
BuildSortByKey(self::Ptr{CImGui.lib.ImGuiStorage})
Advanced: for quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once.
CImGui.Bullet — Method
Bullet()
Draw a small circle + keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses.
CImGui.BulletText — Method
CImGui.Button — Function
Button(label) -> Bool
Button(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
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.// button.
CImGui.ButtonBehavior — Function
ButtonBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
out_hovered,
out_held
) -> Bool
ButtonBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
out_hovered,
out_held,
flags::Union{CImGui.lib.ImGuiButtonFlags_, Integer}
) -> Bool
Widgets low-level behaviors.
CImGui.ButtonEx — Function
ButtonEx(label) -> Bool
ButtonEx(
label,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
ButtonEx(
label,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiButtonFlags_, Integer}
) -> Bool
Widgets.
CImGui.C_str — Method
C_str(self::Ptr{CImGui.lib.ImGuiTextBuffer}) -> Ptr{Int8}
CImGui.CalcClipRectVisibleItemsY — Method
CalcClipRectVisibleItemsY(
clip_rect::CImGui.lib.ImRect,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
items_height,
out_visible_start,
out_visible_end
)
CImGui.CalcItemSize — Method
CalcItemSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
default_w,
default_h
) -> CImGui.lib.ImVec2
CImGui.CalcItemWidth — Method
CalcItemWidth() -> Float32
Width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions.
CImGui.CalcNextTotalWidth — Method
CalcNextTotalWidth(
self::Ptr{CImGui.lib.ImGuiMenuColumns},
update_offsets
)
CImGui.CalcRoundingFlagsForRectInRect — Method
CalcRoundingFlagsForRectInRect(
r_in::CImGui.lib.ImRect,
r_outer::CImGui.lib.ImRect,
threshold
) -> Int32
CImGui.CalcTextSize — Function
CalcTextSize(text) -> CImGui.lib.ImVec2
CalcTextSize(text, text_end) -> CImGui.lib.ImVec2
CalcTextSize(
text,
text_end,
hide_text_after_double_hash
) -> CImGui.lib.ImVec2
CalcTextSize(
text,
text_end,
hide_text_after_double_hash,
wrap_width
) -> CImGui.lib.ImVec2
Text Utilities.
CImGui.CalcTextSizeA — Function
CalcTextSizeA(
self::Ptr{CImGui.lib.ImFont},
size,
max_width,
wrap_width,
text_begin
) -> CImGui.lib.ImVec2
CalcTextSizeA(
self::Ptr{CImGui.lib.ImFont},
size,
max_width,
wrap_width,
text_begin,
text_end
) -> CImGui.lib.ImVec2
CalcTextSizeA(
self::Ptr{CImGui.lib.ImFont},
size,
max_width,
wrap_width,
text_begin,
text_end,
out_remaining
) -> CImGui.lib.ImVec2
CImGui.CalcTypematicRepeatAmount — Method
CalcTypematicRepeatAmount(
t0,
t1,
repeat_delay,
repeat_rate
) -> Int32
CImGui.CalcWindowNextAutoFitSize — Method
CalcWindowNextAutoFitSize(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> CImGui.lib.ImVec2
CImGui.CalcWordWrapPosition — Method
CalcWordWrapPosition(
self::Ptr{CImGui.lib.ImFont},
size,
text,
text_end,
wrap_width
) -> Ptr{Int8}
CImGui.CalcWorkRectPos — Method
CalcWorkRectPos(
self::Ptr{CImGui.lib.ImGuiViewportP},
inset_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
Calculate work rect pos/size given a set of offset (we have 1 pair of offset for rect locked from last frame data, and 1 pair for currently building rect).
CImGui.CalcWorkRectSize — Method
CalcWorkRectSize(
self::Ptr{CImGui.lib.ImGuiViewportP},
inset_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
inset_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.CalcWrapWidthForPos — Method
CalcWrapWidthForPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
wrap_pos_x
) -> Float32
CImGui.CallContextHooks — Method
CallContextHooks(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
type::CImGui.lib.ImGuiContextHookType
)
CImGui.ChannelsMerge — Method
ChannelsMerge(self::Ptr{CImGui.lib.ImDrawList})
CImGui.ChannelsSetCurrent — Method
ChannelsSetCurrent(self::Ptr{CImGui.lib.ImDrawList}, n)
CImGui.ChannelsSplit — Method
ChannelsSplit(self::Ptr{CImGui.lib.ImDrawList}, count)
Advanced: Channels
- Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives)
- Use to minimize draw calls (e.g. if going back-and-forth between multiple clipping rectangles, prefer to append into separate channels then merge at the end)
- This API shouldn't have been in ImDrawList in the first place! Prefer using your own persistent instance of ImDrawListSplitter as you can stack them. Using the ImDrawList::ChannelsXXXX you cannot stack a split over another.
CImGui.Checkbox — Method
Checkbox(label, v) -> Bool
CImGui.CheckboxFlags — Method
CheckboxFlags(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
flags::Ref{Int32},
flags_value
) -> Bool
CImGui.CheckboxFlags — Method
CheckboxFlags(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
flags::Ref{UInt32},
flags_value
) -> Bool
CImGui.CleanupIniSettings — Method
CleanupIniSettings(
args::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiSettingsCleanupArgs}}
)
[BETA] Expected to turn into a public API. Please report if you are using this!
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImBitVector})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImDrawData})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImDrawListSplitter})
Do not clear Channels[] so our allocations are reused next frame.
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImFontAtlas})
Clearing the atlas/fonts has little use nowadays, unless you want to batch remove all fonts.
- Since 1.92, you can call ClearFonts() mid-frame, if you load new fonts afterwards.
- As we are transitioning toward our new font system the semantic for those functions gets increasingly misleading and are often a source of issues. TL;DR; most likely, don't use any of those functions. We expect to obsolete/rework them.// Clear everything (fonts + textures). Don't call mid-frame!
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImFontGlyphRangesBuilder})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiKeyRoutingTable})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiMultiSelectTempData})
Zero-clear except IO as we preserve IO.Requests[] buffer allocation.
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiNavItemData})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiPayload})
CImGui.Clear — Method
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiStorage})
- Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N)
- Set***() functions find pair, insertion on demand if missing.
- Sorted insertion is costly, paid once. A typical frame shouldn't need to insert any new pair.
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiTextBuffer})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiTextFilter})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiTextIndex})
CImGui.Clear — Method
Clear(self::Ptr{CImGui.lib.ImGuiTypingSelectState})
We preserve remaining data for easier debugging.
CImGui.ClearActiveID — Method
CImGui.ClearBit — Method
ClearBit(self::Ptr{CImGui.lib.ImBitVector}, n)
CImGui.ClearDragDrop — Method
CImGui.ClearEventsQueue — Method
CImGui.ClearFlags — Method
ClearFlags(self::Ptr{CImGui.lib.ImGuiNextItemData})
Also cleared manually by ItemAdd()!
CImGui.ClearFlags — Method
ClearFlags(self::Ptr{CImGui.lib.ImGuiNextWindowData})
CImGui.ClearFonts — Method
ClearFonts(self::Ptr{CImGui.lib.ImFontAtlas})
Clear input+output font data/glyphs. New fonts and textures will be recreated afterwards.
CImGui.ClearFreeMemory — Method
ClearFreeMemory(self::Ptr{CImGui.lib.ImDrawListSplitter})
CImGui.ClearFreeMemory — Method
ClearFreeMemory(
self::Ptr{CImGui.lib.ImGuiInputTextDeactivatedState}
)
CImGui.ClearFreeMemory — Method
ClearFreeMemory(self::Ptr{CImGui.lib.ImGuiInputTextState})
CImGui.ClearIO — Method
ClearIO(self::Ptr{CImGui.lib.ImGuiMultiSelectTempData})
CImGui.ClearIniSettings — Method
CImGui.ClearInputData — Method
ClearInputData(self::Ptr{CImGui.lib.ImFontAtlas})
[OBSOLETE] Clear input data (all ImFontConfig structures including sizes, TTF data, glyph ranges, etc.) = all the data used to build the texture and fonts.
CImGui.ClearInputKeys — Method
ClearInputKeys(self::Ptr{CImGui.lib.ImGuiIO})
Clear current keyboard/gamepad state + current frame text input buffer. Equivalent to releasing all keys/buttons.
CImGui.ClearInputMouse — Method
CImGui.ClearOutputData — Method
ClearOutputData(self::Ptr{CImGui.lib.ImFontBaked})
CImGui.ClearOutputData — Method
CImGui.ClearPlatformHandlers — Method
ClearPlatformHandlers(self::Ptr{CImGui.lib.ImGuiPlatformIO})
Clear all Platform_XXX fields. Typically called on Platform Backend shutdown.
CImGui.ClearRendererHandlers — Method
ClearRendererHandlers(self::Ptr{CImGui.lib.ImGuiPlatformIO})
Clear all Renderer_XXX fields. Typically called on Renderer Backend shutdown.
CImGui.ClearRequestFlags — Method
ClearRequestFlags(self::Ptr{CImGui.lib.ImGuiViewportP})
CImGui.ClearSelection — Method
ClearSelection(
self::Ptr{CImGui.lib.ImGuiInputTextCallbackData}
)
CImGui.ClearSelection — Method
ClearSelection(self::Ptr{CImGui.lib.ImGuiInputTextState})
CImGui.ClearTexData — Method
ClearTexData(self::Ptr{CImGui.lib.ImFontAtlas})
[OBSOLETE] Clear CPU-side copy of the texture data. Saves RAM once the texture has been copied to graphics memory.
CImGui.ClearText — Method
ClearText(self::Ptr{CImGui.lib.ImGuiInputTextState})
CImGui.ClearWindowSettings — Method
ClearWindowSettings(name)
CImGui.ClipWith — Method
ClipWith(self::Ptr{CImGui.lib.ImRect}, r::CImGui.lib.ImRect)
Simple version, may lead to an inverted rectangle, which is fine for Contains/Overlaps test but not for display.
CImGui.ClipWithFull — Method
ClipWithFull(
self::Ptr{CImGui.lib.ImRect},
r::CImGui.lib.ImRect
)
Full version, ensure both points are fully clipped.
CImGui.CloneOutput — Method
CloneOutput(
self::Ptr{CImGui.lib.ImDrawList}
) -> Ptr{CImGui.lib.ImDrawList}
Create a clone of the CmdBuffer/IdxBuffer/VtxBuffer. For multi-threaded rendering, consider using imgui_threaded_rendering from https://github.com/ocornut/imgui_club instead.
CImGui.CloseButton — Method
CloseButton(
id::Integer,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
Widgets: Window Decorations.
CImGui.CloseCurrentPopup — Method
CImGui.ClosePopupToLevel — Method
ClosePopupToLevel(
remaining,
restore_focus_to_window_under_popup
)
CImGui.ClosePopupsExceptModals — Method
ClosePopupsExceptModals()
CImGui.ClosePopupsOverWindow — Method
ClosePopupsOverWindow(
ref_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
restore_focus_to_window_under_popup
)
CImGui.CollapseButton — Method
CollapseButton(
id::Integer,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
dock_node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
) -> Bool
CImGui.CollapsingHeader — Function
CollapsingHeader(
label::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
CollapsingHeader(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer}
) -> Bool
If returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop().
CImGui.CollapsingHeader — Function
CollapsingHeader(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_visible::Union{Ptr{Nothing}, Ref{Bool}}
) -> Bool
CollapsingHeader(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_visible::Union{Ptr{Nothing}, Ref{Bool}},
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer}
) -> Bool
When 'pvisible != NULL': if '*pvisible==true' display an additional small close button on upper right of the header which will set the bool to false when clicked, if '*p_visible==false' don't display the header.
CImGui.ColorButton — Function
ColorButton(
desc_id,
col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> Bool
ColorButton(
desc_id,
col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
) -> Bool
ColorButton(
desc_id,
col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
Display a color square/button, hover for details, return true when pressed.
CImGui.ColorConvertFloat4ToU32 — Method
ColorConvertFloat4ToU32(
in::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> UInt32
CImGui.ColorConvertHSVtoRGB — Method
ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b)
CImGui.ColorConvertRGBtoHSV — Method
ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v)
CImGui.ColorConvertU32ToFloat4 — Method
CImGui.ColorEdit3 — Function
ColorEdit3(label, col) -> Bool
ColorEdit3(
label,
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
) -> Bool
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 v[X]' 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.
CImGui.ColorEdit4 — Function
ColorEdit4(label, col) -> Bool
ColorEdit4(
label,
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
) -> Bool
CImGui.ColorEditOptionsPopup — Method
ColorEditOptionsPopup(
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
)
CImGui.ColorPicker3 — Function
ColorPicker3(label, col) -> Bool
ColorPicker3(
label,
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
) -> Bool
CImGui.ColorPicker4 — Function
ColorPicker4(label, col) -> Bool
ColorPicker4(
label,
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
) -> Bool
ColorPicker4(
label,
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer},
ref_col
) -> Bool
CImGui.ColorPickerOptionsPopup — Method
ColorPickerOptionsPopup(
ref_col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
)
CImGui.ColorTooltip — Method
ColorTooltip(
text,
col,
flags::Union{CImGui.lib.ImGuiColorEditFlags_, Integer}
)
Color.
CImGui.Columns — Function
Columns()
Columns(count)
Columns(count, id)
Columns(count, id, borders)
Legacy Columns API (prefer using Tables!)
- You can also use SameLine(pos_x) to mimic simplified columns.
CImGui.Combo — Function
Combo(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
current_item::Union{Ptr{Nothing}, Ref{Int32}},
items_separated_by_zeros::Union{Ptr{Int8}, String}
) -> Bool
Combo(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
current_item::Union{Ptr{Nothing}, Ref{Int32}},
items_separated_by_zeros::Union{Ptr{Int8}, String},
popup_max_height_in_items::Integer
) -> Bool
Separate items with \0 within a string, end item-list with \0\0. e.g. "One\0Two\0Three\0".
CImGui.Combo — Function
Combo(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
current_item::Union{Ptr{Nothing}, Ref{Int32}},
items::Vector{String}
) -> Bool
Combo(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
current_item::Union{Ptr{Nothing}, Ref{Int32}},
items::Vector{String},
popup_max_height_in_items::Integer
) -> Bool
CImGui.CompactCache — Method
CImGui.Contains — Method
Contains(
self::Ptr{CImGui.lib.ImGuiSelectionBasicStorage},
id::Integer
) -> Bool
Query if an item id is in selection.
CImGui.ContainsWithPad — Method
ContainsWithPad(
self::Ptr{CImGui.lib.ImRect},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pad::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
CImGui.ConvertSingleModFlagToKey — Method
ConvertSingleModFlagToKey(
key::CImGui.lib.ImGuiKey
) -> CImGui.lib.ImGuiKey
CImGui.Create — Method
Create(self::Ptr{CImGui.lib.ImBitVector}, sz)
CImGui.Create — Method
Create(
self::Ptr{CImGui.lib.ImTextureData},
format::CImGui.lib.ImTextureFormat,
w,
h
)
CImGui.CreateContext — Function
CreateContext() -> Ptr{CImGui.lib.ImGuiContext}
CreateContext(
shared_font_atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
) -> Ptr{CImGui.lib.ImGuiContext}
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.
CImGui.CreateNewWindowSettings — Method
CreateNewWindowSettings(
name
) -> Ptr{CImGui.lib.ImGuiWindowSettings}
Settings - Windows.
CImGui.CursorAnimReset — Method
CursorAnimReset(self::Ptr{CImGui.lib.ImGuiInputTextState})
Cursor & Selection.
CImGui.CursorClamp — Method
CursorClamp(self::Ptr{CImGui.lib.ImGuiInputTextState})
CImGui.DataTypeApplyFromText — Function
DataTypeApplyFromText(
buf,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
format
) -> Bool
DataTypeApplyFromText(
buf,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
format,
p_data_when_empty
) -> Bool
CImGui.DataTypeApplyOp — Method
DataTypeApplyOp(
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
op,
output,
arg_1,
arg_2
)
CImGui.DataTypeClamp — Method
DataTypeClamp(
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max
) -> Bool
CImGui.DataTypeCompare — Method
DataTypeCompare(
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
arg_1,
arg_2
) -> Int32
CImGui.DataTypeFormatString — Method
DataTypeFormatString(
buf,
buf_size,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
format
) -> Int32
CImGui.DataTypeGetInfo — Method
DataTypeGetInfo(
data_type::Union{CImGui.lib.ImGuiDataType_, Integer}
) -> Ptr{CImGui.lib.ImGuiDataTypeInfo}
Data type helpers.
CImGui.DataTypeIsZero — Method
DataTypeIsZero(
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data
) -> Bool
CImGui.DeIndexAllBuffers — Method
DeIndexAllBuffers(self::Ptr{CImGui.lib.ImDrawData})
Helper to convert all buffers from indexed to non-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering!
CImGui.DebugAllocHook — Method
DebugAllocHook(
info::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDebugAllocInfo}},
frame_count,
ptr,
size
)
Debug Tools// size >= 0 : alloc, size = -1 : free.
CImGui.DebugBreakButton — Method
DebugBreakButton(label, description_of_location) -> Bool
CImGui.DebugBreakButtonTooltip — Method
DebugBreakButtonTooltip(
keyboard_only,
description_of_location
)
CImGui.DebugBreakClearData — Method
CImGui.DebugCheckVersionAndDataLayout — Method
DebugCheckVersionAndDataLayout(
version_str,
sz_io,
sz_style,
sz_vec2,
sz_vec4,
sz_drawvert,
sz_drawidx
) -> Bool
This is called by IMGUI_CHECKVERSION() macro.
CImGui.DebugDrawCursorPos — Function
DebugDrawCursorPos()
DebugDrawCursorPos(col::Integer)
CImGui.DebugDrawItemRect — Function
DebugDrawItemRect()
DebugDrawItemRect(col::Integer)
CImGui.DebugDrawLineExtents — Function
DebugDrawLineExtents()
DebugDrawLineExtents(col::Integer)
CImGui.DebugFlashStyleColor — Method
DebugFlashStyleColor(
idx::Union{CImGui.lib.ImGuiCol_, Integer}
)
CImGui.DebugHookIdInfo — Method
DebugHookIdInfo(
id::Integer,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
data_id,
data_id_end
)
CImGui.DebugLocateItem — Method
DebugLocateItem(target_id::Integer)
Call sparingly: only 1 at the same time!
CImGui.DebugLocateItemOnHover — Method
DebugLocateItemOnHover(target_id::Integer)
Only call on reaction to a mouse Hover: because only 1 at the same time!
CImGui.DebugLocateItemResolveWithLastItem — Method
DebugLocateItemResolveWithLastItem()
CImGui.DebugLog — Method
CImGui.DebugNodeColumns — Method
DebugNodeColumns(
columns::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiOldColumns}}
)
CImGui.DebugNodeDockNode — Method
DebugNodeDockNode(
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
label
)
CImGui.DebugNodeDrawCmdShowMeshAndBoundingBox — Method
DebugNodeDrawCmdShowMeshAndBoundingBox(
out_draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
draw_cmd::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawCmd}},
show_mesh,
show_aabb
)
CImGui.DebugNodeDrawList — Method
DebugNodeDrawList(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
label
)
CImGui.DebugNodeFont — Method
DebugNodeFont(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}}
)
CImGui.DebugNodeFontGlyph — Method
DebugNodeFontGlyph(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
glyph::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontGlyph}}
)
CImGui.DebugNodeFontGlyphsForSrcMask — Method
DebugNodeFontGlyphsForSrcMask(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}},
src_mask
)
CImGui.DebugNodeInputTextState — Method
DebugNodeInputTextState(
state::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiInputTextState}}
)
CImGui.DebugNodeMultiSelectState — Method
DebugNodeMultiSelectState(
state::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiMultiSelectState}}
)
CImGui.DebugNodePlatformMonitor — Method
DebugNodePlatformMonitor(
monitor::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiPlatformMonitor}},
label,
idx
)
CImGui.DebugNodeStorage — Method
DebugNodeStorage(
storage::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStorage}},
label
)
CImGui.DebugNodeTabBar — Method
DebugNodeTabBar(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
label
)
CImGui.DebugNodeTable — Method
DebugNodeTable(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.DebugNodeTableSettings — Method
DebugNodeTableSettings(
settings::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableSettings}},
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.DebugNodeTexture — Function
DebugNodeTexture(
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
int_id
)
DebugNodeTexture(
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
int_id,
highlight_rect::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlasRect}}
)
ID used to facilitate persisting the "current" texture.
CImGui.DebugNodeTypingSelectState — Method
DebugNodeTypingSelectState(
state::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTypingSelectState}}
)
CImGui.DebugNodeViewport — Method
DebugNodeViewport(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}}
)
CImGui.DebugNodeWindow — Method
DebugNodeWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
label
)
CImGui.DebugNodeWindowSettings — Method
DebugNodeWindowSettings(
settings::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindowSettings}}
)
CImGui.DebugNodeWindowsList — Method
DebugNodeWindowsList(
windows::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVector_ImGuiWindowPtr}},
label
)
CImGui.DebugRenderKeyboardPreview — Method
DebugRenderKeyboardPreview(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}}
)
CImGui.DebugRenderViewportThumbnail — Method
DebugRenderViewportThumbnail(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}},
bb::CImGui.lib.ImRect
)
CImGui.DebugStartItemPicker — Method
DebugStartItemPicker()
CImGui.DebugTextEncoding — Method
DebugTextEncoding(text)
Debug Utilities
- Your main debugging friend is the ShowMetricsWindow() function.
- Interactive tools are all accessible from the 'Dear ImGui Demo->Tools' menu.
- Read https://github.com/ocornut/imgui/wiki/Debug-Tools for a description of all available debug tools.
CImGui.DebugTextUnformattedWithLocateItem — Method
DebugTextUnformattedWithLocateItem(line_begin, line_end)
CImGui.DebugTextureIDToU64 — Method
DebugTextureIDToU64(tex_id::UInt64) -> UInt64
CImGui.DeclColumns — Method
DeclColumns(
self::Ptr{CImGui.lib.ImGuiMenuColumns},
w_icon,
w_label,
w_shortcut,
w_mark
) -> Float32
CImGui.DeleteChars — Method
DeleteChars(
self::Ptr{CImGui.lib.ImGuiInputTextCallbackData},
pos,
bytes_count
)
CImGui.DemoMarker — Method
DemoMarker(file, line, section)
Demo Doc Marker for e.g. imgui_explorer.
CImGui.Destroy — Method
Destructor for ImColor
CImGui.Destroy — Method
Destructor for ImDrawCmd
CImGui.Destroy — Method
Destructor for ImDrawDataBuilder
CImGui.Destroy — Method
Destructor for ImDrawData
CImGui.Destroy — Method
Destructor for ImDrawListSharedData
CImGui.Destroy — Method
Destructor for ImDrawListSplitter
CImGui.Destroy — Method
Destructor for ImDrawList
CImGui.Destroy — Method
Destructor for ImFontAtlasBuilder
CImGui.Destroy — Method
Destructor for ImFontAtlasRect
CImGui.Destroy — Method
Destructor for ImFontAtlas
CImGui.Destroy — Method
Destructor for ImFontBaked
CImGui.Destroy — Method
Destructor for ImFontConfig
CImGui.Destroy — Method
Destructor for ImFontGlyphRangesBuilder
CImGui.Destroy — Method
Destructor for ImFontGlyph
CImGui.Destroy — Method
Destructor for ImFontLoader
CImGui.Destroy — Method
Destructor for ImFont
CImGui.Destroy — Method
Destructor for ImGuiBoxSelectState
CImGui.Destroy — Method
Destructor for ImGuiComboPreviewData
CImGui.Destroy — Method
Destructor for ImGuiContextHook
CImGui.Destroy — Method
Destructor for ImGuiContext
CImGui.Destroy — Method
Destructor for ImGuiDebugAllocInfo
CImGui.Destroy — Method
Destructor for ImGuiDebugItemPathQuery
CImGui.Destroy — Method
Destructor for ImGuiDockContext
CImGui.Destroy — Method
Destructor for ImGuiDockNode
CImGui.Destroy — Method
Destructor for ImGuiErrorRecoveryState
CImGui.Destroy — Method
Destructor for ImGuiIDStackTool
CImGui.Destroy — Method
Destructor for ImGuiIO
CImGui.Destroy — Method
Destructor for ImGuiInputEvent
CImGui.Destroy — Method
Destructor for ImGuiInputTextCallbackData
CImGui.Destroy — Method
Destructor for ImGuiInputTextDeactivatedState
CImGui.Destroy — Method
Destructor for ImGuiInputTextState
CImGui.Destroy — Method
Destructor for ImGuiKeyOwnerData
CImGui.Destroy — Method
Destructor for ImGuiKeyRoutingData
CImGui.Destroy — Method
Destructor for ImGuiKeyRoutingTable
CImGui.Destroy — Method
Destructor for ImGuiLastItemData
CImGui.Destroy — Method
Destructor for ImGuiListClipperData
CImGui.Destroy — Method
Destructor for ImGuiListClipper
CImGui.Destroy — Method
Destructor for ImGuiMenuColumns
CImGui.Destroy — Method
Destructor for ImGuiMultiSelectState
CImGui.Destroy — Method
Destructor for ImGuiMultiSelectTempData
CImGui.Destroy — Method
Destructor for ImGuiNavItemData
CImGui.Destroy — Method
Destructor for ImGuiNextItemData
CImGui.Destroy — Method
Destructor for ImGuiNextWindowData
CImGui.Destroy — Method
Destructor for ImGuiOldColumnData
CImGui.Destroy — Method
Destructor for ImGuiOldColumns
CImGui.Destroy — Method
Destructor for ImGuiOnceUponAFrame
CImGui.Destroy — Method
Destructor for ImGuiPackedDate
CImGui.Destroy — Method
Destructor for ImGuiPayload
CImGui.Destroy — Method
Destructor for ImGuiPlatformIO
CImGui.Destroy — Method
Destructor for ImGuiPlatformImeData
CImGui.Destroy — Method
Destructor for ImGuiPlatformMonitor
CImGui.Destroy — Method
Destructor for ImGuiPopupData
CImGui.Destroy — Method
Destructor for ImGuiPtrOrIndex
CImGui.Destroy — Method
Destructor for ImGuiSelectionBasicStorage
CImGui.Destroy — Method
Destructor for ImGuiSelectionExternalStorage
CImGui.Destroy — Method
Destructor for ImGuiSettingsHandler
CImGui.Destroy — Method
Destructor for ImGuiStackLevelInfo
CImGui.Destroy — Method
Destructor for ImGuiStoragePair
CImGui.Destroy — Method
Destructor for ImGuiStyleMod
CImGui.Destroy — Method
Destructor for ImGuiStyle
CImGui.Destroy — Method
Destructor for ImGuiTabBar
CImGui.Destroy — Method
Destructor for ImGuiTabItem
CImGui.Destroy — Method
Destructor for ImGuiTableColumnSettings
CImGui.Destroy — Method
Destructor for ImGuiTableColumnSortSpecs
CImGui.Destroy — Method
Destructor for ImGuiTableColumn
CImGui.Destroy — Method
Destructor for ImGuiTableInstanceData
CImGui.Destroy — Method
Destructor for ImGuiTableSettings
CImGui.Destroy — Method
Destructor for ImGuiTableSortSpecs
CImGui.Destroy — Method
Destructor for ImGuiTableTempData
CImGui.Destroy — Method
Destructor for ImGuiTable
CImGui.Destroy — Method
Destructor for ImGuiTextBuffer
CImGui.Destroy — Method
Destructor for ImGuiTextFilter
CImGui.Destroy — Method
Destructor for ImGuiTextRange
CImGui.Destroy — Method
Destructor for ImGuiTypingSelectState
CImGui.Destroy — Method
Destructor for ImGuiViewportP
CImGui.Destroy — Method
Destructor for ImGuiViewport
CImGui.Destroy — Method
Destructor for ImGuiWindowClass
CImGui.Destroy — Method
Destructor for ImGuiWindowSettings
CImGui.Destroy — Method
Destructor for ImGuiWindow
CImGui.Destroy — Method
Destructor for ImRect
CImGui.Destroy — Method
Destructor for ImTextureData
CImGui.Destroy — Method
Destructor for ImTextureRef
CImGui.Destroy — Method
Destructor for ImVec1
CImGui.Destroy — Method
Destructor for ImVec2ih
CImGui.Destroy — Method
Destructor for ImVec2i
CImGui.Destroy — Method
Destructor for ImVec2
CImGui.Destroy — Method
Destructor for ImVec4
CImGui.DestroyContext — Function
DestroyContext()
DestroyContext(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
NULL = destroy current context.
CImGui.DestroyPixels — Method
DestroyPixels(self::Ptr{CImGui.lib.ImTextureData})
CImGui.DestroyPlatformWindow — Method
DestroyPlatformWindow(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}}
)
CImGui.DestroyPlatformWindows — Method
DestroyPlatformWindows()
Call DestroyWindow platform functions for all viewports. call from backend Shutdown() if you need to close platform windows before imgui shutdown. otherwise will be called by DestroyContext().
CImGui.DockBuilderAddNode — Function
DockBuilderAddNode() -> UInt32
DockBuilderAddNode(node_id::Integer) -> UInt32
DockBuilderAddNode(
node_id::Integer,
flags::Union{CImGui.lib.ImGuiDockNodeFlags_, Integer}
) -> UInt32
CImGui.DockBuilderCopyDockSpace — Method
DockBuilderCopyDockSpace(
src_dockspace_id::Integer,
dst_dockspace_id::Integer,
in_window_remap_pairs::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVector_const_charPtr}}
)
CImGui.DockBuilderCopyNode — Method
DockBuilderCopyNode(
src_node_id::Integer,
dst_node_id::Integer,
out_node_remap_pairs::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVector_ImGuiID}}
)
CImGui.DockBuilderCopyWindowSettings — Method
DockBuilderCopyWindowSettings(src_name, dst_name)
CImGui.DockBuilderDockWindow — Method
DockBuilderDockWindow(window_name, node_id::Integer)
Docking - Builder function needs to be generally called before the node is used/submitted.
- The DockBuilderXXX functions are designed to eventually become a public API, but it is too early to expose it and guarantee stability.
- Do not hold on ImGuiDockNode* pointers! They may be invalidated by any split/merge/remove operation and every frame.
- To create a DockSpace() node, make sure to set the ImGuiDockNodeFlagsDockSpace flag when calling DockBuilderAddNode(). You can create dockspace nodes (attached to a window) _or floating nodes (carry its own window) with this API.
- DockBuilderSplitNode() create 2 child nodes within 1 node. The initial node becomes a parent node.
- If you intend to split the node immediately after creation using DockBuilderSplitNode(), make sure to call DockBuilderSetNodeSize() beforehand. If you don't, the resulting split sizes may not be reliable.
- Call DockBuilderFinish() after you are done.
CImGui.DockBuilderFinish — Method
DockBuilderFinish(node_id::Integer)
CImGui.DockBuilderGetCentralNode — Method
DockBuilderGetCentralNode(
node_id::Integer
) -> Ptr{CImGui.lib.ImGuiDockNode}
CImGui.DockBuilderGetNode — Method
DockBuilderGetNode(
node_id::Integer
) -> Ptr{CImGui.lib.ImGuiDockNode}
CImGui.DockBuilderRemoveNode — Method
DockBuilderRemoveNode(node_id::Integer)
Remove node and all its child, undock all windows.
CImGui.DockBuilderRemoveNodeChildNodes — Method
DockBuilderRemoveNodeChildNodes(node_id::Integer)
Remove all split/hierarchy. All remaining docked windows will be re-docked to the remaining root node (node_id).
CImGui.DockBuilderRemoveNodeDockedWindows — Function
DockBuilderRemoveNodeDockedWindows(node_id::Integer)
DockBuilderRemoveNodeDockedWindows(
node_id::Integer,
clear_settings_refs
)
CImGui.DockBuilderSetNodePos — Method
DockBuilderSetNodePos(
node_id::Integer,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.DockBuilderSetNodeSize — Method
DockBuilderSetNodeSize(
node_id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.DockBuilderSplitNode — Method
DockBuilderSplitNode(
node_id::Integer,
split_dir::CImGui.lib.ImGuiDir,
size_ratio_for_node_at_dir,
out_id_at_dir::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
out_id_at_opposite_dir::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}}
) -> UInt32
Create 2 child nodes in this parent node.
CImGui.DockContextCalcDropPosForDocking — Method
DockContextCalcDropPosForDocking(
target::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
target_node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
payload_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
payload_node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
split_dir::CImGui.lib.ImGuiDir,
split_outer,
out_pos::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}}
) -> Bool
CImGui.DockContextClearNodes — Method
DockContextClearNodes(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
root_id::Integer,
clear_settings_refs
)
Use root_id==0 to clear all.
CImGui.DockContextEndFrame — Method
DockContextEndFrame(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
CImGui.DockContextFindNodeByID — Method
DockContextFindNodeByID(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
id::Integer
) -> Ptr{CImGui.lib.ImGuiDockNode}
CImGui.DockContextGenNodeID — Method
DockContextGenNodeID(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
) -> UInt32
CImGui.DockContextInitialize — Method
DockContextInitialize(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
Docking (some functions are only declared in imgui.cpp, see Docking section).
CImGui.DockContextNewFrameUpdateDocking — Method
DockContextNewFrameUpdateDocking(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
CImGui.DockContextNewFrameUpdateUndocking — Method
DockContextNewFrameUpdateUndocking(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
CImGui.DockContextProcessUndockNode — Method
DockContextProcessUndockNode(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
)
CImGui.DockContextProcessUndockWindow — Function
DockContextProcessUndockWindow(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
DockContextProcessUndockWindow(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
clear_persistent_docking_ref
)
CImGui.DockContextQueueDock — Method
DockContextQueueDock(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
target::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
target_node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
payload::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
split_dir::CImGui.lib.ImGuiDir,
split_ratio,
split_outer
)
CImGui.DockContextQueueUndockNode — Method
DockContextQueueUndockNode(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
)
CImGui.DockContextQueueUndockWindow — Method
DockContextQueueUndockWindow(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.DockContextRebuildNodes — Method
DockContextRebuildNodes(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
CImGui.DockContextShutdown — Method
DockContextShutdown(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
CImGui.DockNodeBeginAmendTabBar — Method
DockNodeBeginAmendTabBar(
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
) -> Bool
CImGui.DockNodeEndAmendTabBar — Method
DockNodeEndAmendTabBar()
CImGui.DockNodeGetDepth — Method
DockNodeGetDepth(
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
) -> Int32
CImGui.DockNodeGetRootNode — Method
DockNodeGetRootNode(
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
) -> Ptr{CImGui.lib.ImGuiDockNode}
CImGui.DockNodeGetWindowMenuButtonId — Method
DockNodeGetWindowMenuButtonId(
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
) -> UInt32
CImGui.DockNodeIsInHierarchyOf — Method
DockNodeIsInHierarchyOf(
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
parent::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}}
) -> Bool
CImGui.DockNodeWindowMenuHandler_Default — Method
DockNodeWindowMenuHandler_Default(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}}
)
CImGui.DockSpace — Function
DockSpace(dockspace_id::Integer) -> UInt32
DockSpace(
dockspace_id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> UInt32
DockSpace(
dockspace_id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiDockNodeFlags_, Integer}
) -> UInt32
DockSpace(
dockspace_id::Integer,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiDockNodeFlags_, Integer},
window_class::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindowClass}}
) -> UInt32
Docking
- Read https://github.com/ocornut/imgui/wiki/Docking for details.
- Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable.
- You can use many Docking facilities without calling any API.
- Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking.
- Drag from window menu button (upper-left button) to undock an entire node (all windows).
- When io.ConfigDockingWithShift == true, you instead need to hold SHIFT to enable docking.
- DockSpaceOverViewport:
- This is a helper to create an invisible window covering a viewport, then submit a DockSpace() into it.
- Most applications can simply call DockSpaceOverViewport() once to allow docking windows into e.g. the edge of your screen. e.g. ImGui::NewFrame(); ImGui::DockSpaceOverViewport(); // Create a dockspace in main viewport. or: ImGui::NewFrame(); ImGui::DockSpaceOverViewport(0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode); // Create a dockspace in main viewport, central node is transparent.
- Dockspaces:
- A dockspace is an explicit dock node within an existing window.
- IMPORTANT: Dockspaces need to be submitted before any window they can host. Submit them early in your frame!
- IMPORTANT: Dockspaces need to be kept alive if hidden, otherwise windows docked into it will be undocked. If you have e.g. multiple tabs with a dockspace inside each tab: submit the non-visible dockspaces with ImGuiDockNodeFlags_KeepAliveOnly.
- See 'Demo->Examples->Dockspace' or 'Demo->Examples->Documents' for more detailed demos.
- Programmatic docking:
- There is no public API yet other than the very limited SetNextWindowDockID() function. Sorry for that!
- Read https://github.com/ocornut/imgui/wiki/Docking for examples of how to use current internal API.
CImGui.DockSpaceOverViewport — Function
DockSpaceOverViewport() -> UInt32
DockSpaceOverViewport(dockspace_id::Integer) -> UInt32
DockSpaceOverViewport(
dockspace_id::Integer,
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}}
) -> UInt32
DockSpaceOverViewport(
dockspace_id::Integer,
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}},
flags::Union{CImGui.lib.ImGuiDockNodeFlags_, Integer}
) -> UInt32
DockSpaceOverViewport(
dockspace_id::Integer,
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}},
flags::Union{CImGui.lib.ImGuiDockNodeFlags_, Integer},
window_class::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindowClass}}
) -> UInt32
CImGui.DragBehavior — Method
DragBehavior(
id::Integer,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_v,
v_speed,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragFloat — Function
DragFloat(label, v) -> Bool
DragFloat(label, v, v_speed) -> Bool
DragFloat(label, v, v_speed, v_min) -> Bool
DragFloat(label, v, v_speed, v_min, v_max) -> Bool
DragFloat(label, v, v_speed, v_min, v_max, format) -> Bool
DragFloat(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
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 v[X]' 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 (vspeed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For keyboard/gamepad navigation, minimum speed is Max(vspeed, minimumstepatgivenprecision).
- Use vmin < vmax to clamp edits to given limits. Note that Ctrl+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used.
- Use vmax = FLTMAX / INTMAX etc to avoid clamping to a maximum, same with vmin = -FLTMAX / INTMIN 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 theImGuiSliderFlags flags=0' argument. If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361// If vmin >= vmax we have no bound.
CImGui.DragFloat2 — Function
DragFloat2(label, v) -> Bool
DragFloat2(label, v, v_speed) -> Bool
DragFloat2(label, v, v_speed, v_min) -> Bool
DragFloat2(label, v, v_speed, v_min, v_max) -> Bool
DragFloat2(label, v, v_speed, v_min, v_max, format) -> Bool
DragFloat2(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragFloat3 — Function
DragFloat3(label, v) -> Bool
DragFloat3(label, v, v_speed) -> Bool
DragFloat3(label, v, v_speed, v_min) -> Bool
DragFloat3(label, v, v_speed, v_min, v_max) -> Bool
DragFloat3(label, v, v_speed, v_min, v_max, format) -> Bool
DragFloat3(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragFloat4 — Function
DragFloat4(label, v) -> Bool
DragFloat4(label, v, v_speed) -> Bool
DragFloat4(label, v, v_speed, v_min) -> Bool
DragFloat4(label, v, v_speed, v_min, v_max) -> Bool
DragFloat4(label, v, v_speed, v_min, v_max, format) -> Bool
DragFloat4(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragFloatRange2 — Function
DragFloatRange2(label, v_current_min, v_current_max) -> Bool
DragFloatRange2(
label,
v_current_min,
v_current_max,
v_speed
) -> Bool
DragFloatRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min
) -> Bool
DragFloatRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max
) -> Bool
DragFloatRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max,
format
) -> Bool
DragFloatRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max,
format,
format_max
) -> Bool
DragFloatRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max,
format,
format_max,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragInt — Function
DragInt(label, v) -> Bool
DragInt(label, v, v_speed) -> Bool
DragInt(label, v, v_speed, v_min) -> Bool
DragInt(label, v, v_speed, v_min, v_max) -> Bool
DragInt(label, v, v_speed, v_min, v_max, format) -> Bool
DragInt(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
If vmin >= vmax we have no bound.
CImGui.DragInt2 — Function
DragInt2(label, v) -> Bool
DragInt2(label, v, v_speed) -> Bool
DragInt2(label, v, v_speed, v_min) -> Bool
DragInt2(label, v, v_speed, v_min, v_max) -> Bool
DragInt2(label, v, v_speed, v_min, v_max, format) -> Bool
DragInt2(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragInt3 — Function
DragInt3(label, v) -> Bool
DragInt3(label, v, v_speed) -> Bool
DragInt3(label, v, v_speed, v_min) -> Bool
DragInt3(label, v, v_speed, v_min, v_max) -> Bool
DragInt3(label, v, v_speed, v_min, v_max, format) -> Bool
DragInt3(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragInt4 — Function
DragInt4(label, v) -> Bool
DragInt4(label, v, v_speed) -> Bool
DragInt4(label, v, v_speed, v_min) -> Bool
DragInt4(label, v, v_speed, v_min, v_max) -> Bool
DragInt4(label, v, v_speed, v_min, v_max, format) -> Bool
DragInt4(
label,
v,
v_speed,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragIntRange2 — Function
DragIntRange2(label, v_current_min, v_current_max) -> Bool
DragIntRange2(
label,
v_current_min,
v_current_max,
v_speed
) -> Bool
DragIntRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min
) -> Bool
DragIntRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max
) -> Bool
DragIntRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max,
format
) -> Bool
DragIntRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max,
format,
format_max
) -> Bool
DragIntRange2(
label,
v_current_min,
v_current_max,
v_speed,
v_min,
v_max,
format,
format_max,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragScalar — Function
DragScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data
) -> Bool
DragScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
v_speed
) -> Bool
DragScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
v_speed,
p_min
) -> Bool
DragScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
v_speed,
p_min,
p_max
) -> Bool
DragScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
v_speed,
p_min,
p_max,
format
) -> Bool
DragScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
v_speed,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.DragScalarN — Function
DragScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components
) -> Bool
DragScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
v_speed
) -> Bool
DragScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
v_speed,
p_min
) -> Bool
DragScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
v_speed,
p_min,
p_max
) -> Bool
DragScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
v_speed,
p_min,
p_max,
format
) -> Bool
DragScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
v_speed,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.Draw — Function
Draw(self::Ptr{CImGui.lib.ImGuiTextFilter}) -> Bool
Draw(self::Ptr{CImGui.lib.ImGuiTextFilter}, label) -> Bool
Draw(
self::Ptr{CImGui.lib.ImGuiTextFilter},
label,
width
) -> Bool
Helper calling InputText+Build.
CImGui.Dummy — Method
Dummy(width, height)
Convenience wrapper for Dummy().
CImGui.Dummy — Method
Dummy(size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T})
Add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into.
CImGui.Empty — Method
Empty(self::Ptr{CImGui.lib.ImGuiTextBuffer}) -> Bool
CImGui.Empty — Method
Empty(self::Ptr{CImGui.lib.ImGuiTextRange}) -> Bool
CImGui.End — Method
End(self::Ptr{CImGui.lib.ImGuiListClipper})
Automatically called on the last call of Step() that returns false.
CImGui.End — Method
End(self::Ptr{CImGui.lib.ImGuiTextBuffer}) -> Ptr{Int8}
Buf is zero-terminated, so end() will point on the zero-terminator.
CImGui.End — Method
End()
CImGui.EndBoxSelect — Method
EndBoxSelect(
scope_rect::CImGui.lib.ImRect,
ms_flags::Union{CImGui.lib.ImGuiMultiSelectFlags_, Integer}
)
CImGui.EndChild — Method
EndChild()
CImGui.EndColumns — Method
EndColumns()
Close columns.
CImGui.EndCombo — Method
CImGui.EndComboPreview — Method
CImGui.EndDisabled — Method
EndDisabled()
CImGui.EndDisabledOverrideReenable — Method
EndDisabledOverrideReenable()
CImGui.EndDragDropSource — Method
EndDragDropSource()
Only call EndDragDropSource() if BeginDragDropSource() returns true!
CImGui.EndDragDropTarget — Method
EndDragDropTarget()
Only call EndDragDropTarget() if BeginDragDropTarget() returns true!
CImGui.EndErrorTooltip — Method
CImGui.EndFrame — Method
EndFrame()
Ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without Render()... but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all!
CImGui.EndGroup — Method
EndGroup()
Unlock horizontal starting position + capture the whole group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.).
CImGui.EndListBox — Method
CImGui.EndMainMenuBar — Method
CImGui.EndMenu — Method
CImGui.EndMenuBar — Method
CImGui.EndMultiSelect — Method
EndMultiSelect() -> Ptr{CImGui.lib.ImGuiMultiSelectIO}
CImGui.EndPopup — Method
CImGui.EndTabBar — Method
CImGui.EndTabItem — Method
CImGui.EndTable — Method
CImGui.EndTooltip — Method
EndTooltip()
Only call EndTooltip() if BeginTooltip()/BeginItemTooltip() returns true!
CImGui.ErrorCheckEndFrameFinalizeErrorTooltip — Method
ErrorCheckEndFrameFinalizeErrorTooltip()
CImGui.ErrorCheckUsingSetCursorPosToExtendParentBoundaries — Method
ErrorCheckUsingSetCursorPosToExtendParentBoundaries()
CImGui.ErrorLog — Method
ErrorLog(msg) -> Bool
Error handling, State Recovery.
CImGui.ErrorRecoveryStoreState — Method
ErrorRecoveryStoreState(
state_out::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiErrorRecoveryState}}
)
CImGui.ErrorRecoveryTryToRecoverState — Method
ErrorRecoveryTryToRecoverState(
state_in::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiErrorRecoveryState}}
)
CImGui.ErrorRecoveryTryToRecoverWindowState — Method
ErrorRecoveryTryToRecoverWindowState(
state_in::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiErrorRecoveryState}}
)
CImGui.ExtendHitBoxWhenNearViewportEdge — Method
ExtendHitBoxWhenNearViewportEdge(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
bb::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}},
threshold,
axis::CImGui.lib.ImGuiAxis
)
CImGui.FindBestWindowPosForPopup — Method
FindBestWindowPosForPopup(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> CImGui.lib.ImVec2
CImGui.FindBestWindowPosForPopupEx — Method
FindBestWindowPosForPopupEx(
ref_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
last_dir::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDir}},
r_outer::CImGui.lib.ImRect,
r_avoid::CImGui.lib.ImRect,
policy::CImGui.lib.ImGuiPopupPositionPolicy
) -> CImGui.lib.ImVec2
CImGui.FindBlockingModal — Method
FindBlockingModal(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.FindBottomMostVisibleWindowWithinBeginStack — Method
FindBottomMostVisibleWindowWithinBeginStack(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.FindFrontMostVisibleChildWindow — Method
FindFrontMostVisibleChildWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.FindGlyph — Method
FindGlyph(
self::Ptr{CImGui.lib.ImFontBaked},
c::UInt16
) -> Ptr{CImGui.lib.ImFontGlyph}
Return U+FFFD glyph if requested glyph doesn't exists.
CImGui.FindGlyphNoFallback — Method
FindGlyphNoFallback(
self::Ptr{CImGui.lib.ImFontBaked},
c::UInt16
) -> Ptr{CImGui.lib.ImFontGlyph}
Return NULL if glyph doesn't exist.
CImGui.FindHoveredViewportFromPlatformWindowStack — Method
FindHoveredViewportFromPlatformWindowStack(
mouse_platform_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Ptr{CImGui.lib.ImGuiViewportP}
CImGui.FindOrCreateColumns — Method
FindOrCreateColumns(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
id::Integer
) -> Ptr{CImGui.lib.ImGuiOldColumns}
CImGui.FindRenderedTextEnd — Function
FindRenderedTextEnd(text) -> Ptr{Int8}
FindRenderedTextEnd(text, text_end) -> Ptr{Int8}
Find the optional ## from which we stop displaying text.
CImGui.FindSettingsHandler — Method
FindSettingsHandler(
type_name
) -> Ptr{CImGui.lib.ImGuiSettingsHandler}
CImGui.FindViewportByID — Method
FindViewportByID(
viewport_id::Integer
) -> Ptr{CImGui.lib.ImGuiViewport}
This is a helper for backends.
CImGui.FindViewportByPlatformHandle — Method
FindViewportByPlatformHandle(
platform_handle
) -> Ptr{CImGui.lib.ImGuiViewport}
This is a helper for backends. the type platform_handle is decided by the backend (e.g. HWND, MyWindow, GLFWwindow etc.).
CImGui.FindWindowByID — Method
FindWindowByID(id::Integer) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.FindWindowByName — Method
FindWindowByName(name) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.FindWindowDisplayIndex — Method
FindWindowDisplayIndex(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Int32
CImGui.FindWindowSettingsByID — Method
FindWindowSettingsByID(
id::Integer
) -> Ptr{CImGui.lib.ImGuiWindowSettings}
CImGui.FindWindowSettingsByWindow — Method
FindWindowSettingsByWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Ptr{CImGui.lib.ImGuiWindowSettings}
CImGui.FixupKeyChord — Method
FixupKeyChord(key_chord::Integer) -> Int32
CImGui.FocusItem — Method
FocusItem()
Focus/Activation This should be part of a larger set of API: FocusItem(offset = -1), FocusItemByID(id), ActivateItem(offset = -1), ActivateItemByID(id) etc. which are Much harder to design and implement than expected. I have a couple of private branches on this matter but it's not simple. For now implementing the easy ones.// Focus last item (no selection/activation).
CImGui.FocusTopMostWindowUnderOne — Method
FocusTopMostWindowUnderOne(
under_this_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
ignore_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
filter_viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}},
flags::Union{CImGui.lib.ImGuiFocusRequestFlags_, Integer}
)
CImGui.FocusWindow — Function
FocusWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
FocusWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
flags::Union{CImGui.lib.ImGuiFocusRequestFlags_, Integer}
)
Windows: Display Order and Focus Order.
CImGui.FromIndices — Method
FromIndices(min, max) -> CImGui.lib.ImGuiListClipperRange
CImGui.FromPositions — Method
FromPositions(
y1,
y2,
off_min,
off_max
) -> CImGui.lib.ImGuiListClipperRange
CImGui.GcAwakeTransientWindowBuffers — Method
GcAwakeTransientWindowBuffers(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.GcCompactTransientMiscBuffers — Method
GcCompactTransientMiscBuffers()
Garbage collection.
CImGui.GcCompactTransientWindowBuffers — Method
GcCompactTransientWindowBuffers(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.GetActiveID — Method
GetActiveID() -> UInt32
CImGui.GetAllocatorFunctions — Method
GetAllocatorFunctions(
p_alloc_func::Union{Ptr{Nothing}, Ref{Ptr{Nothing}}},
p_free_func::Union{Ptr{Nothing}, Ref{Ptr{Nothing}}},
p_user_data
)
CImGui.GetArea — Method
GetArea(self::Ptr{CImGui.lib.ImRect}) -> Float32
CImGui.GetBL — Method
GetBL(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec2
Bottom-left.
CImGui.GetBR — Method
GetBR(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec2
Bottom-right.
CImGui.GetBackgroundDrawList — Function
GetBackgroundDrawList() -> Ptr{CImGui.lib.ImDrawList}
GetBackgroundDrawList(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}}
) -> Ptr{CImGui.lib.ImDrawList}
Background/Foreground Draw Lists// get background draw list for the given viewport or viewport associated to the current window. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents.
CImGui.GetBit — Method
GetBit(
self::Ptr{CImGui.lib.ImFontGlyphRangesBuilder},
n
) -> Bool
Get bit n in the array.
CImGui.GetBool — Function
GetBool(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Bool
GetBool(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Bool
CImGui.GetBoolRef — Function
GetBoolRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Ptr{Bool}
GetBoolRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Ptr{Bool}
CImGui.GetBoxSelectState — Method
GetBoxSelectState(
id::Integer
) -> Ptr{CImGui.lib.ImGuiBoxSelectState}
CImGui.GetBuildWorkRect — Method
GetBuildWorkRect(
self::Ptr{CImGui.lib.ImGuiViewportP}
) -> CImGui.lib.ImRect
CImGui.GetCenter — Method
CImGui.GetCenter — Method
GetCenter(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec2
CImGui.GetCharAdvance — Method
GetCharAdvance(
self::Ptr{CImGui.lib.ImFontBaked},
c::UInt16
) -> Float32
CImGui.GetClipRectMax — Method
GetClipRectMax(
self::Ptr{CImGui.lib.ImDrawList}
) -> CImGui.lib.ImVec2
CImGui.GetClipRectMin — Method
GetClipRectMin(
self::Ptr{CImGui.lib.ImDrawList}
) -> CImGui.lib.ImVec2
CImGui.GetClipboardText — Method
GetClipboardText() -> Ptr{Int8}
Clipboard Utilities
- Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard.
CImGui.GetColorU32 — Function
GetColorU32(
idx::Union{CImGui.lib.ImGuiCol_, Integer}
) -> UInt32
GetColorU32(
idx::Union{CImGui.lib.ImGuiCol_, Integer},
alpha_mul::Real
) -> UInt32
Retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList.
CImGui.GetColorU32 — Function
GetColorU32(col::Integer) -> UInt32
GetColorU32(col::Integer, alpha_mul::Real) -> UInt32
Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList.
CImGui.GetColorU32 — Method
GetColorU32(
col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> UInt32
Retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList.
CImGui.GetColumnIndex — Method
CImGui.GetColumnNormFromOffset — Method
GetColumnNormFromOffset(
columns::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiOldColumns}},
offset
) -> Float32
CImGui.GetColumnOffset — Function
GetColumnOffset() -> Float32
GetColumnOffset(column_index) -> Float32
Get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f.
CImGui.GetColumnOffsetFromNorm — Method
GetColumnOffsetFromNorm(
columns::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiOldColumns}},
offset_norm
) -> Float32
CImGui.GetColumnSettings — Method
GetColumnSettings(
self::Ptr{CImGui.lib.ImGuiTableSettings}
) -> Ptr{CImGui.lib.ImGuiTableColumnSettings}
CImGui.GetColumnWidth — Function
GetColumnWidth() -> Float32
GetColumnWidth(column_index) -> Float32
Get column width (in pixels). pass -1 to use current column.
CImGui.GetColumnsCount — Method
GetColumnsCount() -> Int32
CImGui.GetColumnsID — Method
GetColumnsID(str_id, count) -> UInt32
CImGui.GetContentRegionAvail — Method
GetContentRegionAvail() -> CImGui.lib.ImVec2
Available space from current position. THIS IS YOUR BEST FRIEND.
CImGui.GetCurrentContext — Method
GetCurrentContext() -> Ptr{CImGui.lib.ImGuiContext}
CImGui.GetCurrentFocusScope — Method
GetCurrentFocusScope() -> UInt32
Focus scope we are outputting into, set by PushFocusScope().
CImGui.GetCurrentTabBar — Method
GetCurrentTabBar() -> Ptr{CImGui.lib.ImGuiTabBar}
Tab Bars.
CImGui.GetCurrentTable — Method
GetCurrentTable() -> Ptr{CImGui.lib.ImGuiTable}
Tables: Internals.
CImGui.GetCurrentWindow — Method
GetCurrentWindow() -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.GetCurrentWindowRead — Method
GetCurrentWindowRead() -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.GetCursorPos — Method
GetCursorPos(
self::Ptr{CImGui.lib.ImGuiInputTextState}
) -> Int32
CImGui.GetCursorPos — Method
GetCursorPos() -> CImGui.lib.ImVec2
[window-local] cursor position in window-local coordinates. This is not your best friend.
CImGui.GetCursorPosX — Method
CImGui.GetCursorPosY — Method
CImGui.GetCursorScreenPos — Method
GetCursorScreenPos() -> CImGui.lib.ImVec2
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.// cursor position, absolute coordinates. THIS IS YOUR BEST FRIEND (prefer using this rather than GetCursorPos(), also more useful to work with ImDrawList API).
CImGui.GetCursorStartPos — Method
GetCursorStartPos() -> CImGui.lib.ImVec2
[window-local] initial cursor position, in window-local coordinates. Call GetCursorScreenPos() after Begin() to get the absolute coordinates version.
CImGui.GetCustomRect — Method
GetCustomRect(
self::Ptr{CImGui.lib.ImFontAtlas},
id::Integer,
out_r::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlasRect}}
) -> Bool
Get rectangle coordinates for current texture. Valid immediately, never store this (read above)!
CImGui.GetDebugName — Method
CImGui.GetDebugName — Method
GetDebugName(
self::Ptr{CImGui.lib.ImGuiViewport}
) -> Ptr{Int8}
CImGui.GetDefaultFont — Method
GetDefaultFont() -> Ptr{CImGui.lib.ImFont}
CImGui.GetDragDropPayload — Method
GetDragDropPayload() -> Ptr{CImGui.lib.ImGuiPayload}
Peek directly into the current payload from anywhere. returns NULL when drag and drop is finished or inactive. use ImGuiPayload::IsDataType() to test for the payload type.
CImGui.GetDrawData — Method
GetDrawData() -> Ptr{CImGui.lib.ImDrawData}
Valid after Render() and until the next call to NewFrame(). Call ImGuiImplXXXXRenderDrawData() function in your Renderer Backend to render.
CImGui.GetDrawListSharedData — Method
GetDrawListSharedData(
) -> Ptr{CImGui.lib.ImDrawListSharedData}
You may use this when creating your own ImDrawList instances.
CImGui.GetFloat — Function
GetFloat(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Float32
GetFloat(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Float32
CImGui.GetFloatRef — Function
GetFloatRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Ptr{Float32}
GetFloatRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Ptr{Float32}
CImGui.GetFocusID — Method
CImGui.GetFont — Method
CImGui.GetFontBaked — Function
GetFontBaked(
self::Ptr{CImGui.lib.ImFont},
font_size
) -> Ptr{CImGui.lib.ImFontBaked}
GetFontBaked(
self::Ptr{CImGui.lib.ImFont},
font_size,
density
) -> Ptr{CImGui.lib.ImFontBaked}
[Internal] Don't use! 'maxwidth' stops rendering after a certain width (could be turned into a 2d size). FLTMAX to disable. 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable.// Get or create baked data for given size.
CImGui.GetFontBaked — Method
GetFontBaked() -> Ptr{CImGui.lib.ImFontBaked}
Get current font bound at current size // == GetFont()->GetFontBaked(GetFontSize()).
CImGui.GetFontRasterizerDensity — Method
GetFontRasterizerDensity() -> Float32
CImGui.GetFontSize — Method
GetFontSize() -> Float32
Get current scaled font size (= height in pixels). AFTER global scale factors applied. IMPORTANT DO NOT PASS THIS VALUE TO PushFont()! Use ImGui::GetStyle().FontSizeBase to get value before global scale factors.
CImGui.GetFontTexUvWhitePixel — Method
GetFontTexUvWhitePixel() -> CImGui.lib.ImVec2
Style read access
- Use the ShowStyleEditor() function to interactively see/edit the colors.// get UV coordinate for a white pixel, useful to draw custom shapes via the ImDrawList API.
CImGui.GetForegroundDrawList — Function
GetForegroundDrawList() -> Ptr{CImGui.lib.ImDrawList}
GetForegroundDrawList(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}}
) -> Ptr{CImGui.lib.ImDrawList}
Get foreground draw list for the given viewport or viewport associated to the current window. this draw list will be the top-most rendered one. Useful to quickly draw shapes/text over dear imgui contents.
CImGui.GetFrameCount — Method
CImGui.GetFrameHeight — Method
CImGui.GetFrameHeightWithSpacing — Method
GetFrameHeightWithSpacing() -> Float32
~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets).
CImGui.GetGlyphRangesDefault — Method
GetGlyphRangesDefault(
self::Ptr{CImGui.lib.ImFontAtlas}
) -> Ptr{UInt16}
Since 1.92: specifying glyph ranges is only useful/necessary if your backend doesn't support ImGuiBackendFlags_RendererHasTextures!// Basic Latin, Extended Latin.
CImGui.GetHeight — Method
GetHeight(self::Ptr{CImGui.lib.ImRect}) -> Float32
CImGui.GetHoveredID — Method
GetHoveredID() -> UInt32
CImGui.GetID — Function
GetID(
self::Ptr{CImGui.lib.ImGuiWindow},
str::Union{Ptr{Int8}, String}
) -> UInt32
GetID(
self::Ptr{CImGui.lib.ImGuiWindow},
str::Union{Ptr{Int8}, String},
str_end::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> UInt32
CImGui.GetID — Method
GetID(int_id::Integer) -> UInt32
CImGui.GetID — Method
GetID(
self::Ptr{CImGui.lib.ImGuiWindow},
n::Integer
) -> UInt32
CImGui.GetID — Method
GetID(
self::Ptr{CImGui.lib.ImGuiWindow},
ptr::Ref{Nothing}
) -> UInt32
CImGui.GetID — Method
GetID(ptr_id::Ref{Nothing}) -> UInt32
CImGui.GetID — Method
GetID(
str_id_begin::Union{Ptr{Int8}, String},
str_id_end::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> UInt32
CImGui.GetID — Method
GetID(str_id::Union{Ptr{Int8}, String}) -> UInt32
Calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself.
CImGui.GetIDFromPos — Method
GetIDFromPos(
self::Ptr{CImGui.lib.ImGuiWindow},
p_abs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> UInt32
CImGui.GetIDFromRectangle — Method
GetIDFromRectangle(
self::Ptr{CImGui.lib.ImGuiWindow},
r_abs::CImGui.lib.ImRect
) -> UInt32
CImGui.GetIDWithSeed — Method
GetIDWithSeed(n::Integer, seed::Integer) -> UInt32
CImGui.GetIDWithSeed — Method
GetIDWithSeed(
str_id_begin::Union{Ptr{Int8}, Ptr{Nothing}, String},
str_id_end::Union{Ptr{Int8}, Ptr{Nothing}, String},
seed::Integer
) -> UInt32
CImGui.GetIO — Method
GetIO(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
) -> Ptr{CImGui.lib.ImGuiIO}
Windows We should always have a CurrentWindow in the stack (there is an implicit "Debug" window) If this ever crashes because g.CurrentWindow is NULL, it means that either:
- ImGui::NewFrame() has never been called, which is illegal.
- You are calling ImGui functions after ImGui::EndFrame()/ImGui::Render() and before the next ImGui::NewFrame(), which is also illegal.
CImGui.GetIO — Method
GetIO() -> Ptr{CImGui.lib.ImGuiIO}
Main// access the ImGuiIO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags).
CImGui.GetInputTextState — Method
GetInputTextState(
id::Integer
) -> Ptr{CImGui.lib.ImGuiInputTextState}
Get input text state if active.
CImGui.GetInt — Function
GetInt(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Int32
GetInt(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Int32
CImGui.GetIntRef — Function
GetIntRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Ptr{Int32}
GetIntRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Ptr{Int32}
- Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set.
- References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer.
- A typical use case where this is convenient for quick hacking (e.g. add storage during a live Edit&Continue session if you can't modify existing struct) float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar;.
CImGui.GetItemClickedCountWithSingleClickDelay — Function
GetItemClickedCountWithSingleClickDelay() -> Int32
GetItemClickedCountWithSingleClickDelay(
mouse_button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Int32
GetItemClickedCountWithSingleClickDelay(
mouse_button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
delay
) -> Int32
[BETA] building block for disambiguation between single-click and double-click. Returns 1 on single-click but delayed by io.MouseSingleClickDelay after mouse release. Returns 2+ on double-click or repeated clicks.
CImGui.GetItemFlags — Method
CImGui.GetItemID — Method
GetItemID() -> UInt32
Get ID of last item (~~ often same ImGui::GetID(label) beforehand).
CImGui.GetItemRectMax — Method
GetItemRectMax() -> CImGui.lib.ImVec2
Get lower-right bounding rectangle of the last item (screen space).
CImGui.GetItemRectMin — Method
GetItemRectMin() -> CImGui.lib.ImVec2
Get upper-left bounding rectangle of the last item (screen space).
CImGui.GetItemRectSize — Method
CImGui.GetItemStatusFlags — Method
GetItemStatusFlags() -> Int32
Basic Accessors.
CImGui.GetKeyChordName — Method
GetKeyChordName(key_chord::Integer) -> Ptr{Int8}
CImGui.GetKeyData — Method
GetKeyData(
key::CImGui.lib.ImGuiKey
) -> Ptr{CImGui.lib.ImGuiKeyData}
CImGui.GetKeyData — Method
GetKeyData(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
key::CImGui.lib.ImGuiKey
) -> Ptr{CImGui.lib.ImGuiKeyData}
CImGui.GetKeyMagnitude2d — Method
GetKeyMagnitude2d(
key_left::CImGui.lib.ImGuiKey,
key_right::CImGui.lib.ImGuiKey,
key_up::CImGui.lib.ImGuiKey,
key_down::CImGui.lib.ImGuiKey
) -> CImGui.lib.ImVec2
CImGui.GetKeyName — Method
GetKeyName(key::CImGui.lib.ImGuiKey) -> Ptr{Int8}
[DEBUG] returns English name of the key. Those names are provided for debugging purpose and are not meant to be saved persistently nor compared.
CImGui.GetKeyOwner — Method
GetKeyOwner(key::CImGui.lib.ImGuiKey) -> UInt32
[EXPERIMENTAL] Low-Level: Key/Input Ownership
- The idea is that instead of "eating" a given input, we can link to an owner id.
- Ownership is most often claimed as a result of reacting to a press/down event (but occasionally may be claimed ahead).
- Input queries can then read input by specifying ImGuiKeyOwnerAny (== 0), ImGuiKeyOwnerNoOwner (== -1) or a custom ID.
- Legacy input queries (without specifying an owner or Any or _None) are equivalent to using ImGuiKeyOwnerAny (== 0).
- Input ownership is automatically released on the frame after a key is released. Therefore:
- for ownership registration happening as a result of a down/press event, the SetKeyOwner() call may be done once (common case).
- for ownership registration happening ahead of a down/press event, the SetKeyOwner() call needs to be made every frame (happens if e.g. claiming ownership on hover).
- SetItemKeyOwner() is a shortcut for common simple case. A custom widget will probably want to call SetKeyOwner() multiple times directly based on its interaction state.
- This is marked experimental because not all widgets are fully honoring the Set/Test idioms. We will need to move forward step by step. Please open a GitHub Issue to submit your usage scenario or if there's a use case you need solved.
CImGui.GetKeyOwnerData — Method
GetKeyOwnerData(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
key::CImGui.lib.ImGuiKey
) -> Ptr{CImGui.lib.ImGuiKeyOwnerData}
CImGui.GetKeyPressedAmount — Method
GetKeyPressedAmount(
key::CImGui.lib.ImGuiKey,
repeat_delay,
rate
) -> Int32
Uses provided repeat rate/delay. return a count, most often 0 or 1 but might be >1 if RepeatRate is small enough that DeltaTime > RepeatRate.
CImGui.GetMainRect — Method
GetMainRect(
self::Ptr{CImGui.lib.ImGuiViewportP}
) -> CImGui.lib.ImRect
Helpers to retrieve ImRect (we don't need to store BuildWorkRect as every access tend to change it, hence the code asymmetry).
CImGui.GetMainViewport — Method
GetMainViewport() -> Ptr{CImGui.lib.ImGuiViewport}
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.// return primary/default viewport. This can never be NULL.
CImGui.GetMouseButtonFromPopupFlags — Method
GetMouseButtonFromPopupFlags(
flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Int32
CImGui.GetMouseClickedCount — Method
GetMouseClickedCount(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Int32
Return the number of successive mouse-clicks at the time where a click happen (otherwise 0).
CImGui.GetMouseCursor — Method
GetMouseCursor() -> Int32
Get desired mouse cursor shape. Important: reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you.
CImGui.GetMouseDragDelta — Function
GetMouseDragDelta() -> CImGui.lib.ImVec2
GetMouseDragDelta(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> CImGui.lib.ImVec2
GetMouseDragDelta(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
lock_threshold
) -> CImGui.lib.ImVec2
Return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses io.MouseDraggingThreshold if lock_threshold < 0.0f).
CImGui.GetMousePos — Method
GetMousePos() -> CImGui.lib.ImVec2
Shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls.
CImGui.GetMousePosOnOpeningCurrentPopup — Method
GetMousePosOnOpeningCurrentPopup() -> CImGui.lib.ImVec2
Retrieve mouse position at the time of opening popup we have BeginPopup() into (helper to avoid user backing that value themselves).
CImGui.GetMultiSelectState — Method
GetMultiSelectState(
id::Integer
) -> Ptr{CImGui.lib.ImGuiMultiSelectState}
CImGui.GetName — Method
GetName(
self::Ptr{CImGui.lib.ImGuiWindowSettings}
) -> Ptr{Int8}
CImGui.GetNavTweakPressedAmount — Method
GetNavTweakPressedAmount(
axis::CImGui.lib.ImGuiAxis
) -> Float32
CImGui.GetNextSelectedItem — Method
GetNextSelectedItem(
self::Ptr{CImGui.lib.ImGuiSelectionBasicStorage},
opaque_it,
out_id::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}}
) -> Bool
Iterate selection with 'void* it = NULL; ImGuiID id; while (selection.GetNextSelectedItem(&it, &id)) ... '.
CImGui.GetPitch — Method
GetPitch(self::Ptr{CImGui.lib.ImTextureData}) -> Int32
CImGui.GetPixels — Method
GetPixels(
self::Ptr{CImGui.lib.ImTextureData}
) -> Ptr{Nothing}
CImGui.GetPixelsAt — Method
GetPixelsAt(
self::Ptr{CImGui.lib.ImTextureData},
x,
y
) -> Ptr{Nothing}
CImGui.GetPlatformIO — Method
GetPlatformIO(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
) -> Ptr{CImGui.lib.ImGuiPlatformIO}
CImGui.GetPlatformIO — Method
GetPlatformIO() -> Ptr{CImGui.lib.ImGuiPlatformIO}
Access the ImGuiPlatformIO structure (mostly hooks/functions to connect to platform/renderer and OS Clipboard, IME etc.).
CImGui.GetPopupAllowedExtentRect — Method
GetPopupAllowedExtentRect(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> CImGui.lib.ImRect
CImGui.GetPreferredOffsetX — Method
GetPreferredOffsetX(
self::Ptr{CImGui.lib.ImGuiInputTextState}
) -> Float32
CImGui.GetRoundedFontSize — Method
GetRoundedFontSize(size) -> Float32
CImGui.GetScale — Method
GetScale() -> Float32
FIXME-DPI: I don't want to formalize this just yet. Because reasons. Please don't use.
CImGui.GetScrollMaxX — Method
GetScrollMaxX() -> Float32
Get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x.
CImGui.GetScrollMaxY — Method
GetScrollMaxY() -> Float32
Get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y.
CImGui.GetScrollX — Method
GetScrollX() -> Float32
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().// get scrolling amount [0 .. GetScrollMaxX()].
CImGui.GetScrollY — Method
CImGui.GetSelectionEnd — Method
GetSelectionEnd(
self::Ptr{CImGui.lib.ImGuiInputTextState}
) -> Int32
CImGui.GetSelectionStart — Method
GetSelectionStart(
self::Ptr{CImGui.lib.ImGuiInputTextState}
) -> Int32
CImGui.GetShortcutRoutingData — Method
GetShortcutRoutingData(
key_chord::Integer
) -> Ptr{CImGui.lib.ImGuiKeyRoutingData}
CImGui.GetSize — Method
GetSize(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec2
CImGui.GetSizeInBytes — Method
GetSizeInBytes(self::Ptr{CImGui.lib.ImTextureData}) -> Int32
CImGui.GetStateStorage — Method
GetStateStorage() -> Ptr{CImGui.lib.ImGuiStorage}
CImGui.GetStorageIdFromIndex — Method
GetStorageIdFromIndex(
self::Ptr{CImGui.lib.ImGuiSelectionBasicStorage},
idx
) -> UInt32
Convert index to item id based on provided adapter.
CImGui.GetStyle — Method
GetStyle() -> Ptr{CImGui.lib.ImGuiStyle}
Access the Style structure (colors, sizes). Always use PushStyleColor(), PushStyleVar() to modify style mid-frame!
CImGui.GetStyleColorName — Method
GetStyleColorName(
idx::Union{CImGui.lib.ImGuiCol_, Integer}
) -> Ptr{Int8}
Get a string corresponding to the enum value (for display, saving, etc.).
CImGui.GetStyleColorVec4 — Method
GetStyleColorVec4(
idx::Union{CImGui.lib.ImGuiCol_, Integer}
) -> Ptr{CImGui.lib.ImVec4}
Retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in.
CImGui.GetStyleVarInfo — Method
GetStyleVarInfo(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer}
) -> Ptr{CImGui.lib.ImGuiStyleVarInfo}
Parameter stacks (shared).
CImGui.GetTL — Method
GetTL(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec2
Top-left.
CImGui.GetTR — Method
GetTR(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec2
Top-right.
CImGui.GetTexID — Method
GetTexID(self::Ptr{CImGui.lib.ImDrawCmd}) -> UInt64
Since 1.83: returns ImTextureID associated with this draw call. Warning: DO NOT assume this is always same as 'TextureId' (we will change this function for an upcoming feature) Since 1.92: removed ImDrawCmd::TextureId field, the getter function must be used!// == (TexRef.TexData ? TexRef.TexData->TexID : TexRef._TexID).
CImGui.GetTexID — Method
GetTexID(self::Ptr{CImGui.lib.ImTextureData}) -> UInt64
CImGui.GetTexID — Method
GetTexID(self::Ptr{CImGui.lib.ImTextureRef}) -> UInt64
== (_TexData ? _TexData->TexID : _TexID) // Implemented below in the file.
CImGui.GetTexRef — Method
GetTexRef(
self::Ptr{CImGui.lib.ImTextureData}
) -> CImGui.lib.ImTextureRef
CImGui.GetText — Method
GetText(
self::Ptr{CImGui.lib.ImGuiInputTextState}
) -> Ptr{Int8}
CImGui.GetTextLineHeight — Method
CImGui.GetTextLineHeightWithSpacing — Method
GetTextLineHeightWithSpacing() -> Float32
~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text).
CImGui.GetTime — Method
CImGui.GetTopMostAndVisiblePopupModal — Method
GetTopMostAndVisiblePopupModal(
) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.GetTopMostPopupModal — Method
GetTopMostPopupModal() -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.GetTreeNodeToLabelSpacing — Method
GetTreeNodeToLabelSpacing() -> Float32
Horizontal distance preceding label when using TreeNode() or Bullet() == (g.FontSize + style.FramePadding.x2) for a regular unframed TreeNode.
CImGui.GetTypematicRepeatRate — Method
GetTypematicRepeatRate(
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer},
repeat_delay,
repeat_rate
)
CImGui.GetTypingSelectRequest — Function
GetTypingSelectRequest(
) -> Ptr{CImGui.lib.ImGuiTypingSelectRequest}
GetTypingSelectRequest(
flags::Union{CImGui.lib.ImGuiTypingSelectFlags_, Integer}
) -> Ptr{CImGui.lib.ImGuiTypingSelectRequest}
Typing-Select API (provide Windows Explorer style "select items by typing partial name" + "cycle through items by typing same letter" feature) (this is currently not documented nor used by main library, but should work. See "widgetstypingselect" in imguitest_suite for usage code. Please let us know if you use this!).
CImGui.GetVarPtr — Method
GetVarPtr(
self::Ptr{CImGui.lib.ImGuiStyleVarInfo},
parent
) -> Ptr{Nothing}
CImGui.GetVersion — Method
GetVersion() -> Ptr{Int8}
Get the compiled version string e.g. "1.80 WIP" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp).
CImGui.GetViewportPlatformMonitor — Method
GetViewportPlatformMonitor(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewport}}
) -> Ptr{CImGui.lib.ImGuiPlatformMonitor}
CImGui.GetVoidPtr — Method
GetVoidPtr(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Ptr{Nothing}
Default_val is NULL.
CImGui.GetVoidPtrRef — Function
GetVoidPtrRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer
) -> Ptr{Ptr{Nothing}}
GetVoidPtrRef(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
default_val
) -> Ptr{Ptr{Nothing}}
CImGui.GetWidth — Method
GetWidth(self::Ptr{CImGui.lib.ImRect}) -> Float32
CImGui.GetWindowAlwaysWantOwnTabBar — Method
GetWindowAlwaysWantOwnTabBar(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
CImGui.GetWindowDockID — Method
GetWindowDockID() -> UInt32
Get dock id of current window, or 0 if not associated to any docking node.
CImGui.GetWindowDockNode — Method
GetWindowDockNode() -> Ptr{CImGui.lib.ImGuiDockNode}
CImGui.GetWindowDpiScale — Method
GetWindowDpiScale() -> Float32
Get DPI scale currently associated to the current window's viewport.
CImGui.GetWindowDrawList — Method
GetWindowDrawList() -> Ptr{CImGui.lib.ImDrawList}
Get draw list associated to the current window, to append your own drawing primitives.
CImGui.GetWindowHeight — Method
GetWindowHeight() -> Float32
Get current window height (IT IS UNLIKELY YOU EVER NEED TO USE THIS). Shortcut for GetWindowSize().y.
CImGui.GetWindowPos — Method
GetWindowPos() -> CImGui.lib.ImVec2
Get current window position in screen space (IT IS UNLIKELY YOU EVER NEED TO USE THIS. Consider always using GetCursorScreenPos() and GetContentRegionAvail() instead).
CImGui.GetWindowResizeBorderID — Method
GetWindowResizeBorderID(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
dir::CImGui.lib.ImGuiDir
) -> UInt32
CImGui.GetWindowResizeCornerID — Method
GetWindowResizeCornerID(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
n
) -> UInt32
0..3: corners.
CImGui.GetWindowScrollbarID — Method
GetWindowScrollbarID(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
axis::CImGui.lib.ImGuiAxis
) -> UInt32
CImGui.GetWindowScrollbarRect — Method
GetWindowScrollbarRect(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
axis::CImGui.lib.ImGuiAxis
) -> CImGui.lib.ImRect
CImGui.GetWindowSize — Method
GetWindowSize() -> CImGui.lib.ImVec2
Get current window size (IT IS UNLIKELY YOU EVER NEED TO USE THIS. Consider always using GetCursorScreenPos() and GetContentRegionAvail() instead).
CImGui.GetWindowViewport — Method
GetWindowViewport() -> Ptr{CImGui.lib.ImGuiViewport}
Get viewport currently associated to the current window.
CImGui.GetWindowWidth — Method
GetWindowWidth() -> Float32
Get current window width (IT IS UNLIKELY YOU EVER NEED TO USE THIS). Shortcut for GetWindowSize().x.
CImGui.GetWorkCenter — Method
GetWorkCenter(
self::Ptr{CImGui.lib.ImGuiViewport}
) -> CImGui.lib.ImVec2
CImGui.GetWorkRect — Method
GetWorkRect(
self::Ptr{CImGui.lib.ImGuiViewportP}
) -> CImGui.lib.ImRect
CImGui.Get_line_begin — Method
Get_line_begin(
self::Ptr{CImGui.lib.ImGuiTextIndex},
base,
n
) -> Ptr{Int8}
CImGui.Get_line_end — Method
Get_line_end(
self::Ptr{CImGui.lib.ImGuiTextIndex},
base,
n
) -> Ptr{Int8}
CImGui.HSV — Function
HSV(h, s, v) -> CImGui.lib.ImVec4
HSV(h, s, v, a) -> CImGui.lib.ImVec4
CImGui.HasSelection — Method
HasSelection(
self::Ptr{CImGui.lib.ImGuiInputTextCallbackData}
) -> Bool
CImGui.HasSelection — Method
HasSelection(
self::Ptr{CImGui.lib.ImGuiInputTextState}
) -> Bool
CImGui.HelpMarker — Method
HelpMarker(msg::AbstractString)A port of the HelpMarker() function from the Dear ImGui demo. This will draw a grayed out '(?)' text on the screen with msg as the tooltip.
CImGui.ImAbs — Method
ImAbs(x::Float32) -> Float32
CImGui.ImAbs — Method
ImAbs(x::Float64) -> Float64
CImGui.ImAbs — Method
ImAbs(x::Integer) -> Int32
CImGui.ImAlphaBlendColors — Method
ImAlphaBlendColors(col_a::Integer, col_b::Integer) -> UInt32
Helpers: Color Blending.
CImGui.ImBezierCubicCalc — Method
ImBezierCubicCalc(
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
t
) -> CImGui.lib.ImVec2
Helpers: Geometry.
CImGui.ImBezierCubicClosestPoint — Method
ImBezierCubicClosestPoint(
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
num_segments
) -> CImGui.lib.ImVec2
For curves with explicit number of segments.
CImGui.ImBezierCubicClosestPointCasteljau — Method
ImBezierCubicClosestPointCasteljau(
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
tess_tol
) -> CImGui.lib.ImVec2
For auto-tessellated curves you can use tess_tol = style.CurveTessellationTol.
CImGui.ImBezierQuadraticCalc — Method
ImBezierQuadraticCalc(
p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
t
) -> CImGui.lib.ImVec2
CImGui.ImBitArrayClearAllBits — Method
ImBitArrayClearAllBits(
arr::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
bitcount
)
CImGui.ImBitArrayClearBit — Method
ImBitArrayClearBit(
arr::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
n
)
CImGui.ImBitArrayGetStorageSizeInBytes — Method
ImBitArrayGetStorageSizeInBytes(bitcount) -> UInt64
Helper: ImBitArray.
CImGui.ImBitArraySetBit — Method
ImBitArraySetBit(
arr::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
n
)
CImGui.ImBitArraySetBitRange — Method
ImBitArraySetBitRange(
arr::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
n,
n2
)
CImGui.ImBitArrayTestBit — Method
ImBitArrayTestBit(
arr::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
n
) -> Bool
CImGui.ImCeilFast — Method
ImCeilFast(f) -> Float32
Consider using the the bit-hack version (search for "0x1p120f").
CImGui.ImCharIsBlankA — Method
ImCharIsBlankA(c) -> Bool
CImGui.ImCharIsBlankW — Method
ImCharIsBlankW(c) -> Bool
CImGui.ImCharIsXdigitA — Method
ImCharIsXdigitA(c) -> Bool
CImGui.ImClamp — Method
ImClamp(
v::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
mn::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
mx::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImCountSetBits — Method
ImCountSetBits(v) -> UInt32
CImGui.ImDot — Method
ImDot(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Float32
CImGui.ImExponentialMovingAverage — Method
ImExponentialMovingAverage(avg, sample, n) -> Float32
CImGui.ImFileClose — Method
ImFileClose(file::Ptr{Base.Libc.FILE}) -> Bool
CImGui.ImFileGetSize — Method
ImFileGetSize(file::Ptr{Base.Libc.FILE}) -> UInt64
CImGui.ImFileLoadToMemory — Function
ImFileLoadToMemory(filename, mode) -> Ptr{Nothing}
ImFileLoadToMemory(
filename,
mode,
out_file_size
) -> Ptr{Nothing}
ImFileLoadToMemory(
filename,
mode,
out_file_size,
padding_bytes
) -> Ptr{Nothing}
CImGui.ImFileOpen — Method
ImFileOpen(filename, mode) -> Ptr{Base.Libc.FILE}
CImGui.ImFileRead — Method
ImFileRead(
data,
size::UInt64,
count::UInt64,
file::Ptr{Base.Libc.FILE}
) -> UInt64
CImGui.ImFileWrite — Method
ImFileWrite(
data,
size::UInt64,
count::UInt64,
file::Ptr{Base.Libc.FILE}
) -> UInt64
CImGui.ImFloor — Method
ImFloor(f::Real) -> Float32
Decent replacement for floorf().
CImGui.ImFloor — Method
ImFloor(
v::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImFontAtlasAddDrawListSharedData — Method
ImFontAtlasAddDrawListSharedData(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawListSharedData}}
)
CImGui.ImFontAtlasBakedAdd — Method
ImFontAtlasBakedAdd(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size,
font_rasterizer_density,
baked_id::Integer
) -> Ptr{CImGui.lib.ImFontBaked}
CImGui.ImFontAtlasBakedAddFontGlyph — Method
ImFontAtlasBakedAddFontGlyph(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
in_glyph::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontGlyph}}
) -> Ptr{CImGui.lib.ImFontGlyph}
CImGui.ImFontAtlasBakedAddFontGlyphAdvancedX — Method
ImFontAtlasBakedAddFontGlyphAdvancedX(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
codepoint::UInt16,
advance_x
)
CImGui.ImFontAtlasBakedDiscard — Method
ImFontAtlasBakedDiscard(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}}
)
CImGui.ImFontAtlasBakedDiscardFontGlyph — Method
ImFontAtlasBakedDiscardFontGlyph(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}},
glyph::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontGlyph}}
)
CImGui.ImFontAtlasBakedGetClosestMatch — Method
ImFontAtlasBakedGetClosestMatch(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size,
font_rasterizer_density
) -> Ptr{CImGui.lib.ImFontBaked}
CImGui.ImFontAtlasBakedGetId — Method
ImFontAtlasBakedGetId(
font_id::Integer,
baked_size,
rasterizer_density
) -> UInt32
CImGui.ImFontAtlasBakedGetOrAdd — Method
ImFontAtlasBakedGetOrAdd(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size,
font_rasterizer_density
) -> Ptr{CImGui.lib.ImFontBaked}
CImGui.ImFontAtlasBakedSetFontGlyphBitmap — Method
ImFontAtlasBakedSetFontGlyphBitmap(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
glyph::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontGlyph}},
r::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureRect}},
src_pixels,
src_fmt::CImGui.lib.ImTextureFormat,
src_pitch
)
CImGui.ImFontAtlasBuildClear — Method
ImFontAtlasBuildClear(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
Clear output and custom rects.
CImGui.ImFontAtlasBuildDestroy — Method
ImFontAtlasBuildDestroy(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasBuildDiscardBakes — Method
ImFontAtlasBuildDiscardBakes(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
unused_frames
)
CImGui.ImFontAtlasBuildGetOversampleFactors — Method
ImFontAtlasBuildGetOversampleFactors(
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}},
baked::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontBaked}},
out_oversample_h,
out_oversample_v
)
CImGui.ImFontAtlasBuildInit — Method
ImFontAtlasBuildInit(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasBuildLegacyPreloadAllGlyphRanges — Method
ImFontAtlasBuildLegacyPreloadAllGlyphRanges(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
Legacy.
CImGui.ImFontAtlasBuildMain — Method
ImFontAtlasBuildMain(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasBuildNotifySetFont — Method
ImFontAtlasBuildNotifySetFont(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
old_font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
new_font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}}
)
CImGui.ImFontAtlasBuildRenderBitmapFromString — Method
ImFontAtlasBuildRenderBitmapFromString(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
x,
y,
w,
h,
in_str,
in_marker_char
)
CImGui.ImFontAtlasBuildSetupFontLoader — Method
ImFontAtlasBuildSetupFontLoader(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font_loader::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontLoader}}
)
CImGui.ImFontAtlasBuildSetupFontSpecialGlyphs — Method
ImFontAtlasBuildSetupFontSpecialGlyphs(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
)
CImGui.ImFontAtlasBuildUpdatePointers — Method
ImFontAtlasBuildUpdatePointers(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasDebugLogTextureRequests — Method
ImFontAtlasDebugLogTextureRequests(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasFontDestroyOutput — Method
ImFontAtlasFontDestroyOutput(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}}
)
CImGui.ImFontAtlasFontDestroySourceData — Method
ImFontAtlasFontDestroySourceData(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
)
CImGui.ImFontAtlasFontDiscardBakes — Method
ImFontAtlasFontDiscardBakes(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
unused_frames
)
CImGui.ImFontAtlasFontInitOutput — Method
ImFontAtlasFontInitOutput(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}}
) -> Bool
Using FontDestroyOutput/FontInitOutput sequence useful notably if font loader params have changed.
CImGui.ImFontAtlasFontRebuildOutput — Method
ImFontAtlasFontRebuildOutput(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}}
)
CImGui.ImFontAtlasFontSourceAddToFont — Method
ImFontAtlasFontSourceAddToFont(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
)
CImGui.ImFontAtlasFontSourceInit — Method
ImFontAtlasFontSourceInit(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
src::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontConfig}}
) -> Bool
CImGui.ImFontAtlasGetFontLoaderForStbTruetype — Method
ImFontAtlasGetFontLoaderForStbTruetype(
) -> Ptr{CImGui.lib.ImFontLoader}
CImGui.ImFontAtlasGetMouseCursorTexData — Method
ImFontAtlasGetMouseCursorTexData(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
cursor_type::Union{CImGui.lib.ImGuiMouseCursor_, Integer},
out_offset::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
out_size::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
out_uv_border,
out_uv_fill
) -> Bool
CImGui.ImFontAtlasPackAddRect — Function
ImFontAtlasPackAddRect(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
w,
h
) -> Int32
ImFontAtlasPackAddRect(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
w,
h,
overwrite_entry::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlasRectEntry}}
) -> Int32
CImGui.ImFontAtlasPackDiscardRect — Method
ImFontAtlasPackDiscardRect(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
id::Integer
)
CImGui.ImFontAtlasPackGetRect — Method
ImFontAtlasPackGetRect(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
id::Integer
) -> Ptr{CImGui.lib.ImTextureRect}
CImGui.ImFontAtlasPackGetRectSafe — Method
ImFontAtlasPackGetRectSafe(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
id::Integer
) -> Ptr{CImGui.lib.ImTextureRect}
CImGui.ImFontAtlasPackInit — Method
ImFontAtlasPackInit(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasRectId_GetGeneration — Method
ImFontAtlasRectId_GetGeneration(id::Integer) -> UInt32
CImGui.ImFontAtlasRectId_GetIndex — Method
ImFontAtlasRectId_GetIndex(id::Integer) -> Int32
Refer to ImFontAtlasPackGetRect() to better understand how this works.
CImGui.ImFontAtlasRectId_Make — Method
ImFontAtlasRectId_Make(index_idx, gen_idx) -> Int32
CImGui.ImFontAtlasRemoveDrawListSharedData — Method
ImFontAtlasRemoveDrawListSharedData(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawListSharedData}}
)
CImGui.ImFontAtlasTextureAdd — Method
ImFontAtlasTextureAdd(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
w,
h
) -> Ptr{CImGui.lib.ImTextureData}
CImGui.ImFontAtlasTextureBlockConvert — Method
ImFontAtlasTextureBlockConvert(
src_pixels,
src_fmt::CImGui.lib.ImTextureFormat,
src_pitch,
dst_pixels,
dst_fmt::CImGui.lib.ImTextureFormat,
dst_pitch,
w,
h
)
CImGui.ImFontAtlasTextureBlockCopy — Method
ImFontAtlasTextureBlockCopy(
src_tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
src_x,
src_y,
dst_tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
dst_x,
dst_y,
w,
h
)
CImGui.ImFontAtlasTextureBlockFill — Method
ImFontAtlasTextureBlockFill(
dst_tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
dst_x,
dst_y,
w,
h,
col::Integer
)
CImGui.ImFontAtlasTextureBlockPostProcess — Method
ImFontAtlasTextureBlockPostProcess(
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlasPostProcessData}}
)
CImGui.ImFontAtlasTextureBlockPostProcessMultiply — Method
ImFontAtlasTextureBlockPostProcessMultiply(
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlasPostProcessData}},
multiply_factor
)
CImGui.ImFontAtlasTextureBlockQueueUpload — Method
ImFontAtlasTextureBlockQueueUpload(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
x,
y,
w,
h
)
CImGui.ImFontAtlasTextureCompact — Method
ImFontAtlasTextureCompact(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasTextureGetSizeEstimate — Method
ImFontAtlasTextureGetSizeEstimate(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
) -> CImGui.lib.ImVec2i
CImGui.ImFontAtlasTextureGrow — Function
ImFontAtlasTextureGrow(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
ImFontAtlasTextureGrow(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
old_w
)
ImFontAtlasTextureGrow(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
old_w,
old_h
)
CImGui.ImFontAtlasTextureMakeSpace — Method
ImFontAtlasTextureMakeSpace(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasTextureRepack — Method
ImFontAtlasTextureRepack(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
w,
h
)
CImGui.ImFontAtlasUpdateDrawListsSharedData — Method
ImFontAtlasUpdateDrawListsSharedData(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ImFontAtlasUpdateDrawListsTextures — Method
ImFontAtlasUpdateDrawListsTextures(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
old_tex::CImGui.lib.ImTextureRef,
new_tex::CImGui.lib.ImTextureRef
)
CImGui.ImFontAtlasUpdateNewFrame — Method
ImFontAtlasUpdateNewFrame(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}},
frame_count,
renderer_has_textures
)
CImGui.ImFontCalcTextSizeEx — Method
ImFontCalcTextSizeEx(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
size,
max_width,
wrap_width,
text_begin,
text_end_display,
text_end,
out_remaining,
out_offset::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
flags::Union{CImGui.lib.ImDrawTextFlags_, Integer}
) -> CImGui.lib.ImVec2
CImGui.ImFontCalcWordWrapPositionEx — Function
ImFontCalcWordWrapPositionEx(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
size,
text,
text_end,
wrap_width
) -> Ptr{Int8}
ImFontCalcWordWrapPositionEx(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
size,
text,
text_end,
wrap_width,
flags::Union{CImGui.lib.ImDrawTextFlags_, Integer}
) -> Ptr{Int8}
CImGui.ImFormatString — Method
ImFormatString(buf, buf_size, fmt) -> Int32
Helpers: Formatting.
CImGui.ImFormatStringToTempBuffer — Method
ImFormatStringToTempBuffer(out_buf, out_buf_end, fmt)
CImGui.ImHashData — Function
ImHashData(data, data_size) -> UInt32
ImHashData(data, data_size, seed::Integer) -> UInt32
Helpers: Hashing.
CImGui.ImHashSkipUncontributingPrefix — Method
ImHashSkipUncontributingPrefix(label) -> Ptr{Int8}
CImGui.ImHashStr — Function
ImHashStr(data) -> UInt32
ImHashStr(data, data_size) -> UInt32
ImHashStr(data, data_size, seed::Integer) -> UInt32
CImGui.ImInvLength — Method
ImInvLength(
lhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fail_value
) -> Float32
CImGui.ImIsFloatAboveGuaranteedIntegerPrecision — Method
ImIsFloatAboveGuaranteedIntegerPrecision(f) -> Bool
CImGui.ImIsPowerOfTwo — Method
ImIsPowerOfTwo(v::Integer) -> Bool
Helpers: Bit manipulation.
CImGui.ImIsPowerOfTwo — Method
ImIsPowerOfTwo(v::UInt64) -> Bool
CImGui.ImLengthSqr — Method
ImLengthSqr(
lhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Float32
CImGui.ImLengthSqr — Method
ImLengthSqr(
lhs::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> Float32
CImGui.ImLerp — Method
ImLerp(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
t::Float32
) -> CImGui.lib.ImVec2
CImGui.ImLerp — Method
ImLerp(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
t::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImLerp — Method
ImLerp(
a::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
b::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
t::Float32
) -> CImGui.lib.ImVec4
CImGui.ImLineClosestPoint — Method
ImLineClosestPoint(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImLinearRemapClamp — Method
ImLinearRemapClamp(s0, s1, d0, d1, x) -> Float32
CImGui.ImLinearSweep — Method
ImLinearSweep(current, target, speed) -> Float32
CImGui.ImLog — Method
ImLog(x::Float32) -> Float32
DragBehaviorT/SliderBehaviorT uses ImLog with either float/double and need the precision.
CImGui.ImLog — Method
ImLog(x::Float64) -> Float64
CImGui.ImLowerBound — Method
ImLowerBound(
in_begin::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStoragePair}},
in_end::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStoragePair}},
key::Integer
) -> Ptr{CImGui.lib.ImGuiStoragePair}
Helper: ImGuiStorage.
CImGui.ImMax — Method
ImMax(
lhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImMemdup — Method
ImMemdup(src, size) -> Ptr{Nothing}
Duplicate a chunk of memory.
CImGui.ImMin — Method
ImMin(
lhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
- Misc maths helpers.
CImGui.ImModPositive — Method
ImModPositive(a, b) -> Int32
CImGui.ImMul — Method
ImMul(
lhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rhs::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImParseFormatFindEnd — Method
ImParseFormatFindEnd(format) -> Ptr{Int8}
CImGui.ImParseFormatFindStart — Method
ImParseFormatFindStart(format) -> Ptr{Int8}
CImGui.ImParseFormatPrecision — Method
ImParseFormatPrecision(format, default_value) -> Int32
CImGui.ImParseFormatSanitizeForPrinting — Method
ImParseFormatSanitizeForPrinting(
fmt_in,
fmt_out,
fmt_out_size
)
CImGui.ImParseFormatSanitizeForScanning — Method
ImParseFormatSanitizeForScanning(
fmt_in,
fmt_out,
fmt_out_size
) -> Ptr{Int8}
CImGui.ImParseFormatTrimDecorations — Method
ImParseFormatTrimDecorations(
format,
buf,
buf_size
) -> Ptr{Int8}
CImGui.ImPow — Method
ImPow(x::Float32, y::Float32) -> Float32
DragBehaviorT/SliderBehaviorT uses ImPow with either float/double and need the precision.
CImGui.ImPow — Method
ImPow(x::Float64, y::Float64) -> Float64
CImGui.ImQsort — Method
ImQsort(base, count, size_of_element, compare_func)
CImGui.ImRotate — Method
ImRotate(
v::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cos_a,
sin_a
) -> CImGui.lib.ImVec2
CImGui.ImRound64 — Method
ImRound64(f) -> Float32
FIXME: Positive values only.
CImGui.ImRsqrt — Method
ImRsqrt(x::Float32) -> Float32
CImGui.ImRsqrt — Method
ImRsqrt(x::Float64) -> Float64
CImGui.ImSaturate — Method
ImSaturate(f) -> Float32
CImGui.ImSign — Method
ImSign(x::Float32) -> Float32
Sign operator - returns -1, 0 or 1 based on sign of argument.
CImGui.ImSign — Method
ImSign(x::Float64) -> Float64
CImGui.ImStrSkipBlank — Method
ImStrSkipBlank(str) -> Ptr{Int8}
Find first non-blank character.
CImGui.ImStrTrimBlanks — Method
ImStrTrimBlanks(str)
Remove leading and trailing blanks from a buffer.
CImGui.ImStrbol — Method
ImStrbol(buf_mid_line, buf_begin) -> Ptr{Int8}
Find beginning-of-line.
CImGui.ImStrchrRange — Method
ImStrchrRange(str_begin, str_end, c) -> Ptr{Int8}
Find first occurrence of 'c' in string range.
CImGui.ImStrdup — Method
ImStrdup(str) -> Ptr{Int8}
Duplicate a string.
CImGui.ImStrdupcpy — Method
ImStrdupcpy(dst, p_dst_size, str) -> Ptr{Int8}
Copy in provided buffer, recreate buffer if needed.
CImGui.ImStreolRange — Method
ImStreolRange(str, str_end) -> Ptr{Int8}
End end-of-line.
CImGui.ImStricmp — Method
ImStricmp(str1, str2) -> Int32
Helpers: String// Case insensitive compare.
CImGui.ImStristr — Method
ImStristr(
haystack,
haystack_end,
needle,
needle_end
) -> Ptr{Int8}
Find a substring in a string range.
CImGui.ImStrlenW — Method
ImStrlenW(str::Union{Ptr{Nothing}, Ref{UInt16}}) -> Int32
Computer string length (ImWchar string).
CImGui.ImStrncpy — Method
ImStrncpy(dst, src, count)
Copy to a certain count and always zero terminate (strncpy doesn't).
CImGui.ImStrnicmp — Method
ImStrnicmp(str1, str2, count) -> Int32
Case insensitive compare to a certain count.
CImGui.ImTextCalcWordWrapNextLineStart — Function
ImTextCalcWordWrapNextLineStart(text, text_end) -> Ptr{Int8}
ImTextCalcWordWrapNextLineStart(
text,
text_end,
flags::Union{CImGui.lib.ImDrawTextFlags_, Integer}
) -> Ptr{Int8}
Trim trailing space and find beginning of next line.
CImGui.ImTextCharFromUtf8 — Method
ImTextCharFromUtf8(out_char, in_text, in_text_end) -> Int32
Read one character. return input UTF-8 bytes count.
CImGui.ImTextCharToUtf8 — Method
ImTextCharToUtf8(out_buf, c) -> Int32
Helpers: UTF-8 <> wchar conversions// return output UTF-8 bytes count.
CImGui.ImTextClassifierClear — Method
ImTextClassifierClear(
bits::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
codepoint_min,
codepoint_end,
char_class::CImGui.lib.ImWcharClass
)
CImGui.ImTextClassifierSetCharClass — Method
ImTextClassifierSetCharClass(
bits::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
codepoint_min,
codepoint_end,
char_class::CImGui.lib.ImWcharClass,
c
)
CImGui.ImTextClassifierSetCharClassFromStr — Method
ImTextClassifierSetCharClassFromStr(
bits::Union{Ptr{Nothing}, Ref{Integer}, Ref{UInt32}},
codepoint_min,
codepoint_end,
char_class::CImGui.lib.ImWcharClass,
s
)
CImGui.ImTextCountCharsFromUtf8 — Method
ImTextCountCharsFromUtf8(in_text, in_text_end) -> Int32
Return number of UTF-8 code-points (NOT bytes count).
CImGui.ImTextCountLines — Method
ImTextCountLines(in_text, in_text_end) -> Int32
Return number of lines taken by text. trailing carriage return doesn't count as an extra line.
CImGui.ImTextCountUtf8BytesFromChar — Method
ImTextCountUtf8BytesFromChar(in_text, in_text_end) -> Int32
Return number of bytes to express one char in UTF-8.
CImGui.ImTextCountUtf8BytesFromStr — Method
ImTextCountUtf8BytesFromStr(
in_text::Union{Ptr{Nothing}, Ref{UInt16}},
in_text_end::Union{Ptr{Nothing}, Ref{UInt16}}
) -> Int32
Return number of bytes to express string in UTF-8.
CImGui.ImTextFindPreviousUtf8Codepoint — Method
ImTextFindPreviousUtf8Codepoint(
in_text_start,
in_p
) -> Ptr{Int8}
Return previous UTF-8 code-point.
CImGui.ImTextFindValidUtf8CodepointEnd — Method
ImTextFindValidUtf8CodepointEnd(
in_text_start,
in_text_end,
in_p
) -> Ptr{Int8}
Return previous UTF-8 code-point if 'in_p' is not the end of a valid one.
CImGui.ImTextInitClassifiers — Method
ImTextInitClassifiers()
CImGui.ImTextStrFromUtf8 — Function
ImTextStrFromUtf8(
out_buf::Union{Ptr{Nothing}, Ref{UInt16}},
out_buf_size,
in_text,
in_text_end
) -> Int32
ImTextStrFromUtf8(
out_buf::Union{Ptr{Nothing}, Ref{UInt16}},
out_buf_size,
in_text,
in_text_end,
in_remaining
) -> Int32
Return input UTF-8 bytes count.
CImGui.ImTextStrToUtf8 — Method
ImTextStrToUtf8(
out_buf,
out_buf_size,
in_text::Union{Ptr{Nothing}, Ref{UInt16}},
in_text_end::Union{Ptr{Nothing}, Ref{UInt16}}
) -> Int32
Return output UTF-8 bytes count.
CImGui.ImTextureDataGetFormatBytesPerPixel — Method
ImTextureDataGetFormatBytesPerPixel(
format::CImGui.lib.ImTextureFormat
) -> Int32
CImGui.ImTextureDataGetFormatName — Method
ImTextureDataGetFormatName(
format::CImGui.lib.ImTextureFormat
) -> Ptr{Int8}
CImGui.ImTextureDataGetStatusName — Method
ImTextureDataGetStatusName(
status::CImGui.lib.ImTextureStatus
) -> Ptr{Int8}
CImGui.ImTextureDataQueueUpload — Method
ImTextureDataQueueUpload(
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}},
x,
y,
w,
h
)
CImGui.ImTextureDataUpdateNewFrame — Method
ImTextureDataUpdateNewFrame(
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}}
) -> Bool
CImGui.ImToUpper — Method
CImGui.ImTriangleArea — Method
ImTriangleArea(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Float32
CImGui.ImTriangleBarycentricCoords — Method
ImTriangleBarycentricCoords(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
out_u,
out_v,
out_w
)
CImGui.ImTriangleClosestPoint — Method
ImTriangleClosestPoint(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImTriangleContainsPoint — Method
ImTriangleContainsPoint(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
CImGui.ImTriangleIsClockwise — Method
ImTriangleIsClockwise(
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
CImGui.ImTrunc — Method
ImTrunc(f::Real) -> Float32
CImGui.ImTrunc — Method
ImTrunc(
v::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.ImTrunc64 — Method
ImTrunc64(f) -> Float32
CImGui.ImUpperPowerOfTwo — Method
ImUpperPowerOfTwo(v) -> Int32
CImGui.Image — Function
Image(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Image(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Image(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Widgets: Images
- Read about ImTextureID/ImTextureRef 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() 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.
- An obsolete version of Image(), before 1.91.9 (March 2025), had a 'tint_col' parameter which is now supported by the ImageWithBg() function.
CImGui.ImageButton — Function
ImageButton(
str_id,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
ImageButton(
str_id,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
ImageButton(
str_id,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
ImageButton(
str_id,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
bg_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> Bool
ImageButton(
str_id,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
bg_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
tint_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> Bool
CImGui.ImageButtonEx — Function
ImageButtonEx(
id::Integer,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
bg_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
tint_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
) -> Bool
ImageButtonEx(
id::Integer,
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
bg_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
tint_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
flags::Union{CImGui.lib.ImGuiButtonFlags_, Integer}
) -> Bool
CImGui.ImageWithBg — Function
ImageWithBg(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
ImageWithBg(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
ImageWithBg(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
ImageWithBg(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
bg_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
)
ImageWithBg(
tex_ref::CImGui.lib.ImTextureRef,
image_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
bg_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
tint_col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
)
CImGui.IncludeItemByIndex — Method
IncludeItemByIndex(
self::Ptr{CImGui.lib.ImGuiListClipper},
item_index
)
Call IncludeItemByIndex() or IncludeItemsByIndex() BEFORE first call to Step() if you need a range of items to not be clipped, regardless of their visibility. (Due to alignment / padding of certain items it is possible that an extra item may be included on either end of the display range).
CImGui.IncludeItemsByIndex — Method
IncludeItemsByIndex(
self::Ptr{CImGui.lib.ImGuiListClipper},
item_begin,
item_end
)
Item_end is exclusive e.g. use (42, 42+1) to make item 42 never clipped.
CImGui.Indent — Function
Indent()
Indent(indent_w)
Move content position toward the right, by indentw, or style.IndentSpacing if indentw <= 0.
CImGui.Initialize — Method
CImGui.InputDouble — Function
InputDouble(label, v) -> Bool
InputDouble(label, v, step) -> Bool
InputDouble(label, v, step, step_fast) -> Bool
InputDouble(label, v, step, step_fast, format) -> Bool
InputDouble(
label,
v,
step,
step_fast,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputFloat — Function
InputFloat(label, v) -> Bool
InputFloat(label, v, step) -> Bool
InputFloat(label, v, step, step_fast) -> Bool
InputFloat(label, v, step, step_fast, format) -> Bool
InputFloat(
label,
v,
step,
step_fast,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputFloat2 — Function
InputFloat2(label, v) -> Bool
InputFloat2(label, v, format) -> Bool
InputFloat2(
label,
v,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputFloat3 — Function
InputFloat3(label, v) -> Bool
InputFloat3(label, v, format) -> Bool
InputFloat3(
label,
v,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputFloat4 — Function
InputFloat4(label, v) -> Bool
InputFloat4(label, v, format) -> Bool
InputFloat4(
label,
v,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputInt — Function
InputInt(label, v) -> Bool
InputInt(label, v, step) -> Bool
InputInt(label, v, step, step_fast) -> Bool
InputInt(
label,
v,
step,
step_fast,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputInt2 — Function
InputInt2(label, v) -> Bool
InputInt2(
label,
v,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputInt3 — Function
InputInt3(label, v) -> Bool
InputInt3(
label,
v,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputInt4 — Function
InputInt4(label, v) -> Bool
InputInt4(
label,
v,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputScalar — Function
InputScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data
) -> Bool
InputScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_step
) -> Bool
InputScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_step,
p_step_fast
) -> Bool
InputScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_step,
p_step_fast,
format
) -> Bool
InputScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_step,
p_step_fast,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputScalarN — Function
InputScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components
) -> Bool
InputScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_step
) -> Bool
InputScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_step,
p_step_fast
) -> Bool
InputScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_step,
p_step_fast,
format
) -> Bool
InputScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_step,
p_step_fast,
format,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
CImGui.InputText — Function
InputText(label, buf, buf_size) -> Bool
InputText(
label,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
InputText(
label,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction}
) -> Bool
InputText(
label,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction},
user_data
) -> Bool
Widgets: Input with Keyboard
- If you want to use InputText() with std::string or any custom dynamic string type, use the wrapper in misc/cpp/imgui_stdlib.h/.cpp!
- Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc.
CImGui.InputTextDeactivateHook — Method
InputTextDeactivateHook(id::Integer)
CImGui.InputTextEx — Function
InputTextEx(
label,
hint,
buf,
buf_size,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
InputTextEx(
label,
hint,
buf,
buf_size,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction}
) -> Bool
InputTextEx(
label,
hint,
buf,
buf_size,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction},
user_data
) -> Bool
InputText.
CImGui.InputTextMultiline — Function
InputTextMultiline(label, buf, buf_size) -> Bool
InputTextMultiline(
label,
buf,
buf_size,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
InputTextMultiline(
label,
buf,
buf_size,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
InputTextMultiline(
label,
buf,
buf_size,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction}
) -> Bool
InputTextMultiline(
label,
buf,
buf_size,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction},
user_data
) -> Bool
CImGui.InputTextWithHint — Function
InputTextWithHint(label, hint, buf, buf_size) -> Bool
InputTextWithHint(
label,
hint,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
InputTextWithHint(
label,
hint,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction}
) -> Bool
InputTextWithHint(
label,
hint,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction},
user_data
) -> Bool
CImGui.InsertChars — Function
InsertChars(
self::Ptr{CImGui.lib.ImGuiInputTextCallbackData},
pos,
text
)
InsertChars(
self::Ptr{CImGui.lib.ImGuiInputTextCallbackData},
pos,
text,
text_end
)
CImGui.InvisibleButton — Function
InvisibleButton(
str_id,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
InvisibleButton(
str_id,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
flags::Union{CImGui.lib.ImGuiButtonFlags_, Integer}
) -> Bool
Flexible button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.).
CImGui.IsActive — Method
IsActive(self::Ptr{CImGui.lib.ImGuiTextFilter}) -> Bool
CImGui.IsActiveIdUsingNavDir — Method
IsActiveIdUsingNavDir(dir::CImGui.lib.ImGuiDir) -> Bool
CImGui.IsAliasKey — Method
IsAliasKey(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsAnyItemActive — Method
CImGui.IsAnyItemFocused — Method
CImGui.IsAnyItemHovered — Method
CImGui.IsAnyMouseDown — Method
IsAnyMouseDown() -> Bool
[WILL OBSOLETE] is any mouse button held? This was designed for backends, but prefer having backend maintain a mask of held mouse buttons, because upcoming input queue system will make this invalid.
CImGui.IsCentralNode — Method
IsCentralNode(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsClippedEx — Method
IsClippedEx(bb::CImGui.lib.ImRect, id::Integer) -> Bool
CImGui.IsDataType — Method
IsDataType(self::Ptr{CImGui.lib.ImGuiPayload}, type) -> Bool
CImGui.IsDelivery — Method
IsDelivery(self::Ptr{CImGui.lib.ImGuiPayload}) -> Bool
CImGui.IsDockSpace — Method
IsDockSpace(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsDragDropActive — Method
IsDragDropActive() -> Bool
Drag and Drop.
CImGui.IsDragDropPayloadBeingAccepted — Method
IsDragDropPayloadBeingAccepted() -> Bool
CImGui.IsEmpty — Method
IsEmpty(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsFloatingNode — Method
IsFloatingNode(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsGamepadKey — Method
IsGamepadKey(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsGlyphInFont — Method
IsGlyphInFont(
self::Ptr{CImGui.lib.ImFont},
c::UInt16
) -> Bool
CImGui.IsGlyphLoaded — Method
IsGlyphLoaded(
self::Ptr{CImGui.lib.ImFontBaked},
c::UInt16
) -> Bool
CImGui.IsGlyphRangeUnused — Method
IsGlyphRangeUnused(
self::Ptr{CImGui.lib.ImFont},
c_begin,
c_last
) -> Bool
CImGui.IsHiddenTabBar — Method
IsHiddenTabBar(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
Hidden tab bar can be shown back by clicking the small triangle.
CImGui.IsInNavFocusRoute — Method
IsInNavFocusRoute(focus_scope_id::Integer) -> Bool
CImGui.IsInverted — Method
IsInverted(self::Ptr{CImGui.lib.ImRect}) -> Bool
CImGui.IsItemActivated — Method
IsItemActivated() -> Bool
Was the last item just made active (item was previously inactive).
CImGui.IsItemActive — Method
IsItemActive() -> Bool
Is the last item active? (e.g. button being held, text field being edited. This will continuously return true while holding mouse button on an item. Items that don't interact will always return false).
CImGui.IsItemActiveAsInputText — Method
IsItemActiveAsInputText() -> Bool
This may be useful to apply workaround that a based on distinguish whenever an item is active as a text input field.
CImGui.IsItemClicked — Function
IsItemClicked() -> Bool
IsItemClicked(
mouse_button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
Is the last item hovered and mouse clicked on? () == IsMouseClicked(mouse_button) && IsItemHovered()Important. () this is NOT equivalent to the behavior of e.g. Button(). Read comments in function definition.
CImGui.IsItemDeactivated — Method
IsItemDeactivated() -> Bool
Was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that require continuous editing.
CImGui.IsItemDeactivatedAfterEdit — Method
IsItemDeactivatedAfterEdit() -> Bool
Was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). Useful for Undo/Redo patterns with widgets that require continuous editing. Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item).
CImGui.IsItemEdited — Method
IsItemEdited() -> Bool
Did the last item modify its underlying value this frame? or was pressed? This is generally the same as the "bool" return value of many widgets.
CImGui.IsItemFocused — Method
CImGui.IsItemHovered — Function
IsItemHovered() -> Bool
IsItemHovered(
flags::Union{CImGui.lib.ImGuiHoveredFlags_, Integer}
) -> Bool
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.// is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options.
CImGui.IsItemToggledOpen — Method
CImGui.IsItemToggledSelection — Method
IsItemToggledSelection() -> Bool
Was the last item selection state toggled? Useful if you need the per-item information before reaching EndMultiSelect(). We only returns toggle event in order to handle clipping correctly.
CImGui.IsItemVisible — Method
IsItemVisible() -> Bool
Is the last item visible? (items may be out of sight because of clipping/scrolling).
CImGui.IsKeyChordPressed — Function
IsKeyChordPressed(
key_chord::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
) -> Bool
IsKeyChordPressed(
key_chord::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer},
owner_id::Integer
) -> Bool
CImGui.IsKeyChordPressed — Method
IsKeyChordPressed(key_chord::Integer) -> Bool
Was key chord (mods + key) pressed, e.g. you can pass 'ImGuiModCtrl | ImGuiKeyS' as a key-chord. This doesn't do any routing or focus check, please consider using Shortcut() function instead.
CImGui.IsKeyDown — Method
IsKeyDown(
key::CImGui.lib.ImGuiKey,
owner_id::Integer
) -> Bool
[EXPERIMENTAL] High-Level: Input Access functions w/ support for Key/Input Ownership
- Important: legacy IsKeyPressed(ImGuiKey, bool repeat=true) DEFAULTS to repeat, new IsKeyPressed() requires EXPLICIT ImGuiInputFlags_Repeat flag.
- Expected to be later promoted to public API, the prototypes are designed to replace existing ones (since owner_id can default to Any == 0)
- Specifying a value for 'ImGuiID owner' will test that EITHER the key is NOT owned (UNLESS locked), EITHER the key is owned by 'owner'. Legacy functions use ImGuiKeyOwnerAny meaning that they typically ignore ownership, unless a call to SetKeyOwner() explicitly used ImGuiInputFlagsLockThisFrame or ImGuiInputFlags_LockUntilRelease.
- Binding generators may want to ignore those for now, or suffix them with Ex() until we decide if this gets moved into public API.
CImGui.IsKeyDown — Method
IsKeyDown(key::CImGui.lib.ImGuiKey) -> Bool
Inputs Utilities: Raw Keyboard/Mouse/Gamepad Access
- Consider using the Shortcut() function instead of IsKeyPressed()/IsKeyChordPressed()! Shortcut() is easier to use and better featured (can do focus routing check).
- the ImGuiKey enum contains all possible keyboard, mouse and gamepad inputs (e.g. ImGuiKeyA, ImGuiKeyMouseLeft, ImGuiKey_GamepadDpadUp...).
- (legacy: before v1.87 (2022-02), we used ImGuiKey < 512 values 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)// is key being held.
CImGui.IsKeyPressed — Function
IsKeyPressed(
key::CImGui.lib.ImGuiKey,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
) -> Bool
IsKeyPressed(
key::CImGui.lib.ImGuiKey,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer},
owner_id::Integer
) -> Bool
Important: when transitioning from old to new IsKeyPressed(): old API has "bool repeat = true", so would default to repeat. New API requires explicit ImGuiInputFlags_Repeat.
CImGui.IsKeyPressed — Function
IsKeyPressed(key::CImGui.lib.ImGuiKey) -> Bool
IsKeyPressed(key::CImGui.lib.ImGuiKey, repeat::Bool) -> Bool
Was key pressed (went from !Down to Down)? Repeat rate uses io.KeyRepeatDelay / KeyRepeatRate.
CImGui.IsKeyReleased — Method
IsKeyReleased(
key::CImGui.lib.ImGuiKey,
owner_id::Integer
) -> Bool
CImGui.IsKeyReleased — Method
IsKeyReleased(key::CImGui.lib.ImGuiKey) -> Bool
Was key released (went from Down to !Down)?
CImGui.IsKeyboardKey — Method
IsKeyboardKey(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsLRModKey — Method
IsLRModKey(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsLeafNode — Method
IsLeafNode(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsLegacyKey — Method
IsLegacyKey(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsLoaded — Method
IsLoaded(self::Ptr{CImGui.lib.ImFont}) -> Bool
CImGui.IsMouseClicked — Function
IsMouseClicked(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
IsMouseClicked(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
repeat::Bool
) -> Bool
Did mouse button clicked? (went from !Down to Down). Same as GetMouseClickedCount() == 1.
CImGui.IsMouseClicked — Function
IsMouseClicked(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
) -> Bool
IsMouseClicked(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer},
owner_id::Integer
) -> Bool
CImGui.IsMouseDoubleClicked — Method
IsMouseDoubleClicked(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
owner_id::Integer
) -> Bool
CImGui.IsMouseDoubleClicked — Method
IsMouseDoubleClicked(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
Did mouse button double-clicked? Same as GetMouseClickedCount() == 2. (note that a double-click will also report IsMouseClicked() == true).
CImGui.IsMouseDown — Method
IsMouseDown(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
owner_id::Integer
) -> Bool
CImGui.IsMouseDown — Method
IsMouseDown(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
Inputs Utilities: Mouse
- To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButtonLeft, ImGuiMouseButtonRight.
- 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')// is mouse button held?
CImGui.IsMouseDragPastThreshold — Function
IsMouseDragPastThreshold(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
IsMouseDragPastThreshold(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
lock_threshold
) -> Bool
CImGui.IsMouseDragging — Function
IsMouseDragging(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
IsMouseDragging(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
lock_threshold
) -> Bool
Is mouse dragging? (uses io.MouseDraggingThreshold if lock_threshold < 0.0f).
CImGui.IsMouseHoveringRect — Function
IsMouseHoveringRect(
r_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
r_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
IsMouseHoveringRect(
r_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
r_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clip
) -> Bool
Is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block.
CImGui.IsMouseKey — Method
IsMouseKey(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsMousePosValid — Function
IsMousePosValid() -> Bool
IsMousePosValid(
mouse_pos::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}}
) -> Bool
By convention we use (-FLTMAX,-FLTMAX) to denote that there is no mouse available.
CImGui.IsMouseReleased — Method
IsMouseReleased(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
owner_id::Integer
) -> Bool
CImGui.IsMouseReleased — Method
IsMouseReleased(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
Did mouse button released? (went from Down to !Down).
CImGui.IsMouseReleasedWithDelay — Function
IsMouseReleasedWithDelay(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> Bool
IsMouseReleasedWithDelay(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer},
delay
) -> Bool
Delayed mouse release. Use sparingly. Prefer higher-level helper GetItemClickedCountWithSingleClickDelay(). Generally used with 'delay >= io.MouseDoubleClickTime' + combined with a 'io.MouseClickedLastCount==1' test.
CImGui.IsNamedKey — Method
IsNamedKey(key::CImGui.lib.ImGuiKey) -> Bool
Inputs FIXME: Eventually we should aim to move e.g. IsActiveIdUsingKey() into IsKeyXXX functions.
CImGui.IsNamedKeyOrMod — Method
IsNamedKeyOrMod(key::CImGui.lib.ImGuiKey) -> Bool
CImGui.IsNoTabBar — Method
IsNoTabBar(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
Never show a tab bar.
CImGui.IsPopupOpen — Function
IsPopupOpen(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
IsPopupOpen(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String},
flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
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 ImGuiPopupFlagsAnyPopupId + ImGuiPopupFlagsAnyPopupLevel: return true if any popup is open.// return true if the popup is open.
CImGui.IsPopupOpen — Method
IsPopupOpen(
id::Integer,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
CImGui.IsPopupOpenRequestForItem — Method
IsPopupOpenRequestForItem(
flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer},
id::Integer
) -> Bool
CImGui.IsPopupOpenRequestForWindow — Method
IsPopupOpenRequestForWindow(
flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
CImGui.IsPreview — Method
IsPreview(self::Ptr{CImGui.lib.ImGuiPayload}) -> Bool
CImGui.IsRectVisible — Method
IsRectVisible(
rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
Test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side.
CImGui.IsRectVisible — Method
IsRectVisible(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
Miscellaneous Utilities// test if rectangle (of given size, starting from cursor position) is visible / not clipped.
CImGui.IsRootNode — Method
IsRootNode(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsSplitNode — Method
IsSplitNode(self::Ptr{CImGui.lib.ImGuiDockNode}) -> Bool
CImGui.IsValid — Method
IsValid(self::Ptr{CImGui.lib.ImGuiPackedDate}) -> Bool
CImGui.IsWindowAbove — Method
IsWindowAbove(
potential_above::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
potential_below::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
CImGui.IsWindowAppearing — Method
IsWindowAppearing() -> Bool
Windows Utilities
- 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into.
CImGui.IsWindowChildOf — Method
IsWindowChildOf(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
potential_parent::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
popup_hierarchy,
dock_hierarchy
) -> Bool
CImGui.IsWindowCollapsed — Method
IsWindowCollapsed() -> Bool
CImGui.IsWindowContentHoverable — Function
IsWindowContentHoverable(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
IsWindowContentHoverable(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
flags::Union{CImGui.lib.ImGuiHoveredFlags_, Integer}
) -> Bool
CImGui.IsWindowDocked — Method
CImGui.IsWindowFocused — Function
IsWindowFocused() -> Bool
IsWindowFocused(
flags::Union{CImGui.lib.ImGuiFocusedFlags_, Integer}
) -> Bool
Is current window focused? or its root/child, depending on flags. see flags for options.
CImGui.IsWindowHovered — Function
IsWindowHovered() -> Bool
IsWindowHovered(
flags::Union{CImGui.lib.ImGuiHoveredFlags_, Integer}
) -> Bool
Is current window hovered and hoverable (e.g. not blocked by a popup/modal)? See ImGuiHoveredFlags_ for options. IMPORTANT: If you are trying to check whether your mouse should be dispatched to Dear ImGui or to your underlying app, you should not use this function! Use the 'io.WantCaptureMouse' boolean for that! Refer to FAQ entry "How can I tell whether to dispatch mouse/keyboard to Dear ImGui or my application?" for details.
CImGui.IsWindowInBeginStack — Method
IsWindowInBeginStack(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
CImGui.IsWindowNavFocusable — Method
IsWindowNavFocusable(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
CImGui.IsWindowWithinBeginStackOf — Method
IsWindowWithinBeginStackOf(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
potential_parent::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
CImGui.ItemAdd — Function
ItemAdd(bb::CImGui.lib.ImRect, id::Integer) -> Bool
ItemAdd(
bb::CImGui.lib.ImRect,
id::Integer,
nav_bb::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}}
) -> Bool
ItemAdd(
bb::CImGui.lib.ImRect,
id::Integer,
nav_bb::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}},
extra_flags::Union{CImGui.lib.ImGuiItemFlags_, Integer}
) -> Bool
CImGui.ItemHoverable — Method
ItemHoverable(
bb::CImGui.lib.ImRect,
id::Integer,
item_flags::Union{CImGui.lib.ImGuiItemFlags_, Integer}
) -> Bool
CImGui.ItemSize — Function
ItemSize(bb::CImGui.lib.ImRect)
ItemSize(bb::CImGui.lib.ImRect, text_baseline_y::Real)
FIXME: This is a misleading API since we expect CursorPos to be bb.Min.
CImGui.ItemSize — Function
ItemSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
ItemSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text_baseline_y::Real
)
Basic Helpers for widget code.
CImGui.KeepAliveID — Method
KeepAliveID(id::Integer)
CImGui.LabelText — Method
CImGui.ListBox — Function
ListBox(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
current_item::Union{Ptr{Nothing}, Ref{Int32}},
items::Vector{String}
) -> Bool
ListBox(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
current_item::Union{Ptr{Nothing}, Ref{Int32}},
items::Vector{String},
height_in_items::Integer
) -> Bool
CImGui.LoadIniSettingsFromDisk — Method
LoadIniSettingsFromDisk(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).// call after CreateContext() and before the first call to NewFrame(). NewFrame() automatically calls LoadIniSettingsFromDisk(io.IniFilename).
CImGui.LoadIniSettingsFromMemory — Function
LoadIniSettingsFromMemory(ini_data)
LoadIniSettingsFromMemory(ini_data, ini_size)
Call after CreateContext() and before the first call to NewFrame() to provide .ini data from your own data source.
CImGui.LocalizeGetMsg — Method
LocalizeGetMsg(key::CImGui.lib.ImGuiLocKey) -> Ptr{Int8}
CImGui.LocalizeRegisterEntries — Method
LocalizeRegisterEntries(
entries::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiLocEntry}},
count
)
Localization.
CImGui.LogBegin — Method
LogBegin(
flags::Union{CImGui.lib.ImGuiLogFlags_, Integer},
auto_open_depth
)
Logging/Capture// -> BeginCapture() when we design v2 api, for now stay under the radar by using the old name.
CImGui.LogButtons — Method
CImGui.LogFinish — Method
CImGui.LogRenderedText — Function
LogRenderedText(
ref_pos::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
text
)
LogRenderedText(
ref_pos::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
text,
text_end
)
CImGui.LogSetNextTextDecoration — Method
LogSetNextTextDecoration(prefix, suffix)
CImGui.LogText — Method
CImGui.LogToBuffer — Function
LogToBuffer()
LogToBuffer(auto_open_depth)
Start logging/capturing to internal buffer.
CImGui.LogToClipboard — Function
CImGui.LogToFile — Function
LogToFile()
LogToFile(auto_open_depth)
LogToFile(auto_open_depth, filename)
Start logging to file.
CImGui.LogToTTY — Function
LogToTTY()
LogToTTY(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.// start logging to tty (stdout).
CImGui.MarkIniSettingsDirty — Method
MarkIniSettingsDirty(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.MarkIniSettingsDirty — Method
MarkIniSettingsDirty()
Settings.
CImGui.MarkItemEdited — Method
MarkItemEdited(id::Integer)
Mark data associated to given item as "edited", used by IsItemDeactivatedAfterEdit() function.
CImGui.MemAlloc — Method
MemAlloc(size) -> Ptr{Nothing}
CImGui.MemFree — Method
MemFree(ptr)
CImGui.MenuBarRect — Method
MenuBarRect(
self::Ptr{CImGui.lib.ImGuiWindow}
) -> CImGui.lib.ImRect
CImGui.MenuItem — Function
MenuItem(
label::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
MenuItem(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
shortcut::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
MenuItem(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
shortcut::Union{Ptr{Int8}, Ptr{Nothing}, String},
selected::Bool
) -> Bool
MenuItem(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
shortcut::Union{Ptr{Int8}, Ptr{Nothing}, String},
selected::Bool,
enabled::Bool
) -> Bool
Return true when activated.
CImGui.MenuItem — Function
MenuItem(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
shortcut::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_selected::Ref{Bool}
) -> Bool
MenuItem(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
shortcut::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_selected::Ref{Bool},
enabled::Bool
) -> Bool
Return true when activated + toggle (*pselected) if pselected != NULL.
CImGui.MenuItemEx — Function
MenuItemEx(label, icon) -> Bool
MenuItemEx(label, icon, shortcut) -> Bool
MenuItemEx(label, icon, shortcut, selected) -> Bool
MenuItemEx(label, icon, shortcut, selected, enabled) -> Bool
CImGui.Merge — Method
Merge(
self::Ptr{CImGui.lib.ImDrawListSplitter},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}}
)
CImGui.MouseButtonToKey — Method
MouseButtonToKey(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
) -> CImGui.lib.ImGuiKey
CImGui.MultiSelectAddSetAll — Method
MultiSelectAddSetAll(
ms::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiMultiSelectTempData}},
selected
)
CImGui.MultiSelectAddSetRange — Method
MultiSelectAddSetRange(
ms::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiMultiSelectTempData}},
selected,
range_dir,
first_item::Int64,
last_item::Int64
)
CImGui.MultiSelectItemFooter — Function
MultiSelectItemFooter(id::Integer, p_selected, p_pressed)
MultiSelectItemFooter(
id::Integer,
p_selected,
p_pressed,
extra_flags::Union{CImGui.lib.ImGuiMultiSelectFlags_, Integer}
)
CImGui.MultiSelectItemHeader — Method
MultiSelectItemHeader(
id::Integer,
p_selected,
p_button_flags::Union{Ptr{Nothing}, Ref{Int32}, Ref{Integer}, Ref{CImGui.lib.ImGuiButtonFlags_}}
)
Multi-Select API.
CImGui.NavClearPreferredPosForAxis — Method
NavClearPreferredPosForAxis(axis::CImGui.lib.ImGuiAxis)
CImGui.NavHighlightActivated — Method
NavHighlightActivated(id::Integer)
CImGui.NavInitRequestApplyResult — Method
NavInitRequestApplyResult()
CImGui.NavInitWindow — Method
NavInitWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
force_reinit
)
Keyboard/Gamepad Navigation.
CImGui.NavMoveRequestApplyResult — Method
NavMoveRequestApplyResult()
CImGui.NavMoveRequestButNoResultYet — Method
NavMoveRequestButNoResultYet() -> Bool
CImGui.NavMoveRequestCancel — Method
CImGui.NavMoveRequestForward — Method
NavMoveRequestForward(
move_dir::CImGui.lib.ImGuiDir,
clip_dir::CImGui.lib.ImGuiDir,
move_flags::Union{CImGui.lib.ImGuiNavMoveFlags_, Integer},
scroll_flags::Union{CImGui.lib.ImGuiScrollFlags_, Integer}
)
CImGui.NavMoveRequestResolveWithLastItem — Method
NavMoveRequestResolveWithLastItem(
result::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiNavItemData}}
)
CImGui.NavMoveRequestResolveWithPastTreeNode — Method
NavMoveRequestResolveWithPastTreeNode(
result::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiNavItemData}},
tree_node_data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTreeNodeStackData}}
)
CImGui.NavMoveRequestSubmit — Method
NavMoveRequestSubmit(
move_dir::CImGui.lib.ImGuiDir,
clip_dir::CImGui.lib.ImGuiDir,
move_flags::Union{CImGui.lib.ImGuiNavMoveFlags_, Integer},
scroll_flags::Union{CImGui.lib.ImGuiScrollFlags_, Integer}
)
CImGui.NavMoveRequestTryWrapping — Method
NavMoveRequestTryWrapping(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
move_flags::Union{CImGui.lib.ImGuiNavMoveFlags_, Integer}
)
CImGui.NavUpdateCurrentWindowIsScrollPushableX — Method
NavUpdateCurrentWindowIsScrollPushableX()
CImGui.NewFrame — Method
NewFrame()
Start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame().
CImGui.NewLine — Method
CImGui.NextColumn — Method
NextColumn()
Next column, defaults to current row or next row if the current row is finished.
CImGui.OnCharPressed — Method
OnCharPressed(self::Ptr{CImGui.lib.ImGuiInputTextState}, c)
CImGui.OnKeyPressed — Method
OnKeyPressed(self::Ptr{CImGui.lib.ImGuiInputTextState}, key)
Cannot be inline because we call in code in stb_textedit.h implementation.
CImGui.OpenPopup — Function
OpenPopup(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
OpenPopup(
str_id::Union{Ptr{Int8}, Ptr{Nothing}, String},
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
Popups: open/close functions
- OpenPopup(): set popup state to open (unless one of the specified ImGuiPopupFlags prevent opening).
- OpenPopupXXX() functions return true when the popup is toggled open, which allows you to capture local state if needed. You may also call IsWindowAppearing() inside the later BeginPopup() scope if you need to prepare/compute data for the popup.
- 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.// call to mark popup as open (don't call every frame!).
CImGui.OpenPopup — Function
OpenPopup(id::Integer) -> Bool
OpenPopup(
id::Integer,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
Id overload to facilitate calling from nested stacks.
CImGui.OpenPopupEx — Function
OpenPopupEx(id::Integer) -> Bool
OpenPopupEx(
id::Integer,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
CImGui.OpenPopupOnItemClick — Function
OpenPopupOnItemClick() -> Bool
OpenPopupOnItemClick(str_id) -> Bool
OpenPopupOnItemClick(
str_id,
popup_flags::Union{CImGui.lib.ImGuiPopupFlags_, Integer}
) -> Bool
Helper to open popup when clicked on last item. Default to ImGuiPopupFlagsMouseButtonRight == 1. (note: actually triggers on the mouse _released event to be consistent with popup behaviors).
CImGui.Overlaps — Method
Overlaps(
self::Ptr{CImGui.lib.ImRect},
r::CImGui.lib.ImRect
) -> Bool
CImGui.PassFilter — Function
PassFilter(
self::Ptr{CImGui.lib.ImGuiTextFilter},
text
) -> Bool
PassFilter(
self::Ptr{CImGui.lib.ImGuiTextFilter},
text,
text_end
) -> Bool
CImGui.PathArcTo — Function
PathArcTo(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
a_min,
a_max
)
PathArcTo(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
a_min,
a_max,
num_segments
)
CImGui.PathArcToFast — Method
PathArcToFast(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
a_min_of_12,
a_max_of_12
)
Use precomputed angles for a 12 steps circle.
CImGui.PathBezierCubicCurveTo — Function
PathBezierCubicCurveTo(
self::Ptr{CImGui.lib.ImDrawList},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
PathBezierCubicCurveTo(
self::Ptr{CImGui.lib.ImDrawList},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p4::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
num_segments
)
Cubic Bezier (4 control points).
CImGui.PathBezierQuadraticCurveTo — Function
PathBezierQuadraticCurveTo(
self::Ptr{CImGui.lib.ImDrawList},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
PathBezierQuadraticCurveTo(
self::Ptr{CImGui.lib.ImDrawList},
p2::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p3::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
num_segments
)
Quadratic Bezier (3 control points).
CImGui.PathClear — Method
PathClear(self::Ptr{CImGui.lib.ImDrawList})
Stateful path API, add points then finish with PathFillConvex() or PathStroke()
- Important: filled shapes must always use clockwise winding order! The anti-aliasing fringe depends on it. Counter-clockwise shapes will have "inward" anti-aliasing. so e.g. 'PathArcTo(center, radius, PI * -0.5f, PI)' is ok, whereas 'PathArcTo(center, radius, PI, PI * -0.5f)' won't have correct anti-aliasing when followed by PathFillConvex().
CImGui.PathEllipticalArcTo — Function
PathEllipticalArcTo(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rot,
a_min,
a_max
)
PathEllipticalArcTo(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rot,
a_min,
a_max,
num_segments
)
Ellipse.
CImGui.PathFillConcave — Method
PathFillConcave(
self::Ptr{CImGui.lib.ImDrawList},
col::Integer
)
CImGui.PathFillConvex — Method
PathFillConvex(
self::Ptr{CImGui.lib.ImDrawList},
col::Integer
)
CImGui.PathLineTo — Method
PathLineTo(
self::Ptr{CImGui.lib.ImDrawList},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.PathLineToMergeDuplicate — Method
PathLineToMergeDuplicate(
self::Ptr{CImGui.lib.ImDrawList},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.PathRect — Function
PathRect(
self::Ptr{CImGui.lib.ImDrawList},
rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
PathRect(
self::Ptr{CImGui.lib.ImDrawList},
rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rounding
)
PathRect(
self::Ptr{CImGui.lib.ImDrawList},
rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rounding,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
CImGui.PathStroke — Function
PathStroke(self::Ptr{CImGui.lib.ImDrawList}, col::Integer)
PathStroke(
self::Ptr{CImGui.lib.ImDrawList},
col::Integer,
thickness
)
PathStroke(
self::Ptr{CImGui.lib.ImDrawList},
col::Integer,
thickness,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
CImGui.PlotEx — Method
PlotEx(
plot_type::CImGui.lib.ImGuiPlotType,
label,
values_getter,
data,
values_count,
values_offset,
overlay_text,
scale_min,
scale_max,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Int32
Plot.
CImGui.PlotHistogram — Function
PlotHistogram(label, values, values_count, values_offset=0, overlay_text=C_NULL, scale_min=FLT_MAX, scale_max=FLT_MAX, graph_size=(0,0), stride=sizeof(Cfloat))CImGui.PlotHistogram — Function
PlotHistogram(label, values_getter::Ptr, data::Ptr, values_count, values_offset=0, overlay_text=C_NULL, scale_min=FLT_MAX, scale_max=FLT_MAX, graph_size=ImVec2(0,0))CImGui.PlotLines — Function
PlotLines(label, values, values_count::Integer, values_offset=0, overlay_text=C_NULL, scale_min=FLT_MAX, scale_max=FLT_MAX, graph_size=(0,0), stride=sizeof(Cfloat))CImGui.PlotLines — Function
PlotLines(label, values_getter::Ptr, data::Ptr, values_count, values_offset=0, overlay_text=C_NULL, scale_min=FLT_MAX, scale_max=FLT_MAX, graph_size=(0,0))CImGui.PopClipRect — Method
PopClipRect(self::Ptr{CImGui.lib.ImDrawList})
CImGui.PopClipRect — Method
PopClipRect()
CImGui.PopColumnsBackground — Method
CImGui.PopFocusScope — Method
CImGui.PopFont — Method
PopFont()
CImGui.PopID — Method
CImGui.PopItemFlag — Method
PopItemFlag()
CImGui.PopItemWidth — Method
PopItemWidth()
CImGui.PopPasswordFont — Method
CImGui.PopStyleColor — Function
PopStyleColor()
PopStyleColor(count)
CImGui.PopStyleVar — Function
PopStyleVar()
PopStyleVar(count)
CImGui.PopTextWrapPos — Method
PopTextWrapPos()
CImGui.PopTexture — Method
PopTexture(self::Ptr{CImGui.lib.ImDrawList})
CImGui.PrimQuadUV — Method
PrimQuadUV(
self::Ptr{CImGui.lib.ImDrawList},
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
d::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_c::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_d::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.PrimRect — Method
PrimRect(
self::Ptr{CImGui.lib.ImDrawList},
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
Axis aligned rectangle (composed of two triangles).
CImGui.PrimRectUV — Method
PrimRectUV(
self::Ptr{CImGui.lib.ImDrawList},
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.PrimReserve — Method
PrimReserve(
self::Ptr{CImGui.lib.ImDrawList},
idx_count,
vtx_count
)
Advanced: Primitives allocations
- We render triangles (three vertices)
- All primitives needs to be reserved via PrimReserve() beforehand.
CImGui.PrimUnreserve — Method
PrimUnreserve(
self::Ptr{CImGui.lib.ImDrawList},
idx_count,
vtx_count
)
CImGui.PrimVtx — Method
PrimVtx(
self::Ptr{CImGui.lib.ImDrawList},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
Write vertex with unique index.
CImGui.PrimWriteIdx — Method
PrimWriteIdx(self::Ptr{CImGui.lib.ImDrawList}, idx::UInt16)
CImGui.PrimWriteVtx — Method
PrimWriteVtx(
self::Ptr{CImGui.lib.ImDrawList},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.ProgressBar — Function
ProgressBar(fraction)
ProgressBar(
fraction,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
ProgressBar(
fraction,
size_arg::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
overlay
)
CImGui.PushClipRect — Function
PushClipRect(
self::Ptr{CImGui.lib.ImDrawList},
clip_rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clip_rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
PushClipRect(
self::Ptr{CImGui.lib.ImDrawList},
clip_rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clip_rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
intersect_with_current_clip_rect
)
Render-level scissoring. This is passed down to your render function but not used for CPU-side coarse clipping. Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling).
CImGui.PushClipRect — Method
PushClipRect(
clip_rect_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clip_rect_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
intersect_with_current_clip_rect
)
Clipping
- Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only.
CImGui.PushClipRectFullScreen — Method
PushClipRectFullScreen(self::Ptr{CImGui.lib.ImDrawList})
CImGui.PushColumnClipRect — Method
PushColumnClipRect(column_index)
CImGui.PushColumnsBackground — Method
PushColumnsBackground()
CImGui.PushFocusScope — Method
PushFocusScope(id::Integer)
[EXPERIMENTAL] Focus Scope This is generally used to identify a unique input location (for e.g. a selection set) There is one per window (automatically set in Begin), but:
- Selection patterns generally need to react (e.g. clear a selection) when landing on one item of the set. So in order to identify a set multiple lists in same window may each need a focus scope. If you imagine an hypothetical BeginSelectionGroup()/EndSelectionGroup() api, it would likely call PushFocusScope()/EndFocusScope()
- Shortcut routing also use focus scope as a default location identifier if an owner is not provided.
We don't use the ID Stack for this as it is common to want them separate.
CImGui.PushFont — Method
PushFont(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size_base_unscaled
)
Parameters stacks (font)
- PushFont(font, 0.0f) // Change font and keep current size
- PushFont(NULL, 20.0f) // Keep font and change current size
- PushFont(font, 20.0f) // Change font and set size to 20.0f
- PushFont(font, style.FontSizeBase * 2.0f) // Change font and set size to be twice bigger than current size.
- PushFont(font, font->LegacySize) // Change font and set size to size passed to AddFontXXX() function. Same as pre-1.92 behavior.
IMPORTANT before 1.92, fonts had a single size. They can now be dynamically be adjusted.
- In 1.92 we have REMOVED the single parameter version of PushFont() because it seems like the easiest way to provide an error-proof transition.
- PushFont(font) before 1.92 = PushFont(font, font->LegacySize) after 1.92 // Use default font size as passed to AddFontXXX() function.
IMPORTANT global scale factors are applied over the provided size.
- Global scale factors are: 'style.FontScaleMain', 'style.FontScaleDpi' and maybe more.
- If you want to apply a factor to the current font size:
- CORRECT: PushFont(NULL, style.FontSizeBase) // use current unscaled size == does nothing
- CORRECT: PushFont(NULL, style.FontSizeBase * 2.0f) // use current unscaled size x2 == make text twice bigger
- INCORRECT: PushFont(NULL, GetFontSize()) // INCORRECT! using size after global factors already applied == GLOBAL SCALING FACTORS WILL APPLY TWICE!
- INCORRECT: PushFont(NULL, GetFontSize() * 2.0f) // INCORRECT! using size after global factors already applied == GLOBAL SCALING FACTORS WILL APPLY TWICE!// Use NULL as a shortcut to keep current font. Use 0.0f to keep current size.
CImGui.PushID — Method
CImGui.PushID — Method
CImGui.PushID — Method
PushID(
str_id_begin::Union{Ptr{Int8}, String},
str_id_end::Union{Ptr{Int8}, Ptr{Nothing}, String}
)
Push string into the ID stack (will hash string).
CImGui.PushID — Method
PushID(str_id::Union{Ptr{Int8}, String})
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.// push string into the ID stack (will hash string).
CImGui.PushItemFlag — Method
PushItemFlag(
option::Union{CImGui.lib.ImGuiItemFlags_, Integer},
enabled
)
Modify specified shared item flag, e.g. PushItemFlag(ImGuiItemFlags_NoTabStop, true).
CImGui.PushItemWidth — Method
PushItemWidth(item_width)
Parameters stacks (current window)// push width of items for common large "item+label" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side).
CImGui.PushMultiItemsWidths — Method
PushMultiItemsWidths(components, width_full)
CImGui.PushOverrideID — Method
PushOverrideID(id::Integer)
Push given value as-is at the top of the ID stack (whereas PushID combines old and new hashes).
CImGui.PushPasswordFont — Method
CImGui.PushStyleColor — Method
PushStyleColor(
idx::Union{CImGui.lib.ImGuiCol_, Integer},
col::Integer
)
Parameters stacks (shared)// modify a style color. always use this if you modify the style after NewFrame().
CImGui.PushStyleColor — Method
PushStyleColor(
idx::Union{CImGui.lib.ImGuiCol_, Integer},
col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T}
)
CImGui.PushStyleVar — Method
PushStyleVar(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
val::Real
)
Modify a style float variable. always use this if you modify the style after NewFrame()!
CImGui.PushStyleVar — Method
PushStyleVar(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
val::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Modify a style ImVec2 variable. ".
CImGui.PushStyleVarX — Method
PushStyleVarX(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
val_x
)
Modify X component of a style ImVec2 variable. ".
CImGui.PushStyleVarY — Method
PushStyleVarY(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
val_y
)
Modify Y component of a style ImVec2 variable. ".
CImGui.PushTextWrapPos — Function
PushTextWrapPos()
PushTextWrapPos(wrap_local_pos_x)
Push word-wrapping position for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrapposx' position in window local space.
CImGui.PushTexture — Method
PushTexture(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef
)
CImGui.RadioButton — Method
RadioButton(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
active::Bool
) -> Bool
Use with e.g. if (RadioButton("one", myvalue==1)) myvalue = 1; .
CImGui.RadioButton — Method
RadioButton(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
v::Union{Ptr{Nothing}, Ref{Int32}},
v_button::Integer
) -> Bool
Shortcut to handle the above pattern when value is an integer.
CImGui.Rect — Method
Rect(
self::Ptr{CImGui.lib.ImGuiDockNode}
) -> CImGui.lib.ImRect
CImGui.Rect — Method
Rect(self::Ptr{CImGui.lib.ImGuiWindow}) -> CImGui.lib.ImRect
We don't use g.FontSize because the window may be != g.CurrentWindow.
CImGui.RegisterFontAtlas — Method
RegisterFontAtlas(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.RegisterUserTexture — Method
RegisterUserTexture(
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}}
)
Fonts, drawing// Register external texture. EXPERIMENTAL.
CImGui.ReloadUserBufAndKeepSelection — Method
ReloadUserBufAndKeepSelection(
self::Ptr{CImGui.lib.ImGuiInputTextState}
)
CImGui.ReloadUserBufAndMoveToEnd — Method
ReloadUserBufAndMoveToEnd(
self::Ptr{CImGui.lib.ImGuiInputTextState}
)
CImGui.ReloadUserBufAndSelectAll — Method
ReloadUserBufAndSelectAll(
self::Ptr{CImGui.lib.ImGuiInputTextState}
)
Reload user buf (WIP #2890) If you modify underlying user-passed const char* while active you need to call this (InputText V2 may lift this) strcpy(my_buf, "hello"); if (ImGuiInputTextState* state = ImGui::GetInputTextState(id)) // id may be ImGui::GetItemID() is last item state->ReloadUserBufAndSelectAll();.
CImGui.RemoveContextHook — Method
RemoveContextHook(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
hook_to_remove::Integer
)
CImGui.RemoveCustomRect — Method
RemoveCustomRect(
self::Ptr{CImGui.lib.ImFontAtlas},
id::Integer
)
Unregister a rectangle. Existing pixels will stay in texture until resized / garbage collected.
CImGui.RemoveFont — Method
RemoveFont(
self::Ptr{CImGui.lib.ImFontAtlas},
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}}
)
Remove a font.
CImGui.RemoveSettingsHandler — Method
RemoveSettingsHandler(type_name)
CImGui.Render — Method
Render()
Ends the Dear ImGui frame, finalize the draw data. You can then get call GetDrawData().
CImGui.RenderArrow — Function
RenderArrow(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
dir::CImGui.lib.ImGuiDir
)
RenderArrow(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
dir::CImGui.lib.ImGuiDir,
scale
)
Render helpers (those functions don't access any ImGui state!).
CImGui.RenderArrowDockMenu — Method
RenderArrowDockMenu(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
sz,
col::Integer
)
CImGui.RenderArrowPointingAt — Method
RenderArrowPointingAt(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
half_sz::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
direction::CImGui.lib.ImGuiDir,
col::Integer
)
CImGui.RenderBullet — Method
RenderBullet(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer
)
CImGui.RenderChar — Function
RenderChar(
self::Ptr{CImGui.lib.ImFont},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
size,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
c::UInt16
)
RenderChar(
self::Ptr{CImGui.lib.ImFont},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
size,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
c::UInt16,
cpu_fine_clip::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec4}, Ref{NTuple{4, T} where T}}
)
CImGui.RenderCheckMark — Method
RenderCheckMark(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
sz
)
CImGui.RenderColorComponentMarker — Method
RenderColorComponentMarker(
bb::CImGui.lib.ImRect,
col::Integer,
rounding
)
CImGui.RenderColorRectWithAlphaCheckerboard — Function
RenderColorRectWithAlphaCheckerboard(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fill_col::Integer,
grid_step,
grid_off::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
RenderColorRectWithAlphaCheckerboard(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fill_col::Integer,
grid_step,
grid_off::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rounding
)
RenderColorRectWithAlphaCheckerboard(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fill_col::Integer,
grid_step,
grid_off::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rounding,
flags::Union{CImGui.lib.ImDrawFlags_, Integer}
)
CImGui.RenderDragDropTargetRectEx — Method
RenderDragDropTargetRectEx(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
bb::CImGui.lib.ImRect,
rounding
)
CImGui.RenderDragDropTargetRectForItem — Method
RenderDragDropTargetRectForItem(bb::CImGui.lib.ImRect)
CImGui.RenderFrame — Function
RenderFrame(
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fill_col::Integer
)
RenderFrame(
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fill_col::Integer,
borders
)
RenderFrame(
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
fill_col::Integer,
borders,
rounding
)
CImGui.RenderFrameBorder — Function
RenderFrameBorder(
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
RenderFrameBorder(
p_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
p_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
rounding
)
CImGui.RenderMouseCursor — Method
RenderMouseCursor(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
scale,
mouse_cursor::Union{CImGui.lib.ImGuiMouseCursor_, Integer},
col_fill::Integer,
col_border::Integer,
col_shadow::Integer
)
CImGui.RenderNavCursor — Function
RenderNavCursor(bb::CImGui.lib.ImRect, id::Integer)
RenderNavCursor(
bb::CImGui.lib.ImRect,
id::Integer,
flags::Union{CImGui.lib.ImGuiNavRenderCursorFlags_, Integer}
)
RenderNavCursor(
bb::CImGui.lib.ImRect,
id::Integer,
flags::Union{CImGui.lib.ImGuiNavRenderCursorFlags_, Integer},
rounding
)
Navigation highlight.
CImGui.RenderPlatformWindowsDefault — Function
RenderPlatformWindowsDefault()
RenderPlatformWindowsDefault(platform_render_arg)
RenderPlatformWindowsDefault(
platform_render_arg,
renderer_render_arg
)
Call in main loop. will call RenderWindow/SwapBuffers platform functions for each secondary viewport which doesn't have the ImGuiViewportFlags_Minimized flag set. May be reimplemented by user for custom rendering needs.
CImGui.RenderRectFilledInRangeH — Method
RenderRectFilledInRangeH(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
rect::CImGui.lib.ImRect,
col::Integer,
fill_x0,
fill_x1,
rounding
)
CImGui.RenderRectFilledWithHole — Method
RenderRectFilledWithHole(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
outer::CImGui.lib.ImRect,
inner::CImGui.lib.ImRect,
col::Integer,
rounding
)
CImGui.RenderText — Function
RenderText(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text
)
RenderText(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end
)
RenderText(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
hide_text_after_hash
)
Render helpers AVOID USING OUTSIDE OF IMGUI.CPP! NOT FOR PUBLIC CONSUMPTION. THOSE FUNCTIONS ARE A MESS. THEIR SIGNATURE AND BEHAVIOR WILL CHANGE, THEY NEED TO BE REFACTORED INTO SOMETHING DECENT. NB: All position are in absolute pixels coordinates (we are never using window coordinates internally).
CImGui.RenderText — Function
RenderText(
self::Ptr{CImGui.lib.ImFont},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
size,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
clip_rect::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
text_begin,
text_end
)
RenderText(
self::Ptr{CImGui.lib.ImFont},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
size,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
clip_rect::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
text_begin,
text_end,
wrap_width
)
RenderText(
self::Ptr{CImGui.lib.ImFont},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
size,
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col::Integer,
clip_rect::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
text_begin,
text_end,
wrap_width,
flags::Union{CImGui.lib.ImDrawTextFlags_, Integer}
)
CImGui.RenderTextClipped — Function
RenderTextClipped(
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}}
)
RenderTextClipped(
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
align::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
RenderTextClipped(
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
align::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clip_rect::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}}
)
CImGui.RenderTextClippedEx — Function
RenderTextClippedEx(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}}
)
RenderTextClippedEx(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
align::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
RenderTextClippedEx(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}},
align::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clip_rect::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}}
)
CImGui.RenderTextEllipsis — Method
RenderTextEllipsis(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
pos_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
pos_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
ellipsis_max_x,
text,
text_end,
text_size_if_known::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVec2}, Ref{Tuple{T, T} where T}}
)
CImGui.RenderTextWrapped — Method
RenderTextWrapped(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
text,
text_end,
wrap_width
)
CImGui.Reserve — Method
Reserve(self::Ptr{CImGui.lib.ImGuiTextBuffer}, capacity)
CImGui.Reset — Method
Reset(
self::Ptr{CImGui.lib.ImGuiListClipperData},
clipper::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiListClipper}}
)
CImGui.ResetMouseDragDelta — Function
ResetMouseDragDelta()
ResetMouseDragDelta(
button::Union{CImGui.lib.ImGuiMouseButton_, Integer}
)
CImGui.Resize — Method
Resize(self::Ptr{CImGui.lib.ImGuiTextBuffer}, size)
Similar to resize(0) on ImVector: empty string but don't free buffer.
CImGui.SameLine — Function
SameLine()
SameLine(offset_from_start_x)
SameLine(offset_from_start_x, spacing)
Call between widgets or groups to layout them horizontally. X position given in window coordinates.
CImGui.SaveIniSettingsToDisk — Method
SaveIniSettingsToDisk(ini_filename)
This is automatically called (if io.IniFilename is not empty) a few seconds after any modification that should be reflected in the .ini file (and also by DestroyContext).
CImGui.SaveIniSettingsToMemory — Function
SaveIniSettingsToMemory() -> Ptr{Int8}
SaveIniSettingsToMemory(out_ini_size) -> Ptr{Int8}
Return a zero-terminated string with the .ini data which you can save by your own mean. call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings.
CImGui.ScaleAllSizes — Method
ScaleAllSizes(
self::Ptr{CImGui.lib.ImGuiStyle},
scale_factor
)
Scale all spacing/padding/thickness values. Do not scale fonts. See comments in definition. Consider not calling this if your initial scale factor if <1.0.
CImGui.ScaleClipRects — Method
ScaleClipRects(
self::Ptr{CImGui.lib.ImDrawData},
fb_scale::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Helper to scale the ClipRect field of each ImDrawCmd. Use if your final output buffer is at a different scale than Dear ImGui expects, or if there is a difference between your window resolution and framebuffer resolution.
CImGui.ScaleWindowsInViewport — Method
ScaleWindowsInViewport(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}},
scale
)
CImGui.ScrollToBringRectIntoView — Method
ScrollToBringRectIntoView(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
rect::CImGui.lib.ImRect
)
//#ifndef IMGUIDISABLEOBSOLETE_FUNCTIONS.
CImGui.ScrollToItem — Function
ScrollToItem()
ScrollToItem(
flags::Union{CImGui.lib.ImGuiScrollFlags_, Integer}
)
Early work-in-progress API (ScrollToItem() will become public).
CImGui.ScrollToRect — Function
ScrollToRect(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
rect::CImGui.lib.ImRect
)
ScrollToRect(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
rect::CImGui.lib.ImRect,
flags::Union{CImGui.lib.ImGuiScrollFlags_, Integer}
)
CImGui.ScrollToRectEx — Function
ScrollToRectEx(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
rect::CImGui.lib.ImRect
) -> CImGui.lib.ImVec2
ScrollToRectEx(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
rect::CImGui.lib.ImRect,
flags::Union{CImGui.lib.ImGuiScrollFlags_, Integer}
) -> CImGui.lib.ImVec2
CImGui.Scrollbar — Method
Scrollbar(axis::CImGui.lib.ImGuiAxis)
CImGui.ScrollbarEx — Function
ScrollbarEx(
bb::CImGui.lib.ImRect,
id::Integer,
axis::CImGui.lib.ImGuiAxis,
p_scroll_v::Union{Ptr{Nothing}, Ref{Int64}},
avail_v::Int64,
contents_v::Int64
) -> Bool
ScrollbarEx(
bb::CImGui.lib.ImRect,
id::Integer,
axis::CImGui.lib.ImGuiAxis,
p_scroll_v::Union{Ptr{Nothing}, Ref{Int64}},
avail_v::Int64,
contents_v::Int64,
draw_rounding_flags::Union{CImGui.lib.ImDrawFlags_, Integer}
) -> Bool
CImGui.SeekCursorForItem — Method
SeekCursorForItem(
self::Ptr{CImGui.lib.ImGuiListClipper},
item_index
)
Seek cursor toward given item. This is automatically called while stepping.
- The only reason to call this is: you can use ImGuiListClipper::Begin(INT_MAX) if you don't know item count ahead of time.
- In this case, after all steps are done, you'll want to call SeekCursorForItem(item_count).
CImGui.SelectAll — Method
SelectAll(self::Ptr{CImGui.lib.ImGuiInputTextCallbackData})
CImGui.SelectAll — Method
SelectAll(self::Ptr{CImGui.lib.ImGuiInputTextState})
CImGui.Selectable — Function
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_selected::Ref{Bool}
) -> Bool
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_selected::Ref{Bool},
flags::Union{CImGui.lib.ImGuiSelectableFlags_, Integer}
) -> Bool
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
p_selected::Ref{Bool},
flags::Union{CImGui.lib.ImGuiSelectableFlags_, Integer},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
"bool* p_selected" point to the selection state (read-write), as a convenient helper.
CImGui.Selectable — Function
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
selected::Bool
) -> Bool
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
selected::Bool,
flags::Union{CImGui.lib.ImGuiSelectableFlags_, Integer}
) -> Bool
Selectable(
label::Union{Ptr{Int8}, Ptr{Nothing}, String},
selected::Bool,
flags::Union{CImGui.lib.ImGuiSelectableFlags_, Integer},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Bool
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.// "bool selected" carry the selection state (read-only). Selectable() is clicked is returns true so you can modify your selection state. size.x==0.0: use remaining width, size.x>0.0: specify width. size.y==0.0: use label height, size.y>0.0: specify height.
CImGui.Separator — Method
Separator()
Other layout functions// separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.
CImGui.SeparatorEx — Function
SeparatorEx(
flags::Union{CImGui.lib.ImGuiSeparatorFlags_, Integer}
)
SeparatorEx(
flags::Union{CImGui.lib.ImGuiSeparatorFlags_, Integer},
thickness
)
CImGui.SeparatorText — Method
CImGui.SeparatorTextEx — Method
SeparatorTextEx(id::Integer, label, label_end, extra_width)
CImGui.SetActiveID — Method
SetActiveID(
id::Integer,
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.SetActiveIdUsingAllKeyboardKeys — Method
SetActiveIdUsingAllKeyboardKeys()
CImGui.SetAllInt — Method
SetAllInt(self::Ptr{CImGui.lib.ImGuiStorage}, val)
Obsolete: use on your own storage if you know only integer are being stored (open/close all tree nodes).
CImGui.SetAllocatorFunctions — Function
SetAllocatorFunctions(
alloc_func::Ptr{Nothing},
free_func::Ptr{Nothing}
)
SetAllocatorFunctions(
alloc_func::Ptr{Nothing},
free_func::Ptr{Nothing},
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.
CImGui.SetAppAcceptingEvents — Method
SetAppAcceptingEvents(
self::Ptr{CImGui.lib.ImGuiIO},
accepting_events
)
Set master flag for accepting key/mouse/text events (default to true). Useful if you have native dialog boxes that are interrupting your application loop/refresh, and you want to disable events being queued while your app is frozen.
CImGui.SetBit — Method
SetBit(self::Ptr{CImGui.lib.ImBitVector}, n)
CImGui.SetBit — Method
CImGui.SetBool — Method
SetBool(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
val
)
CImGui.SetCircleTessellationMaxError — Method
SetCircleTessellationMaxError(
self::Ptr{CImGui.lib.ImDrawListSharedData},
max_error
)
CImGui.SetClipboardText — Method
SetClipboardText(text)
CImGui.SetColumnOffset — Method
SetColumnOffset(column_index, offset_x)
Set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column.
CImGui.SetColumnWidth — Method
SetColumnWidth(column_index, width)
Set column width (in pixels). pass -1 to use current column.
CImGui.SetContextName — Method
SetContextName(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
name
)
Context name & generic context hooks.
CImGui.SetCurrentChannel — Method
SetCurrentChannel(
self::Ptr{CImGui.lib.ImDrawListSplitter},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
channel_idx
)
CImGui.SetCurrentContext — Method
SetCurrentContext(
ctx::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}}
)
CImGui.SetCurrentFont — Method
SetCurrentFont(
font::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFont}},
font_size_before_scaling,
font_size_after_scaling
)
CImGui.SetCurrentViewport — Method
SetCurrentViewport(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}}
)
CImGui.SetCursorPos — Method
SetCursorPos(
local_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
[window-local] ".
CImGui.SetCursorPosX — Method
CImGui.SetCursorPosY — Method
CImGui.SetCursorScreenPos — Method
SetCursorScreenPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Cursor position, absolute coordinates. THIS IS YOUR BEST FRIEND.
CImGui.SetDragDropPayload — Function
SetDragDropPayload(type, data, sz) -> Bool
SetDragDropPayload(
type,
data,
sz,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
) -> Bool
Type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui. Return true when payload has been accepted.
CImGui.SetFloat — Method
SetFloat(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
val
)
CImGui.SetFocusID — Method
SetFocusID(
id::Integer,
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.SetFontLoader — Method
SetFontLoader(
self::Ptr{CImGui.lib.ImFontAtlas},
font_loader::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontLoader}}
)
Change font loader at runtime.
CImGui.SetFontRasterizerDensity — Method
SetFontRasterizerDensity(rasterizer_density)
CImGui.SetHSV — Function
SetHSV(self::Ptr{CImGui.lib.ImColor}, h, s, v)
SetHSV(self::Ptr{CImGui.lib.ImColor}, h, s, v, a)
FIXME-OBSOLETE: May need to obsolete/cleanup those helpers.
CImGui.SetHoveredID — Method
SetHoveredID(id::Integer)
CImGui.SetInt — Method
SetInt(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
val
)
CImGui.SetItemDefaultFocus — Method
SetItemDefaultFocus()
Focus, Activation// make last item the default focused item of a newly appearing window.
CImGui.SetItemKeyOwner — Method
SetItemKeyOwner(
key::CImGui.lib.ImGuiKey,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
) -> Bool
CImGui.SetItemKeyOwner — Method
SetItemKeyOwner(key::CImGui.lib.ImGuiKey) -> Bool
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(...); if (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.
- The return value of SetItemKeyOwner() says if ownership has been requested for the item, which is a shortcut to calling yet non-public TestKeyOwner() function.
- Many related features are still in imgui_internal.h. For instance, most IsKeyXXX()/IsMouseXXX() functions have an owner-id-aware version.// Set key owner to last item ID if it is hovered or active. Return true when ownership has been set. Roughly equivalent to 'if (TestKeyOwner(key, GetItemID()) && (IsItemHovered() || IsItemActive())) SetKeyOwner(key, GetItemID());'.
CImGui.SetItemSelected — Method
SetItemSelected(
self::Ptr{CImGui.lib.ImGuiSelectionBasicStorage},
id::Integer,
selected
)
Add/remove an item from selection (generally done by ApplyRequests() function).
CImGui.SetItemTooltip — Method
SetItemTooltip(fmt)
Set a text-only tooltip if preceding item was hovered. override any previous call to SetTooltip().
CImGui.SetKeyEventNativeData — Function
SetKeyEventNativeData(
self::Ptr{CImGui.lib.ImGuiIO},
key::CImGui.lib.ImGuiKey,
native_keycode,
native_scancode
)
SetKeyEventNativeData(
self::Ptr{CImGui.lib.ImGuiIO},
key::CImGui.lib.ImGuiKey,
native_keycode,
native_scancode,
native_legacy_index
)
[Optional] Specify index for legacy <1.87 IsKeyXXX() functions with native indices + specify native keycode, scancode.
CImGui.SetKeyOwner — Function
SetKeyOwner(key::CImGui.lib.ImGuiKey, owner_id::Integer)
SetKeyOwner(
key::CImGui.lib.ImGuiKey,
owner_id::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
)
CImGui.SetKeyOwnersForKeyChord — Function
SetKeyOwnersForKeyChord(key::Integer, owner_id::Integer)
SetKeyOwnersForKeyChord(
key::Integer,
owner_id::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
)
CImGui.SetKeyboardFocusHere — Function
SetKeyboardFocusHere()
SetKeyboardFocusHere(offset)
Focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget.
CImGui.SetLastItemData — Method
SetLastItemData(
item_id::Integer,
item_flags::Union{CImGui.lib.ImGuiItemFlags_, Integer},
status_flags::Union{CImGui.lib.ImGuiItemStatusFlags_, Integer},
item_rect::CImGui.lib.ImRect
)
CImGui.SetLocalFlags — Method
SetLocalFlags(
self::Ptr{CImGui.lib.ImGuiDockNode},
flags::Union{CImGui.lib.ImGuiDockNodeFlags_, Integer}
)
CImGui.SetMouseCursor — Method
SetMouseCursor(
cursor_type::Union{CImGui.lib.ImGuiMouseCursor_, Integer}
)
Set desired mouse cursor shape.
CImGui.SetNavCursorVisible — Method
SetNavCursorVisible(visible)
Keyboard/Gamepad Navigation// alter visibility of keyboard/gamepad cursor. by default: show when using an arrow key, hide when clicking with mouse.
CImGui.SetNavCursorVisibleAfterMove — Method
SetNavCursorVisibleAfterMove()
CImGui.SetNavFocusScope — Method
SetNavFocusScope(focus_scope_id::Integer)
CImGui.SetNavID — Method
SetNavID(
id::Integer,
nav_layer::CImGui.lib.ImGuiNavLayer,
focus_scope_id::Integer,
rect_rel::CImGui.lib.ImRect
)
CImGui.SetNavWindow — Method
SetNavWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.SetNextFrameWantCaptureKeyboard — Method
SetNextFrameWantCaptureKeyboard(want_capture_keyboard)
Override io.WantCaptureKeyboard flag next frame (said flag is left for your application to handle, typically when true it instructs your app to ignore inputs). e.g. force capture keyboard when your widget is being hovered. This is equivalent to setting "io.WantCaptureKeyboard = wantcapturekeyboard"; after the next NewFrame() call.
CImGui.SetNextFrameWantCaptureMouse — Method
SetNextFrameWantCaptureMouse(want_capture_mouse)
Override io.WantCaptureMouse flag next frame (said flag is left for your application to handle, typical when true it instructs your app to ignore inputs). This is equivalent to setting "io.WantCaptureMouse = wantcapturemouse;" after the next NewFrame() call.
CImGui.SetNextItemAllowOverlap — Method
SetNextItemAllowOverlap()
Overlapping mode// allow next item to be overlapped by a subsequent item. Typically useful with InvisibleButton(), Selectable(), TreeNode() covering an area where subsequent items may need to be added. Note that both Selectable() and TreeNode() have dedicated flags doing this.
CImGui.SetNextItemColorMarker — Method
SetNextItemColorMarker(col::Integer)
CImGui.SetNextItemOpen — Function
SetNextItemOpen(is_open)
SetNextItemOpen(
is_open,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set next TreeNode/CollapsingHeader open state.
CImGui.SetNextItemRefVal — Method
SetNextItemRefVal(
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data
)
CImGui.SetNextItemSelectionUserData — Method
SetNextItemSelectionUserData(selection_user_data::Int64)
CImGui.SetNextItemShortcut — Function
SetNextItemShortcut(key_chord::Integer)
SetNextItemShortcut(
key_chord::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
)
CImGui.SetNextItemStorageID — Method
SetNextItemStorageID(storage_id::Integer)
Set id to use for open/close storage (default to same as item id).
CImGui.SetNextItemWidth — Method
SetNextItemWidth(item_width)
Set width of the next common large "item+label" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side).
CImGui.SetNextWindowBgAlpha — Method
SetNextWindowBgAlpha(alpha)
Set next window background color alpha. helper to easily override the Alpha component of ImGuiColWindowBg/ChildBg/PopupBg. you may also use ImGuiWindowFlagsNoBackground.
CImGui.SetNextWindowClass — Method
SetNextWindowClass(
window_class::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindowClass}}
)
Set next window class (control docking compatibility + provide hints to platform backend via custom viewport flags and platform parent/child relationship).
CImGui.SetNextWindowCollapsed — Function
SetNextWindowCollapsed(collapsed)
SetNextWindowCollapsed(
collapsed,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set next window collapsed state. call before Begin().
CImGui.SetNextWindowContentSize — Method
SetNextWindowContentSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Set next window content size (~ scrollable client area, which enforce the range of scrollbars). Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin().
CImGui.SetNextWindowDockID — Function
SetNextWindowDockID(dock_id::Integer)
SetNextWindowDockID(
dock_id::Integer,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set next window dock id.
CImGui.SetNextWindowFocus — Method
CImGui.SetNextWindowPos — Function
SetNextWindowPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetNextWindowPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
SetNextWindowPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer},
pivot::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Window manipulation
- Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin).// set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc.
CImGui.SetNextWindowRefreshPolicy — Method
SetNextWindowRefreshPolicy(
flags::Union{CImGui.lib.ImGuiWindowRefreshFlags_, Integer}
)
Windows: Idle, Refresh Policies [EXPERIMENTAL].
CImGui.SetNextWindowScroll — Method
SetNextWindowScroll(
scroll::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Set next window scrolling value (use < 0.0f to not affect a given axis).
CImGui.SetNextWindowSize — Function
SetNextWindowSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetNextWindowSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin().
CImGui.SetNextWindowSizeConstraints — Function
SetNextWindowSizeConstraints(
size_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
size_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetNextWindowSizeConstraints(
size_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
size_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
custom_callback::Union{Ptr{Nothing}, Base.CFunction}
)
SetNextWindowSizeConstraints(
size_min::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
size_max::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
custom_callback::Union{Ptr{Nothing}, Base.CFunction},
custom_callback_data
)
Set next window size limits. use 0.0f or FLT_MAX if you don't want limits. Use -1 for both min and max of same axis to preserve current size (which itself is a constraint). Use callback to apply non-trivial programmatic constraints.
CImGui.SetNextWindowViewport — Method
CImGui.SetScrollFromPosX — Function
SetScrollFromPosX(local_x::Real)
SetScrollFromPosX(local_x::Real, center_x_ratio::Real)
Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position.
CImGui.SetScrollFromPosX — Method
SetScrollFromPosX(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
local_x::Real,
center_x_ratio::Real
)
CImGui.SetScrollFromPosY — Function
SetScrollFromPosY(local_y::Real)
SetScrollFromPosY(local_y::Real, center_y_ratio::Real)
Adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position.
CImGui.SetScrollFromPosY — Method
SetScrollFromPosY(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
local_y::Real,
center_y_ratio::Real
)
CImGui.SetScrollHereX — Function
SetScrollHereX()
SetScrollHereX(center_x_ratio)
Adjust scrolling amount to make current cursor position visible. centerxratio=0.0: left, 0.5: center, 1.0: right. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead.
CImGui.SetScrollHereY — Function
SetScrollHereY()
SetScrollHereY(center_y_ratio)
Adjust scrolling amount to make current cursor position visible. centeryratio=0.0: top, 0.5: center, 1.0: bottom. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead.
CImGui.SetScrollX — Method
CImGui.SetScrollX — Method
SetScrollX(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
scroll_x::Real
)
Scrolling.
CImGui.SetScrollY — Method
CImGui.SetScrollY — Method
SetScrollY(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
scroll_y::Real
)
CImGui.SetSelection — Method
SetSelection(
self::Ptr{CImGui.lib.ImGuiInputTextCallbackData},
s,
e
)
CImGui.SetSelection — Method
SetSelection(
self::Ptr{CImGui.lib.ImGuiInputTextState},
start,
_end
)
CImGui.SetShortcutRouting — Method
SetShortcutRouting(
key_chord::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer},
owner_id::Integer
) -> Bool
Owner_id needs to be explicit and cannot be 0.
CImGui.SetStateStorage — Method
SetStateStorage(
storage::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStorage}}
)
Replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it).
CImGui.SetStatus — Method
SetStatus(
self::Ptr{CImGui.lib.ImTextureData},
status::CImGui.lib.ImTextureStatus
)
CImGui.SetTabItemClosed — Method
SetTabItemClosed(tab_or_docked_window_label)
Notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name.
CImGui.SetTexID — Method
SetTexID(
self::Ptr{CImGui.lib.ImTextureData},
tex_id::UInt64
)
Called by Renderer backend
- Call SetTexID() and SetStatus() after honoring texture requests. Never modify TexID and Status directly!
- A backend may decide to destroy a texture that we did not request to destroy, which is fine (e.g. freeing resources), but we immediately set the texture back in _WantCreate mode.
CImGui.SetTooltip — Method
SetTooltip(fmt)
Set a text-only tooltip. Often used after a ImGui::IsItemHovered() check. Override any previous call to SetTooltip().
CImGui.SetVoidPtr — Method
SetVoidPtr(
self::Ptr{CImGui.lib.ImGuiStorage},
key::Integer,
val
)
CImGui.SetWindowClipRectBeforeSetChannel — Method
SetWindowClipRectBeforeSetChannel(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
clip_rect::CImGui.lib.ImRect
)
Legacy Columns API (this is not exposed because we will encourage transitioning to the Tables API).
CImGui.SetWindowCollapsed — Function
SetWindowCollapsed(collapsed::Bool)
SetWindowCollapsed(
collapsed::Bool,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
(not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed().
CImGui.SetWindowCollapsed — Function
SetWindowCollapsed(
name::Union{Ptr{Int8}, String},
collapsed::Bool
)
SetWindowCollapsed(
name::Union{Ptr{Int8}, String},
collapsed::Bool,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set named window collapsed state.
CImGui.SetWindowCollapsed — Function
SetWindowCollapsed(
window::Ref{CImGui.lib.ImGuiWindow},
collapsed::Bool
)
SetWindowCollapsed(
window::Ref{CImGui.lib.ImGuiWindow},
collapsed::Bool,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
CImGui.SetWindowDock — Method
SetWindowDock(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
dock_id::Integer,
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
CImGui.SetWindowFocus — Method
SetWindowFocus(name::Union{Ptr{Int8}, Ptr{Nothing}, String})
Set named window to be focused / top-most. use NULL to remove focus.
CImGui.SetWindowFocus — Method
SetWindowFocus()
(not recommended) set current window to be focused / top-most. prefer using SetNextWindowFocus().
CImGui.SetWindowHiddenAndSkipItemsForCurrentFrame — Method
SetWindowHiddenAndSkipItemsForCurrentFrame(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.SetWindowHitTestHole — Method
SetWindowHitTestHole(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.SetWindowParentWindowForFocusRoute — Method
SetWindowParentWindowForFocusRoute(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
parent_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
You may also use SetNextWindowClass()'s FocusRouteParentWindowId field.
CImGui.SetWindowPos — Function
SetWindowPos(
name::Union{Ptr{Int8}, String},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetWindowPos(
name::Union{Ptr{Int8}, String},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set named window position.
CImGui.SetWindowPos — Function
SetWindowPos(
window::Ref{CImGui.lib.ImGuiWindow},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetWindowPos(
window::Ref{CImGui.lib.ImGuiWindow},
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
CImGui.SetWindowPos — Function
SetWindowPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetWindowPos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
(not recommended) set current window position - call within Begin()/End(). prefer using SetNextWindowPos(), as this may incur tearing and side-effects.
CImGui.SetWindowSize — Function
SetWindowSize(
name::Union{Ptr{Int8}, String},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetWindowSize(
name::Union{Ptr{Int8}, String},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
Set named window size. set axis to 0.0f to force an auto-fit on this axis.
CImGui.SetWindowSize — Function
SetWindowSize(
window::Ref{CImGui.lib.ImGuiWindow},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetWindowSize(
window::Ref{CImGui.lib.ImGuiWindow},
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
CImGui.SetWindowSize — Function
SetWindowSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
SetWindowSize(
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cond::Union{CImGui.lib.ImGuiCond_, Integer}
)
(not recommended) set current window size - call within Begin()/End(). set to ImVec2(0, 0) to force an auto-fit. prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects.
CImGui.SetWindowViewport — Method
SetWindowViewport(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}}
)
CImGui.ShadeVertsLinearColorGradientKeepAlpha — Method
ShadeVertsLinearColorGradientKeepAlpha(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
vert_start_idx,
vert_end_idx,
gradient_p0::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
gradient_p1::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
col0::Integer,
col1::Integer
)
Shade functions (write over already created vertices).
CImGui.ShadeVertsLinearUV — Method
ShadeVertsLinearUV(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
vert_start_idx,
vert_end_idx,
a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_a::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
uv_b::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
clamp
)
CImGui.ShadeVertsTransformPos — Method
ShadeVertsTransformPos(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
vert_start_idx,
vert_end_idx,
pivot_in::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
cos_a,
sin_a,
pivot_out::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.Shortcut — Function
Shortcut(key_chord::Integer) -> Bool
Shortcut(
key_chord::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer}
) -> Bool
Inputs Utilities: Shortcut Testing & Routing
- Typical use is e.g.: 'if (ImGui::Shortcut(ImGuiModCtrl | ImGuiKeyS)) ... '.
- Flags: Default route use ImGuiInputFlagsRouteFocused, but see ImGuiInputFlagsRouteGlobal and other options in ImGuiInputFlags_!
- Flags: Use ImGuiInputFlags_Repeat to support repeat.
- ImGuiKeyChord = a ImGuiKey + optional ImGuiModAlt/ImGuiModCtrl/ImGuiModShift/ImGuiModSuper. ImGuiKeyC // Accepted by functions taking ImGuiKey or ImGuiKeyChord arguments ImGuiModCtrl | ImGuiKeyC // Accepted by functions taking ImGuiKeyChord arguments only ImGuiModXXX 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() -> the function has no side-effect.
- Shortcut() submits a route, routes are resolved, if it currently can be routed it calls IsKeyChordPressed() -> the function has (desirable) side-effects as it can prevents another call from getting the route.
- Visualize registered routes in 'Metrics/Debugger->Inputs'.
CImGui.Shortcut — Method
Shortcut(
key_chord::Integer,
flags::Union{CImGui.lib.ImGuiInputFlags_, Integer},
owner_id::Integer
) -> Bool
Shortcut Testing & Routing
- Set Shortcut() and SetNextItemShortcut() in imgui.h
- When a policy (except for ImGuiInputFlagsRouteAlways ) is set, Shortcut() will register itself with SetShortcutRouting(), allowing the system to decide where to route the input among other route-aware calls. ( using ImGuiInputFlagsRouteAlways is roughly equivalent to calling IsKeyChordPressed(key) and bypassing route registration and check)
- When using one of the routing option:
- The default route is ImGuiInputFlags_RouteFocused (accept inputs if window is in focus stack. Deep-most focused window takes inputs. ActiveId takes inputs over deep-most focused window.)
- Routes are requested given a chord (key + modifiers) and a routing policy.
- Routes are resolved during NewFrame(): if keyboard modifiers are matching current ones: SetKeyOwner() is called + route is granted for the frame.
- Each route may be granted to a single owner. When multiple requests are made we have policies to select the winning route (e.g. deep most window).
- Multiple read sites may use the same owner id can all access the granted route.
- When owner_id is 0 we use the current Focus Scope ID as a owner ID in order to identify our location.
- You can chain two unrelated windows in the focus stack using SetWindowParentWindowForFocusRoute() e.g. if you have a tool window associated to a document, and you want document shortcuts to run when the tool is focused.
CImGui.ShowAboutWindow — Function
ShowAboutWindow()
ShowAboutWindow(p_open)
Create About window. display Dear ImGui version, credits and build/system information.
CImGui.ShowDebugLogWindow — Function
ShowDebugLogWindow()
ShowDebugLogWindow(p_open)
Create Debug Log window. display a simplified log of important dear imgui events.
CImGui.ShowDemoWindow — Function
ShowDemoWindow()
ShowDemoWindow(p_open)
Demo, Debug, Information// create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
CImGui.ShowFontAtlas — Method
ShowFontAtlas(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.ShowFontSelector — Method
ShowFontSelector(label)
Add font selector block (not a window), essentially a combo listing the loaded fonts.
CImGui.ShowIDStackToolWindow — Function
ShowIDStackToolWindow()
ShowIDStackToolWindow(p_open)
Create Stack Tool window. hover items with mouse to query information about the source of their unique ID.
CImGui.ShowMetricsWindow — Function
ShowMetricsWindow()
ShowMetricsWindow(p_open)
Create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc.
CImGui.ShowStyleEditor — Function
ShowStyleEditor()
ShowStyleEditor(
ref::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStyle}}
)
Add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style).
CImGui.ShowStyleSelector — Method
ShowStyleSelector(label) -> Bool
Add style selector block (not a window), essentially a combo listing the default styles.
CImGui.ShowUserGuide — Method
ShowUserGuide()
Add basic help/info block (not a window): how to manipulate ImGui as an end-user (mouse/keyboard controls).
CImGui.ShrinkWidths — Method
ShrinkWidths(
items::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiShrinkWidthItem}},
count,
width_excess,
width_min
)
CImGui.Shutdown — Method
Shutdown()
Since 1.60 this is a private function. You can call DestroyContext() to destroy the context created by CreateContext().
CImGui.Size — Method
Size(self::Ptr{CImGui.lib.ImGuiTextBuffer}) -> Int32
CImGui.Size — Method
Size(self::Ptr{CImGui.lib.ImGuiTextIndex}) -> Int32
CImGui.SliderAngle — Function
SliderAngle(label, v_rad) -> Bool
SliderAngle(label, v_rad, v_degrees_min) -> Bool
SliderAngle(
label,
v_rad,
v_degrees_min,
v_degrees_max
) -> Bool
SliderAngle(
label,
v_rad,
v_degrees_min,
v_degrees_max,
format
) -> Bool
SliderAngle(
label,
v_rad,
v_degrees_min,
v_degrees_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderBehavior — Method
SliderBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_v,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer},
out_grab_bb::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}}
) -> Bool
CImGui.SliderFloat — Function
SliderFloat(label, v, v_min, v_max) -> Bool
SliderFloat(label, v, v_min, v_max, format) -> Bool
SliderFloat(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
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 theImGuiSliderFlags flags=0' argument. If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361// adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display.
CImGui.SliderFloat2 — Function
SliderFloat2(label, v, v_min, v_max) -> Bool
SliderFloat2(label, v, v_min, v_max, format) -> Bool
SliderFloat2(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderFloat3 — Function
SliderFloat3(label, v, v_min, v_max) -> Bool
SliderFloat3(label, v, v_min, v_max, format) -> Bool
SliderFloat3(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderFloat4 — Function
SliderFloat4(label, v, v_min, v_max) -> Bool
SliderFloat4(label, v, v_min, v_max, format) -> Bool
SliderFloat4(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderInt — Function
SliderInt(label, v, v_min, v_max) -> Bool
SliderInt(label, v, v_min, v_max, format) -> Bool
SliderInt(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderInt2 — Function
SliderInt2(label, v, v_min, v_max) -> Bool
SliderInt2(label, v, v_min, v_max, format) -> Bool
SliderInt2(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderInt3 — Function
SliderInt3(label, v, v_min, v_max) -> Bool
SliderInt3(label, v, v_min, v_max, format) -> Bool
SliderInt3(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderInt4 — Function
SliderInt4(label, v, v_min, v_max) -> Bool
SliderInt4(label, v, v_min, v_max, format) -> Bool
SliderInt4(
label,
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderScalar — Function
SliderScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max
) -> Bool
SliderScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max,
format
) -> Bool
SliderScalar(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SliderScalarN — Function
SliderScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_min,
p_max
) -> Bool
SliderScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_min,
p_max,
format
) -> Bool
SliderScalarN(
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
components,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.SmallButton — Method
SmallButton(label) -> Bool
Button with (FramePadding.y == 0) to easily embed within text.
CImGui.Spacing — Method
CImGui.Split — Method
Split(
self::Ptr{CImGui.lib.ImDrawListSplitter},
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
count
)
CImGui.Split — Method
Split(
self::Ptr{CImGui.lib.ImGuiTextRange},
separator,
out::Union{Ptr{Nothing}, Ref{CImGui.lib.ImVector_ImGuiTextRange}}
)
CImGui.SplitterBehavior — Function
SplitterBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
axis::CImGui.lib.ImGuiAxis,
size1,
size2,
min_size1,
min_size2
) -> Bool
SplitterBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
axis::CImGui.lib.ImGuiAxis,
size1,
size2,
min_size1,
min_size2,
hover_extend
) -> Bool
SplitterBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
axis::CImGui.lib.ImGuiAxis,
size1,
size2,
min_size1,
min_size2,
hover_extend,
hover_visibility_delay
) -> Bool
SplitterBehavior(
bb::CImGui.lib.ImRect,
id::Integer,
axis::CImGui.lib.ImGuiAxis,
size1,
size2,
min_size1,
min_size2,
hover_extend,
hover_visibility_delay,
bg_col::Integer
) -> Bool
CImGui.StartMouseMovingWindow — Method
StartMouseMovingWindow(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.StartMouseMovingWindowOrNode — Method
StartMouseMovingWindowOrNode(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
node::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiDockNode}},
undock
)
CImGui.Step — Method
Step(self::Ptr{CImGui.lib.ImGuiListClipper}) -> Bool
Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items.
CImGui.StopMouseMovingWindow — Method
StopMouseMovingWindow()
CImGui.StyleColorsClassic — Function
StyleColorsClassic()
StyleColorsClassic(
dst::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStyle}}
)
Classic imgui style.
CImGui.StyleColorsDark — Function
StyleColorsDark()
StyleColorsDark(
dst::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStyle}}
)
Styles// new, recommended style (default).
CImGui.StyleColorsLight — Function
StyleColorsLight()
StyleColorsLight(
dst::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiStyle}}
)
Best used with borders and a custom, thicker font.
CImGui.SubtractMonths — Method
SubtractMonths(self::Ptr{CImGui.lib.ImGuiPackedDate}, m)
FIXME-OPT: Stupid but enough for what we do with it.
CImGui.Swap — Method
Swap(
self::Ptr{CImGui.lib.ImGuiSelectionBasicStorage},
r::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiSelectionBasicStorage}}
)
Swap two selections.
CImGui.TabBarAddTab — Method
TabBarAddTab(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab_flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer},
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.TabBarCloseTab — Method
TabBarCloseTab(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabItem}}
)
CImGui.TabBarFindByID — Method
TabBarFindByID(id::Integer) -> Ptr{CImGui.lib.ImGuiTabBar}
CImGui.TabBarFindMostRecentlySelectedTabForActiveWindow — Method
TabBarFindMostRecentlySelectedTabForActiveWindow(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}}
) -> Ptr{CImGui.lib.ImGuiTabItem}
CImGui.TabBarFindTabByID — Method
TabBarFindTabByID(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab_id::Integer
) -> Ptr{CImGui.lib.ImGuiTabItem}
CImGui.TabBarFindTabByOrder — Method
TabBarFindTabByOrder(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
order
) -> Ptr{CImGui.lib.ImGuiTabItem}
CImGui.TabBarGetCurrentTab — Method
TabBarGetCurrentTab(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}}
) -> Ptr{CImGui.lib.ImGuiTabItem}
CImGui.TabBarGetTabName — Method
TabBarGetTabName(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabItem}}
) -> Ptr{Int8}
CImGui.TabBarGetTabOrder — Method
TabBarGetTabOrder(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabItem}}
) -> Int32
CImGui.TabBarProcessReorder — Method
TabBarProcessReorder(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}}
) -> Bool
CImGui.TabBarQueueFocus — Method
TabBarQueueFocus(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab::Ref{CImGui.lib.ImGuiTabItem}
)
CImGui.TabBarQueueFocus — Method
TabBarQueueFocus(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab_name::Union{Ptr{Int8}, String}
)
CImGui.TabBarQueueReorder — Method
TabBarQueueReorder(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabItem}},
offset
)
CImGui.TabBarQueueReorderFromMousePos — Method
TabBarQueueReorderFromMousePos(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabItem}},
mouse_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.TabBarRemove — Method
TabBarRemove(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}}
)
CImGui.TabBarRemoveTab — Method
TabBarRemoveTab(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
tab_id::Integer
)
CImGui.TabItemBackground — Method
TabItemBackground(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
bb::CImGui.lib.ImRect,
flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer},
col::Integer
)
CImGui.TabItemButton — Function
TabItemButton(label) -> Bool
TabItemButton(
label,
flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer}
) -> Bool
Create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar.
CImGui.TabItemCalcSize — Method
TabItemCalcSize(
label::Union{Ptr{Int8}, String},
has_close_button_or_unsaved_marker::Bool
) -> CImGui.lib.ImVec2
CImGui.TabItemCalcSize — Method
TabItemCalcSize(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> CImGui.lib.ImVec2
CImGui.TabItemEx — Method
TabItemEx(
tab_bar::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTabBar}},
label,
p_open,
flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer},
docked_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
) -> Bool
CImGui.TabItemLabelAndCloseButton — Method
TabItemLabelAndCloseButton(
draw_list::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawList}},
bb::CImGui.lib.ImRect,
flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer},
frame_padding::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
label,
tab_id::Integer,
close_button_id::Integer,
is_contents_visible,
out_just_closed,
out_text_clipped
)
CImGui.TabItemSpacing — Method
TabItemSpacing(
str_id,
flags::Union{CImGui.lib.ImGuiTabItemFlags_, Integer},
width
)
CImGui.TableAngledHeadersRow — Method
TableAngledHeadersRow()
Submit a row with angled headers for every column with the ImGuiTableColumnFlags_AngledHeader flag. MUST BE FIRST ROW.
CImGui.TableAngledHeadersRowEx — Method
TableAngledHeadersRowEx(
row_id::Integer,
angle,
max_label_width,
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableHeaderData}},
data_count
)
CImGui.TableApplyExternalUnclipRect — Method
TableApplyExternalUnclipRect(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
rect::Union{Ptr{Nothing}, Ref{CImGui.lib.ImRect}}
)
CImGui.TableApplyQueuedRequests — Method
TableApplyQueuedRequests(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableBeginCell — Method
TableBeginCell(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n
)
CImGui.TableBeginContextMenuPopup — Method
TableBeginContextMenuPopup(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
) -> Bool
CImGui.TableBeginInitMemory — Method
TableBeginInitMemory(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
columns_count
)
CImGui.TableBeginRow — Method
TableBeginRow(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableCalcMaxColumnWidth — Method
TableCalcMaxColumnWidth(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n
) -> Float32
CImGui.TableDrawBorders — Method
TableDrawBorders(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableDrawDefaultContextMenu — Method
TableDrawDefaultContextMenu(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
flags_for_section_to_display::Union{CImGui.lib.ImGuiTableFlags_, Integer}
)
CImGui.TableEndCell — Method
TableEndCell(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableEndRow — Method
TableEndRow(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableFindByID — Method
TableFindByID(id::Integer) -> Ptr{CImGui.lib.ImGuiTable}
CImGui.TableFixColumnSortDirection — Method
TableFixColumnSortDirection(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableColumn}}
)
CImGui.TableFixDisplayOrder — Method
TableFixDisplayOrder(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableGcCompactSettings — Method
TableGcCompactSettings()
CImGui.TableGcCompactTransientBuffers — Method
TableGcCompactTransientBuffers(
table::Ref{CImGui.lib.ImGuiTableTempData}
)
CImGui.TableGcCompactTransientBuffers — Method
TableGcCompactTransientBuffers(
table::Ref{CImGui.lib.ImGuiTable}
)
CImGui.TableGetBoundSettings — Method
TableGetBoundSettings(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
) -> Ptr{CImGui.lib.ImGuiTableSettings}
CImGui.TableGetCellBgRect — Method
TableGetCellBgRect(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n
) -> CImGui.lib.ImRect
CImGui.TableGetColumnCount — Method
CImGui.TableGetColumnFlags — Function
TableGetColumnFlags() -> Int32
TableGetColumnFlags(column_n) -> Int32
Return column flags so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column.
CImGui.TableGetColumnIndex — Method
CImGui.TableGetColumnName — Function
TableGetColumnName() -> Ptr{Int8}
TableGetColumnName(column_n::Integer) -> Ptr{Int8}
Return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column.
CImGui.TableGetColumnName — Method
TableGetColumnName(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n::Integer
) -> Ptr{Int8}
CImGui.TableGetColumnNextSortDirection — Method
TableGetColumnNextSortDirection(
column::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableColumn}}
) -> CImGui.lib.ImGuiSortDirection
CImGui.TableGetColumnResizeID — Function
TableGetColumnResizeID(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n
) -> UInt32
TableGetColumnResizeID(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n,
instance_no
) -> UInt32
CImGui.TableGetColumnWidthAuto — Method
TableGetColumnWidthAuto(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableColumn}}
) -> Float32
CImGui.TableGetHeaderAngledMaxLabelWidth — Method
TableGetHeaderAngledMaxLabelWidth() -> Float32
CImGui.TableGetHeaderRowHeight — Method
TableGetHeaderRowHeight() -> Float32
CImGui.TableGetHoveredColumn — Method
TableGetHoveredColumn() -> Int32
Return hovered column. return -1 when table is not hovered. return columnscount if the unused space at the right of visible columns is hovered. Can also use (TableGetColumnFlags() & ImGuiTableColumnFlagsIsHovered) instead.
CImGui.TableGetHoveredRow — Method
TableGetHoveredRow() -> Int32
Retrieve PREVIOUS FRAME hovered row. This difference with TableGetHoveredColumn() is the reason why this is not public yet.
CImGui.TableGetInstanceData — Method
TableGetInstanceData(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
instance_no
) -> Ptr{CImGui.lib.ImGuiTableInstanceData}
CImGui.TableGetInstanceID — Method
TableGetInstanceID(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
instance_no
) -> UInt32
CImGui.TableGetRowIndex — Method
CImGui.TableGetSortSpecs — Method
TableGetSortSpecs() -> Ptr{CImGui.lib.ImGuiTableSortSpecs}
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.// get latest sort specs for the table (NULL if not sorting). Lifetime: don't hold on this pointer over multiple frames or past any subsequent call to BeginTable().
CImGui.TableHeader — Method
CImGui.TableHeadersRow — Method
TableHeadersRow()
Submit a row with headers cells based on data provided to TableSetupColumn() + submit context menu.
CImGui.TableInitColumnDefaults — Method
TableInitColumnDefaults(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableColumn}},
init_mask::Union{CImGui.lib.ImGuiTableColumnFlags_, Integer}
)
CImGui.TableLoadSettings — Method
TableLoadSettings(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
Tables: Settings.
CImGui.TableLoadSettingsForColumn — Method
TableLoadSettingsForColumn(
column::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableColumn}},
column_settings::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTableColumnSettings}},
load_flags::Union{CImGui.lib.ImGuiTableFlags_, Integer}
)
CImGui.TableLoadSettingsForColumns — Method
TableLoadSettingsForColumns(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableMergeDrawChannels — Method
TableMergeDrawChannels(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableNextColumn — Method
TableNextColumn() -> Bool
Append into the next column (or first column of next row if currently in last column). Return true when column is visible.
CImGui.TableNextRow — Function
TableNextRow()
TableNextRow(
row_flags::Union{CImGui.lib.ImGuiTableRowFlags_, Integer}
)
TableNextRow(
row_flags::Union{CImGui.lib.ImGuiTableRowFlags_, Integer},
min_row_height
)
Append into the first cell of a new row. 'minrowheight' include the minimum top and bottom padding aka CellPadding.y * 2.0f.
CImGui.TableOpenContextMenu — Function
TableOpenContextMenu()
TableOpenContextMenu(column_n)
Tables: Candidates for public API.
CImGui.TablePopBackgroundChannel — Method
TablePopBackgroundChannel()
CImGui.TablePopColumnChannel — Method
TablePopColumnChannel()
CImGui.TablePushBackgroundChannel — Method
TablePushBackgroundChannel()
CImGui.TablePushColumnChannel — Method
TablePushColumnChannel(column_n)
CImGui.TableQueueSetColumnDisplayOrder — Method
TableQueueSetColumnDisplayOrder(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n,
dst_order
)
CImGui.TableReconcileColumns — Method
TableReconcileColumns(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableRemove — Method
TableRemove(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableResetSettings — Method
TableResetSettings(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableSaveSettings — Method
TableSaveSettings(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableSetBgColor — Function
TableSetBgColor(
target::Union{CImGui.lib.ImGuiTableBgTarget_, Integer},
color::Integer
)
TableSetBgColor(
target::Union{CImGui.lib.ImGuiTableBgTarget_, Integer},
color::Integer,
column_n
)
Change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details.
CImGui.TableSetColumnDisplayOrder — Method
TableSetColumnDisplayOrder(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n,
dst_order
)
CImGui.TableSetColumnEnabled — Method
TableSetColumnEnabled(column_n, v)
Change user accessible enabled/disabled state of a column. Set to false to hide the column. User can use the context menu to change this themselves (right-click in headers, or right-click in columns body with ImGuiTableFlags_ContextMenuInBody).
CImGui.TableSetColumnIndex — Method
TableSetColumnIndex(column_n) -> Bool
Append into the specified column. Return true when column is visible.
CImGui.TableSetColumnSortDirection — Method
TableSetColumnSortDirection(
column_n,
sort_direction::CImGui.lib.ImGuiSortDirection,
append_to_sort_specs
)
CImGui.TableSetColumnWidth — Method
TableSetColumnWidth(column_n, width)
CImGui.TableSetColumnWidthAutoAll — Method
TableSetColumnWidthAutoAll(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableSetColumnWidthAutoSingle — Method
TableSetColumnWidthAutoSingle(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}},
column_n
)
CImGui.TableSettingsAddSettingsHandler — Method
TableSettingsAddSettingsHandler()
CImGui.TableSettingsCreate — Method
TableSettingsCreate(
id::Integer,
columns_count
) -> Ptr{CImGui.lib.ImGuiTableSettings}
CImGui.TableSettingsFindByID — Method
TableSettingsFindByID(
id::Integer
) -> Ptr{CImGui.lib.ImGuiTableSettings}
CImGui.TableSetupColumn — Function
TableSetupColumn(label)
TableSetupColumn(
label,
flags::Union{CImGui.lib.ImGuiTableColumnFlags_, Integer}
)
TableSetupColumn(
label,
flags::Union{CImGui.lib.ImGuiTableColumnFlags_, Integer},
init_width_or_weight
)
TableSetupColumn(
label,
flags::Union{CImGui.lib.ImGuiTableColumnFlags_, Integer},
init_width_or_weight,
user_data::Integer
)
Tables: Headers & Columns declaration
- Use TableSetupColumn() to specify label, resizing policy, default width/weight, various other flags etc. (the trailing 'ImGuiID userdata', which used to be referred to as 'ImGuiID userid', is merely user data that is blindly copied in ImGuiTableColumnSortSpecs).
- 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. When freezing columns you would usually also use ImGuiTableColumnFlags_NoHide on them.
CImGui.TableSetupDrawChannels — Method
TableSetupDrawChannels(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableSetupScrollFreeze — Method
TableSetupScrollFreeze(cols, rows)
Lock columns/rows so they stay visible when scrolled.
CImGui.TableSortSpecsBuild — Method
TableSortSpecsBuild(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableSortSpecsSanitize — Method
TableSortSpecsSanitize(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableUpdateBorders — Method
TableUpdateBorders(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableUpdateColumnsWeightFromWidth — Method
TableUpdateColumnsWeightFromWidth(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TableUpdateLayout — Method
TableUpdateLayout(
table::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTable}}
)
CImGui.TeleportMousePos — Method
TeleportMousePos(
pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.TempInputIsActive — Method
TempInputIsActive(id::Integer) -> Bool
CImGui.TempInputScalar — Function
TempInputScalar(
bb::CImGui.lib.ImRect,
id::Integer,
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
format
) -> Bool
TempInputScalar(
bb::CImGui.lib.ImRect,
id::Integer,
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
format,
p_clamp_min
) -> Bool
TempInputScalar(
bb::CImGui.lib.ImRect,
id::Integer,
label,
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
format,
p_clamp_min,
p_clamp_max
) -> Bool
CImGui.TempInputText — Function
TempInputText(
bb::CImGui.lib.ImRect,
id::Integer,
label,
buf,
buf_size
) -> Bool
TempInputText(
bb::CImGui.lib.ImRect,
id::Integer,
label,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer}
) -> Bool
TempInputText(
bb::CImGui.lib.ImRect,
id::Integer,
label,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction}
) -> Bool
TempInputText(
bb::CImGui.lib.ImRect,
id::Integer,
label,
buf,
buf_size,
flags::Union{CImGui.lib.ImGuiInputTextFlags_, Integer},
callback::Union{Ptr{Nothing}, Base.CFunction},
user_data
) -> Bool
CImGui.TestBit — Method
TestBit(self::Ptr{CImGui.lib.ImBitVector}, n) -> Bool
CImGui.TestKeyOwner — Method
TestKeyOwner(
key::CImGui.lib.ImGuiKey,
owner_id::Integer
) -> Bool
Test that key is either not owned, either owned by 'owner_id'.
CImGui.TestShortcutRouting — Method
TestShortcutRouting(
key_chord::Integer,
owner_id::Integer
) -> Bool
CImGui.Text — Function
Formatted text.
CImGui.TextAligned — Method
TextAligned(align_x, size_x, fmt)
FIXME-WIP: Works but API is likely to be reworked. This is designed for 1 item on the line. (#7024).
CImGui.TextColored — Method
TextColored(
col::Union{CImGui.lib.ImVec4, NTuple{4, T} where T},
fmt
)
Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor();.
CImGui.TextDisabled — Method
TextDisabled(fmt)
Shortcut for PushStyleColor(ImGuiColText, style.Colors[ImGuiColTextDisabled]); Text(fmt, ...); PopStyleColor();.
CImGui.TextEx — Function
TextEx(text)
TextEx(text, text_end)
TextEx(
text,
text_end,
flags::Union{CImGui.lib.ImGuiTextFlags_, Integer}
)
Widgets: Text.
CImGui.TextLink — Method
CImGui.TextLinkOpenURL — Function
TextLinkOpenURL(label) -> Bool
TextLinkOpenURL(label, url) -> Bool
Hyperlink text button, automatically open file/url when clicked.
CImGui.TextUnformatted — Function
TextUnformatted(text)
TextUnformatted(text, text_end)
Widgets: Text
- Note that all functions taking format strings in the API may be passed ("%s", text) or ("%.*s", textlen, text): which will automatically bypass the formatter.// raw text without formatting. Practically equivalent to 'Text("%s", text)' but doesn't require null terminated string if 'textend' is specified.
CImGui.TextWrapped — Method
TextWrapped(fmt)
Shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, yoy may need to set a size using SetNextWindowSize().
CImGui.TitleBarRect — Method
TitleBarRect(
self::Ptr{CImGui.lib.ImGuiWindow}
) -> CImGui.lib.ImRect
CImGui.ToVec4 — Method
ToVec4(self::Ptr{CImGui.lib.ImRect}) -> CImGui.lib.ImVec4
CImGui.Translate — Method
Translate(
self::Ptr{CImGui.lib.ImRect},
d::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.TranslateWindowsInViewport — Method
TranslateWindowsInViewport(
viewport::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiViewportP}},
old_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
new_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
old_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
new_size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
Viewports.
CImGui.TranslateX — Method
TranslateX(self::Ptr{CImGui.lib.ImRect}, dx)
CImGui.TranslateY — Method
TranslateY(self::Ptr{CImGui.lib.ImRect}, dy)
CImGui.TreeNode — Method
TreeNode(
ptr_id::Ref{Nothing},
fmt::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
".
CImGui.TreeNode — Method
TreeNode(
str_id::Union{Ptr{Int8}, String},
fmt::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
Helper variation to easily decorrelate the id from the displayed string. Read the FAQ about why and how to use ID. to align arbitrary text at the same level as a TreeNode() you can use Bullet().
CImGui.TreeNode — Method
TreeNode(label::Union{Ptr{Int8}, String}) -> Bool
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.
CImGui.TreeNodeBehavior — Function
TreeNodeBehavior(
id::Integer,
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer},
label
) -> Bool
TreeNodeBehavior(
id::Integer,
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer},
label,
label_end
) -> Bool
Widgets: Tree Nodes.
CImGui.TreeNodeDrawLineToChildNode — Method
TreeNodeDrawLineToChildNode(
target_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.TreeNodeDrawLineToTreePop — Method
TreeNodeDrawLineToTreePop(
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTreeNodeStackData}}
)
CImGui.TreeNodeEx — Function
TreeNodeEx(label::Union{Ptr{Int8}, String}) -> Bool
TreeNodeEx(
label::Union{Ptr{Int8}, String},
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer}
) -> Bool
CImGui.TreeNodeEx — Method
TreeNodeEx(
ptr_id::Ref{Nothing},
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer},
fmt::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
CImGui.TreeNodeEx — Method
TreeNodeEx(
str_id::Union{Ptr{Int8}, String},
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer},
fmt::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> Bool
CImGui.TreeNodeGetOpen — Method
CImGui.TreeNodeSetOpen — Method
TreeNodeSetOpen(storage_id::Integer, open)
CImGui.TreeNodeUpdateNextOpen — Method
TreeNodeUpdateNextOpen(
storage_id::Integer,
flags::Union{CImGui.lib.ImGuiTreeNodeFlags_, Integer}
) -> Bool
Return open state. Consume previous SetNextItemOpen() data, if any. May return true when logging.
CImGui.TreePop — Method
CImGui.TreePush — Method
CImGui.TreePush — Method
TreePush(str_id::Union{Ptr{Int8}, String})
~ Indent()+PushID(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired.
CImGui.TreePushOverrideID — Method
TreePushOverrideID(id::Integer)
CImGui.TypingSelectFindBestLeadingMatch — Method
TypingSelectFindBestLeadingMatch(
req::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTypingSelectRequest}},
items_count,
get_item_name_func,
user_data
) -> Int32
CImGui.TypingSelectFindMatch — Method
TypingSelectFindMatch(
req::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTypingSelectRequest}},
items_count,
get_item_name_func,
user_data,
nav_item_idx
) -> Int32
CImGui.TypingSelectFindNextSingleCharMatch — Method
TypingSelectFindNextSingleCharMatch(
req::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiTypingSelectRequest}},
items_count,
get_item_name_func,
user_data,
nav_item_idx
) -> Int32
CImGui.Unindent — Function
Unindent()
Unindent(indent_w)
Move content position back to the left, by indentw, or style.IndentSpacing if indentw <= 0.
CImGui.Unpack — Method
Unpack(self::Ptr{CImGui.lib.ImGuiPackedDate}) -> Int32
Unpack.
CImGui.UnregisterFontAtlas — Method
UnregisterFontAtlas(
atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
)
CImGui.UnregisterUserTexture — Method
UnregisterUserTexture(
tex::Union{Ptr{Nothing}, Ref{CImGui.lib.ImTextureData}}
)
CImGui.Update — Method
Update(
self::Ptr{CImGui.lib.ImGuiMenuColumns},
spacing,
window_reappearing
)
CImGui.UpdateCurrentFontSize — Method
UpdateCurrentFontSize(restore_font_size_after_scaling)
CImGui.UpdateHoveredWindowAndCaptureFlags — Method
UpdateHoveredWindowAndCaptureFlags(
mouse_pos::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
)
CImGui.UpdateInputEvents — Method
UpdateInputEvents(trickle_fast_inputs)
NewFrame.
CImGui.UpdateMergedFlags — Method
UpdateMergedFlags(self::Ptr{CImGui.lib.ImGuiDockNode})
CImGui.UpdateMouseMovingWindowEndFrame — Method
UpdateMouseMovingWindowEndFrame()
CImGui.UpdateMouseMovingWindowNewFrame — Method
UpdateMouseMovingWindowNewFrame()
CImGui.UpdatePlatformWindows — Method
UpdatePlatformWindows()
(Optional) Platform/OS interface for multi-viewport support Read comments around the ImGuiPlatformIO structure for more details. Note: You may use GetWindowViewport() to get the current viewport of the current window.// call in main loop. will call CreateWindow/ResizeWindow/etc. platform functions for each secondary viewport, and DestroyWindow for each inactive viewport.
CImGui.UpdateWindowParentAndRootLinks — Method
UpdateWindowParentAndRootLinks(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
flags::Union{CImGui.lib.ImGuiWindowFlags_, Integer},
parent_window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.UpdateWindowSkipRefresh — Method
UpdateWindowSkipRefresh(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}}
)
CImGui.UpdateWorkRect — Method
UpdateWorkRect(self::Ptr{CImGui.lib.ImGuiViewportP})
Update public fields.
CImGui.VSliderFloat — Function
VSliderFloat(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
v,
v_min,
v_max
) -> Bool
VSliderFloat(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
v,
v_min,
v_max,
format
) -> Bool
VSliderFloat(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.VSliderInt — Function
VSliderInt(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
v,
v_min,
v_max
) -> Bool
VSliderInt(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
v,
v_min,
v_max,
format
) -> Bool
VSliderInt(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
v,
v_min,
v_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.VSliderScalar — Function
VSliderScalar(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max
) -> Bool
VSliderScalar(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max,
format
) -> Bool
VSliderScalar(
label,
size::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
data_type::Union{CImGui.lib.ImGuiDataType_, Integer},
p_data,
p_min,
p_max,
format,
flags::Union{CImGui.lib.ImGuiSliderFlags_, Integer}
) -> Bool
CImGui.Value — Function
Value(
prefix::Union{Ptr{Int8}, Ptr{Nothing}, String},
v::Real
)
Value(
prefix::Union{Ptr{Int8}, Ptr{Nothing}, String},
v::Real,
float_format::Union{Ptr{Int8}, Ptr{Nothing}, String}
)
CImGui.Value — Method
Value(
prefix::Union{Ptr{Int8}, Ptr{Nothing}, String},
b::Bool
)
Widgets: Value() Helpers.
- Those are merely shortcut to calling Text() with a format string. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace).
CImGui.Value — Method
Value(
prefix::Union{Ptr{Int8}, Ptr{Nothing}, String},
v::Int64
)
CImGui.Value — Method
Value(
prefix::Union{Ptr{Int8}, Ptr{Nothing}, String},
v::UInt64
)
CImGui.WindowPosAbsToRel — Method
WindowPosAbsToRel(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.WindowPosRelToAbs — Method
WindowPosRelToAbs(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
p::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> CImGui.lib.ImVec2
CImGui.WindowRectAbsToRel — Method
WindowRectAbsToRel(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
r::CImGui.lib.ImRect
) -> CImGui.lib.ImRect
CImGui.WindowRectRelToAbs — Method
WindowRectRelToAbs(
window::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiWindow}},
r::CImGui.lib.ImRect
) -> CImGui.lib.ImRect
CImGui._CalcCircleAutoSegmentCount — Method
_CalcCircleAutoSegmentCount(
self::Ptr{CImGui.lib.ImDrawList},
radius
) -> Int32
CImGui._ClearFreeMemory — Method
_ClearFreeMemory(self::Ptr{CImGui.lib.ImDrawList})
CImGui._OnChangedClipRect — Method
_OnChangedClipRect(self::Ptr{CImGui.lib.ImDrawList})
CImGui._OnChangedTexture — Method
_OnChangedTexture(self::Ptr{CImGui.lib.ImDrawList})
CImGui._OnChangedVtxOffset — Method
_OnChangedVtxOffset(self::Ptr{CImGui.lib.ImDrawList})
CImGui._PathArcToFastEx — Method
_PathArcToFastEx(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
a_min_sample,
a_max_sample,
a_step
)
CImGui._PathArcToN — Method
_PathArcToN(
self::Ptr{CImGui.lib.ImDrawList},
center::Union{CImGui.lib.ImVec2, Tuple{T, T} where T},
radius,
a_min,
a_max,
num_segments
)
CImGui._PopUnusedDrawCmd — Method
_PopUnusedDrawCmd(self::Ptr{CImGui.lib.ImDrawList})
CImGui._ResetForNewFrame — Method
_ResetForNewFrame(self::Ptr{CImGui.lib.ImDrawList})
CImGui._SetDrawListSharedData — Method
_SetDrawListSharedData(
self::Ptr{CImGui.lib.ImDrawList},
data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawListSharedData}}
)
[Internal helpers].
CImGui._SetTexture — Method
_SetTexture(
self::Ptr{CImGui.lib.ImDrawList},
tex_ref::CImGui.lib.ImTextureRef
)
CImGui._TryMergeDrawCmds — Method
_TryMergeDrawCmds(self::Ptr{CImGui.lib.ImDrawList})
CImGui.lib.ImColor — Type
ImColor(
r::Real,
g::Real,
b::Real
) -> Ptr{CImGui.lib.ImColor}
ImColor(
r::Real,
g::Real,
b::Real,
a::Real
) -> Ptr{CImGui.lib.ImColor}
CImGui.lib.ImColor — Type
ImColor(
r::Integer,
g::Integer,
b::Integer
) -> Ptr{CImGui.lib.ImColor}
ImColor(
r::Integer,
g::Integer,
b::Integer,
a::Integer
) -> Ptr{CImGui.lib.ImColor}
CImGui.lib.ImColor — Method
ImColor(rgba::Integer) -> Ptr{CImGui.lib.ImColor}
CImGui.lib.ImColor — Method
ImColor() -> Ptr{CImGui.lib.ImColor}
CImGui.lib.ImDrawCmd — Method
CImGui.lib.ImDrawData — Method
CImGui.lib.ImDrawDataBuilder — Method
ImDrawDataBuilder() -> Ptr{CImGui.lib.ImDrawDataBuilder}
CImGui.lib.ImDrawList — Method
ImDrawList(
shared_data::Union{Ptr{Nothing}, Ref{CImGui.lib.ImDrawListSharedData}}
) -> Ptr{CImGui.lib.ImDrawList}
If you want to create ImDrawList instances, pass them ImGui::GetDrawListSharedData(). (advanced: you may create and use your own ImDrawListSharedData so you can use ImDrawList without ImGui, but that's more involved).
CImGui.lib.ImDrawListSharedData — Method
ImDrawListSharedData(
) -> Ptr{CImGui.lib.ImDrawListSharedData}
CImGui.lib.ImDrawListSplitter — Method
ImDrawListSplitter() -> Ptr{CImGui.lib.ImDrawListSplitter}
CImGui.lib.ImFont — Method
CImGui.lib.ImFontAtlas — Method
ImFontAtlas() -> Ptr{CImGui.lib.ImFontAtlas}
CImGui.lib.ImFontAtlasBuilder — Method
ImFontAtlasBuilder() -> Ptr{CImGui.lib.ImFontAtlasBuilder}
CImGui.lib.ImFontAtlasRect — Method
ImFontAtlasRect() -> Ptr{CImGui.lib.ImFontAtlasRect}
CImGui.lib.ImFontBaked — Method
CImGui.lib.ImFontConfig — Method
ImFontConfig() -> Ptr{CImGui.lib.ImFontConfig}
CImGui.lib.ImFontGlyph — Method
ImFontGlyph() -> Ptr{CImGui.lib.ImFontGlyph}
CImGui.lib.ImFontGlyphRangesBuilder — Method
ImFontGlyphRangesBuilder(
) -> Ptr{CImGui.lib.ImFontGlyphRangesBuilder}
CImGui.lib.ImFontLoader — Method
ImFontLoader() -> Ptr{CImGui.lib.ImFontLoader}
CImGui.lib.ImGuiBoxSelectState — Method
ImGuiBoxSelectState() -> Ptr{CImGui.lib.ImGuiBoxSelectState}
CImGui.lib.ImGuiComboPreviewData — Method
ImGuiComboPreviewData(
) -> Ptr{CImGui.lib.ImGuiComboPreviewData}
CImGui.lib.ImGuiContext — Method
ImGuiContext(
shared_font_atlas::Union{Ptr{Nothing}, Ref{CImGui.lib.ImFontAtlas}}
) -> Ptr{CImGui.lib.ImGuiContext}
CImGui.lib.ImGuiContextHook — Method
ImGuiContextHook() -> Ptr{CImGui.lib.ImGuiContextHook}
CImGui.lib.ImGuiDebugAllocInfo — Method
ImGuiDebugAllocInfo() -> Ptr{CImGui.lib.ImGuiDebugAllocInfo}
CImGui.lib.ImGuiDebugItemPathQuery — Method
ImGuiDebugItemPathQuery(
) -> Ptr{CImGui.lib.ImGuiDebugItemPathQuery}
CImGui.lib.ImGuiDockContext — Method
ImGuiDockContext() -> Ptr{CImGui.lib.ImGuiDockContext}
CImGui.lib.ImGuiDockNode — Method
ImGuiDockNode(id::Integer) -> Ptr{CImGui.lib.ImGuiDockNode}
CImGui.lib.ImGuiErrorRecoveryState — Method
ImGuiErrorRecoveryState(
) -> Ptr{CImGui.lib.ImGuiErrorRecoveryState}
CImGui.lib.ImGuiIDStackTool — Method
ImGuiIDStackTool() -> Ptr{CImGui.lib.ImGuiIDStackTool}
CImGui.lib.ImGuiIO — Method
ImGuiIO() -> Ptr{CImGui.lib.ImGuiIO}
Legacy: before 1.87, we required backend to fill io.KeyMap[] (imgui->native map) during initialization and io.KeysDown[] (native indices) every frame. This is still temporarily supported as a legacy feature. However the new preferred scheme is for backend to call io.AddKeyEvent(). Old (<1.87): ImGui::IsKeyPressed(ImGui::GetIO().KeyMap[ImGuiKeySpace]) –> New (1.87+) ImGui::IsKeyPressed(ImGuiKeySpace) Old (<1.87): ImGui::IsKeyPressed(MYPLATFORMKEYSPACE) –> New (1.87+) ImGui::IsKeyPressed(ImGuiKeySpace) Read https://github.com/ocornut/imgui/issues/4921 for details. //int KeyMap[ImGuiKeyCOUNT]; // [LEGACY] Input: map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. The first 512 are now unused and should be kept zero. Legacy backend will write into KeyMap[] using ImGuiKey_ indices which are always >512. //bool KeysDown[ImGuiKeyCOUNT]; // [LEGACY] Input: Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). This used to be [512] sized. It is now ImGuiKeyCOUNT to allow legacy io.KeysDown[GetKeyIndex(...)] to work without an overflow. //float NavInputs[ImGuiNavInputCOUNT]; // [LEGACY] Since 1.88, NavInputs[] was removed. Backends from 1.60 to 1.86 won't build. Feed gamepad inputs via io.AddKeyEvent() and ImGuiKeyGamepadXXX enums. //void* ImeWindowHandle; // [Obsoleted in 1.87] Set ImGuiViewport::PlatformHandleRaw instead. Set this to your HWND to get automatic IME cursor positioning.
CImGui.lib.ImGuiInputEvent — Method
ImGuiInputEvent() -> Ptr{CImGui.lib.ImGuiInputEvent}
CImGui.lib.ImGuiInputTextCallbackData — Method
ImGuiInputTextCallbackData(
) -> Ptr{CImGui.lib.ImGuiInputTextCallbackData}
Helper functions for text manipulation. Use those function to benefit from the CallbackResize behaviors. Calling those function reset the selection.
CImGui.lib.ImGuiInputTextDeactivatedState — Method
ImGuiInputTextDeactivatedState(
) -> Ptr{CImGui.lib.ImGuiInputTextDeactivatedState}
CImGui.lib.ImGuiInputTextState — Method
ImGuiInputTextState() -> Ptr{CImGui.lib.ImGuiInputTextState}
CImGui.lib.ImGuiKeyOwnerData — Method
ImGuiKeyOwnerData() -> Ptr{CImGui.lib.ImGuiKeyOwnerData}
CImGui.lib.ImGuiKeyRoutingData — Method
ImGuiKeyRoutingData() -> Ptr{CImGui.lib.ImGuiKeyRoutingData}
CImGui.lib.ImGuiKeyRoutingTable — Method
ImGuiKeyRoutingTable(
) -> Ptr{CImGui.lib.ImGuiKeyRoutingTable}
CImGui.lib.ImGuiLastItemData — Method
ImGuiLastItemData() -> Ptr{CImGui.lib.ImGuiLastItemData}
CImGui.lib.ImGuiListClipper — Method
ImGuiListClipper() -> Ptr{CImGui.lib.ImGuiListClipper}
Itemscount: Use INTMAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step, and you can call SeekCursorForItem() manually if you need) Items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing().
CImGui.lib.ImGuiListClipperData — Method
ImGuiListClipperData(
) -> Ptr{CImGui.lib.ImGuiListClipperData}
CImGui.lib.ImGuiMenuColumns — Method
ImGuiMenuColumns() -> Ptr{CImGui.lib.ImGuiMenuColumns}
CImGui.lib.ImGuiMultiSelectState — Method
ImGuiMultiSelectState(
) -> Ptr{CImGui.lib.ImGuiMultiSelectState}
CImGui.lib.ImGuiMultiSelectTempData — Method
ImGuiMultiSelectTempData(
) -> Ptr{CImGui.lib.ImGuiMultiSelectTempData}
CImGui.lib.ImGuiNavItemData — Method
ImGuiNavItemData() -> Ptr{CImGui.lib.ImGuiNavItemData}
CImGui.lib.ImGuiNextItemData — Method
ImGuiNextItemData() -> Ptr{CImGui.lib.ImGuiNextItemData}
CImGui.lib.ImGuiNextWindowData — Method
ImGuiNextWindowData() -> Ptr{CImGui.lib.ImGuiNextWindowData}
CImGui.lib.ImGuiOldColumnData — Method
ImGuiOldColumnData() -> Ptr{CImGui.lib.ImGuiOldColumnData}
CImGui.lib.ImGuiOldColumns — Method
ImGuiOldColumns() -> Ptr{CImGui.lib.ImGuiOldColumns}
CImGui.lib.ImGuiOnceUponAFrame — Method
ImGuiOnceUponAFrame() -> Ptr{CImGui.lib.ImGuiOnceUponAFrame}
CImGui.lib.ImGuiPackedDate — Method
ImGuiPackedDate(
yyyymmdd::Integer
) -> Ptr{CImGui.lib.ImGuiPackedDate}
Pack.
CImGui.lib.ImGuiPackedDate — Method
ImGuiPackedDate() -> Ptr{CImGui.lib.ImGuiPackedDate}
CImGui.lib.ImGuiPayload — Method
ImGuiPayload() -> Ptr{CImGui.lib.ImGuiPayload}
CImGui.lib.ImGuiPlatformIO — Method
ImGuiPlatformIO() -> Ptr{CImGui.lib.ImGuiPlatformIO}
CImGui.lib.ImGuiPlatformImeData — Method
ImGuiPlatformImeData(
) -> Ptr{CImGui.lib.ImGuiPlatformImeData}
CImGui.lib.ImGuiPlatformMonitor — Method
ImGuiPlatformMonitor(
) -> Ptr{CImGui.lib.ImGuiPlatformMonitor}
CImGui.lib.ImGuiPopupData — Method
ImGuiPopupData() -> Ptr{CImGui.lib.ImGuiPopupData}
CImGui.lib.ImGuiPtrOrIndex — Method
ImGuiPtrOrIndex(
index::Integer
) -> Ptr{CImGui.lib.ImGuiPtrOrIndex}
CImGui.lib.ImGuiPtrOrIndex — Method
ImGuiPtrOrIndex(
ptr::Ref{Nothing}
) -> Ptr{CImGui.lib.ImGuiPtrOrIndex}
CImGui.lib.ImGuiSelectionExternalStorage — Method
ImGuiSelectionExternalStorage(
) -> Ptr{CImGui.lib.ImGuiSelectionExternalStorage}
Methods.
CImGui.lib.ImGuiSettingsHandler — Method
ImGuiSettingsHandler(
) -> Ptr{CImGui.lib.ImGuiSettingsHandler}
CImGui.lib.ImGuiStackLevelInfo — Method
ImGuiStackLevelInfo() -> Ptr{CImGui.lib.ImGuiStackLevelInfo}
CImGui.lib.ImGuiStoragePair — Method
ImGuiStoragePair(
_key::Integer,
_val::Integer
) -> Ptr{CImGui.lib.ImGuiStoragePair}
CImGui.lib.ImGuiStoragePair — Method
ImGuiStoragePair(
_key::Integer,
_val::Real
) -> Ptr{CImGui.lib.ImGuiStoragePair}
CImGui.lib.ImGuiStoragePair — Method
ImGuiStoragePair(
_key::Integer,
_val::Ref{Nothing}
) -> Ptr{CImGui.lib.ImGuiStoragePair}
CImGui.lib.ImGuiStyle — Method
CImGui.lib.ImGuiStyleMod — Method
ImGuiStyleMod(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
v::Integer
) -> Ptr{CImGui.lib.ImGuiStyleMod}
CImGui.lib.ImGuiStyleMod — Method
ImGuiStyleMod(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
v::Real
) -> Ptr{CImGui.lib.ImGuiStyleMod}
CImGui.lib.ImGuiStyleMod — Method
ImGuiStyleMod(
idx::Union{CImGui.lib.ImGuiStyleVar_, Integer},
v::Union{CImGui.lib.ImVec2, Tuple{T, T} where T}
) -> Ptr{CImGui.lib.ImGuiStyleMod}
CImGui.lib.ImGuiTabBar — Method
ImGuiTabBar() -> Ptr{CImGui.lib.ImGuiTabBar}
CImGui.lib.ImGuiTabItem — Method
ImGuiTabItem() -> Ptr{CImGui.lib.ImGuiTabItem}
CImGui.lib.ImGuiTable — Method
ImGuiTable() -> Ptr{CImGui.lib.ImGuiTable}
CImGui.lib.ImGuiTableColumn — Method
ImGuiTableColumn() -> Ptr{CImGui.lib.ImGuiTableColumn}
CImGui.lib.ImGuiTableColumnSettings — Method
ImGuiTableColumnSettings(
) -> Ptr{CImGui.lib.ImGuiTableColumnSettings}
CImGui.lib.ImGuiTableColumnSortSpecs — Method
ImGuiTableColumnSortSpecs(
) -> Ptr{CImGui.lib.ImGuiTableColumnSortSpecs}
CImGui.lib.ImGuiTableInstanceData — Method
ImGuiTableInstanceData(
) -> Ptr{CImGui.lib.ImGuiTableInstanceData}
CImGui.lib.ImGuiTableSettings — Method
ImGuiTableSettings() -> Ptr{CImGui.lib.ImGuiTableSettings}
CImGui.lib.ImGuiTableSortSpecs — Method
ImGuiTableSortSpecs() -> Ptr{CImGui.lib.ImGuiTableSortSpecs}
CImGui.lib.ImGuiTableTempData — Method
ImGuiTableTempData() -> Ptr{CImGui.lib.ImGuiTableTempData}
CImGui.lib.ImGuiTextBuffer — Method
ImGuiTextBuffer() -> Ptr{CImGui.lib.ImGuiTextBuffer}
CImGui.lib.ImGuiTextFilter — Type
ImGuiTextFilter() -> Ptr{CImGui.lib.ImGuiTextFilter}
ImGuiTextFilter(
default_filter
) -> Ptr{CImGui.lib.ImGuiTextFilter}
CImGui.lib.ImGuiTextRange — Method
ImGuiTextRange(
_b::Union{Ptr{Int8}, Ptr{Nothing}, String},
_e::Union{Ptr{Int8}, Ptr{Nothing}, String}
) -> CImGui.lib.ImGuiTextRange
CImGui.lib.ImGuiTextRange — Method
ImGuiTextRange() -> Ptr{CImGui.lib.ImGuiTextRange}
CImGui.lib.ImGuiTypingSelectState — Method
ImGuiTypingSelectState(
) -> Ptr{CImGui.lib.ImGuiTypingSelectState}
CImGui.lib.ImGuiViewport — Method
ImGuiViewport() -> Ptr{CImGui.lib.ImGuiViewport}
CImGui.lib.ImGuiViewportP — Method
ImGuiViewportP() -> Ptr{CImGui.lib.ImGuiViewportP}
CImGui.lib.ImGuiWindow — Method
ImGuiWindow(
context::Union{Ptr{Nothing}, Ref{CImGui.lib.ImGuiContext}},
name
) -> Ptr{CImGui.lib.ImGuiWindow}
CImGui.lib.ImGuiWindowClass — Method
ImGuiWindowClass() -> Ptr{CImGui.lib.ImGuiWindowClass}
CImGui.lib.ImGuiWindowSettings — Method
ImGuiWindowSettings() -> Ptr{CImGui.lib.ImGuiWindowSettings}
CImGui.lib.ImTextureData — Method
ImTextureData() -> Ptr{CImGui.lib.ImTextureData}
Functions
- If GetPixels() functions asserts while being called by your render loop, it could be caused by calling ImFontAtlas::Clear()/ClearFonts()?
CImGui.lib.ImTextureRef — Method
ImTextureRef(id::UInt64) -> CImGui.lib.ImTextureRef
Convert an ImTextureID to an ImTextureRef.
CImGui.lib.ImVec1 — Method
ImVec1() -> Ptr{CImGui.lib.ImVec1}