@ -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 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {