@ -9739,7 +9739,6 @@ bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_cu
TextUnformatted ( label , FindRenderedTextEnd ( label ) ) ;
EndGroup ( ) ;
PopID ( ) ;
return value_changed ;
}
@ -10098,9 +10097,7 @@ bool ImGui::RadioButton(const char* label, int* v, int v_button)
{
const bool pressed = RadioButton ( label , * v = = v_button ) ;
if ( pressed )
{
* v = v_button ;
}
return pressed ;
}
@ -10381,7 +10378,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
const bool is_password = ( flags & ImGuiInputTextFlags_Password ) ! = 0 ;
const bool is_undoable = ( flags & ImGuiInputTextFlags_NoUndoRedo ) = = 0 ;
if ( is_multiline ) // Open group before calling GetID() because groups tracks id created during their spawn
if ( is_multiline ) // Open group before calling GetID() because groups tracks id created within their scope,
BeginGroup ( ) ;
const ImGuiID id = window - > GetID ( label ) ;
const ImVec2 label_size = CalcTextSize ( label , NULL , true ) ;
@ -11090,7 +11087,6 @@ bool ImGui::InputScalarN(const char* label, ImGuiDataType data_type, void* v, in
TextUnformatted ( label , FindRenderedTextEnd ( label ) ) ;
EndGroup ( ) ;
return value_changed ;
}
@ -11468,6 +11464,7 @@ bool ImGui::Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags
return false ;
}
// FIXME: Rename to BeginListBox()
// Helper to calculate the size of a listbox and display a label on the right.
// Tip: To have a list filling the entire window width, PushItemWidth(-1) and pass an empty label "##empty"
bool ImGui : : ListBoxHeader ( const char * label , const ImVec2 & size_arg )
@ -11495,6 +11492,7 @@ bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg)
return true ;
}
// FIXME: Rename to BeginListBox()
bool ImGui : : ListBoxHeader ( const char * label , int items_count , int height_in_items )
{
// Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar.
@ -11511,6 +11509,7 @@ bool ImGui::ListBoxHeader(const char* label, int items_count, int height_in_item
return ListBoxHeader ( label , size ) ;
}
// FIXME: Rename to EndListBox()
void ImGui : : ListBoxFooter ( )
{
ImGuiWindow * parent_window = GetCurrentWindow ( ) - > ParentWindow ;
@ -11658,7 +11657,7 @@ bool ImGui::BeginMenuBar()
return false ;
IM_ASSERT ( ! window - > DC . MenuBarAppending ) ;
BeginGroup ( ) ; // Save position
BeginGroup ( ) ; // Backup position on layer 0
PushID ( " ##menubar " ) ;
// We don't clip with current window clipping rectangle as it is already set to the area below. However we clip with window full rect.
@ -11710,7 +11709,7 @@ void ImGui::EndMenuBar()
PopID ( ) ;
window - > DC . MenuBarOffset . x = window - > DC . CursorPos . x - window - > MenuBarRect ( ) . Min . x ; // Save horizontal position so next append can reuse it. This is kinda equivalent to a per-layer CursorPos.
window - > DC . GroupStack . back ( ) . AdvanceCursor = false ;
EndGroup ( ) ;
EndGroup ( ) ; // Restore position on layer 0
window - > DC . LayoutType = ImGuiLayoutType_Vertical ;
window - > DC . NavLayerCurrent - - ;
window - > DC . NavLayerCurrentMask > > = 1 ;
@ -12792,6 +12791,7 @@ bool ImGui::IsRectVisible(const ImVec2& rect_min, const ImVec2& rect_max)
// Lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)
void ImGui : : BeginGroup ( )
{
ImGuiContext & g = * GImGui ;
ImGuiWindow * window = GetCurrentWindow ( ) ;
window - > DC . GroupStack . resize ( window - > DC . GroupStack . Size + 1 ) ;
@ -12803,21 +12803,20 @@ void ImGui::BeginGroup()
group_data . BackupCurrentLineHeight = window - > DC . CurrentLineHeight ;
group_data . BackupCurrentLineTextBaseOffset = window - > DC . CurrentLineTextBaseOffset ;
group_data . BackupLogLinePosY = window - > DC . LogLinePosY ;
group_data . BackupActiveIdIsAlive = GImGui- > ActiveIdIsAlive ;
group_data . BackupActiveIdIsAlive = g. ActiveIdIsAlive ;
group_data . AdvanceCursor = true ;
window - > DC . GroupOffsetX = window - > DC . CursorPos . x - window - > Pos . x - window - > DC . ColumnsOffsetX ;
window - > DC . IndentX = window - > DC . GroupOffsetX ;
window - > DC . CursorMaxPos = window - > DC . CursorPos ;
window - > DC . CurrentLineHeight = 0.0f ;
window - > DC . LogLinePosY = window - > DC . CursorPos . y - 9999.0f ;
window - > DC . LogLinePosY = window - > DC . CursorPos . y - 9999.0f ; // To enforce Log carriage return
}
void ImGui : : EndGroup ( )
{
ImGuiContext & g = * GImGui ;
ImGuiWindow * window = GetCurrentWindow ( ) ;
IM_ASSERT ( ! window - > DC . GroupStack . empty ( ) ) ; // Mismatched BeginGroup()/EndGroup() calls
ImGuiGroupData & group_data = window - > DC . GroupStack . back ( ) ;
@ -12827,11 +12826,11 @@ void ImGui::EndGroup()
window - > DC . CursorPos = group_data . BackupCursorPos ;
window - > DC . CursorMaxPos = ImMax ( group_data . BackupCursorMaxPos , window - > DC . CursorMaxPos ) ;
window - > DC . CurrentLineHeight = group_data . BackupCurrentLineHeight ;
window - > DC . CurrentLineTextBaseOffset = group_data . BackupCurrentLineTextBaseOffset ;
window - > DC . IndentX = group_data . BackupIndentX ;
window - > DC . GroupOffsetX = group_data . BackupGroupOffsetX ;
window - > DC . LogLinePosY = window - > DC . CursorPos . y - 9999.0f ;
window - > DC . CurrentLineHeight = group_data . BackupCurrentLineHeight ;
window - > DC . CurrentLineTextBaseOffset = group_data . BackupCurrentLineTextBaseOffset ;
window - > DC . LogLinePosY = window - > DC . CursorPos . y - 9999.0f ; // To enforce Log carriage return
if ( group_data . AdvanceCursor )
{