@ -402,7 +402,6 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  columns :  user  specify  columns  size  ( # 125 )   
					 
					 
					 
					 -  columns :  user  specify  columns  size  ( # 125 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  popup :  border  options .  richer  api  like  BeginChild ( )  perhaps ?  ( # 197 )   
					 
					 
					 
					 -  popup :  border  options .  richer  api  like  BeginChild ( )  perhaps ?  ( # 197 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  combo :  sparse  combo  boxes  ( via  function  call ? )   
					 
					 
					 
					 -  combo :  sparse  combo  boxes  ( via  function  call ? )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  combo :  turn  child  handling  code  into  pop  up  helper   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  combo :  contents  should  extends  to  fit  label  if  combo  widget  is  small   
					 
					 
					 
					 -  combo :  contents  should  extends  to  fit  label  if  combo  widget  is  small   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  combo / listbox :  keyboard  control .  need  inputtext  like  non - active  focus  +  key  handling .  considering  keybord  for  custom  listbox  ( pr  # 203 )   
					 
					 
					 
					 -  combo / listbox :  keyboard  control .  need  inputtext  like  non - active  focus  +  key  handling .  considering  keybord  for  custom  listbox  ( pr  # 203 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  listbox :  multiple  selection   
					 
					 
					 
					 -  listbox :  multiple  selection   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -5957,16 +5956,16 @@ static bool SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  bool  is_non_linear  =  fabsf ( power  -  1.0f )  >  0.0001f ;   
					 
					 
					 
					    const  bool  is_non_linear  =  fabsf ( power  -  1.0f )  >  0.0001f ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  float  padding  =  horizontal  ?  style . FramePadding . x  :  style . FramePadding . y ;   
					 
					 
					 
					    const  float  grab_padding  =  2.0f ;   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  float  slider_sz  =  horizontal  ?  ( frame_bb . GetWidth ( )  -  padding  *  2.0f )  :  ( frame_bb . GetHeight ( )  -  padding  *  2.0f ) ;   
					 
					 
					 
					    const  float  slider_sz  =  horizontal  ?  ( frame_bb . GetWidth ( )  -  grab_ padding  *  2.0f )  :  ( frame_bb . GetHeight ( )  -  grab_ padding  *  2.0f ) ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    float  grab_sz ;   
					 
					 
					 
					    float  grab_sz ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( decimal_precision  >  0 )   
					 
					 
					 
					    if  ( decimal_precision  >  0 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        grab_sz  =  ImMin ( style . GrabMinSize ,  slider_sz ) ;   
					 
					 
					 
					        grab_sz  =  ImMin ( style . GrabMinSize ,  slider_sz ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    else   
					 
					 
					 
					    else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        grab_sz  =  ImMin ( ImMax ( 1.0f  *  ( slider_sz  /  ( v_max - v_min + 1.0f ) ) ,  style . GrabMinSize ) ,  slider_sz ) ;   // Integer sliders, if possible have the grab size represent 1 unit
   
					 
					 
					 
					        grab_sz  =  ImMin ( ImMax ( 1.0f  *  ( slider_sz  /  ( v_max - v_min + 1.0f ) ) ,  style . GrabMinSize ) ,  slider_sz ) ;   // Integer sliders, if possible have the grab size represent 1 unit
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  float  slider_usable_sz  =  slider_sz  -  grab_sz ;   
					 
					 
					 
					    const  float  slider_usable_sz  =  slider_sz  -  grab_sz ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  float  slider_usable_pos_min  =  ( horizontal  ?  frame_bb . Min . x  :  frame_bb . Min . y )  +  padding  +  grab_sz * 0.5f ;   
					 
					 
					 
					    const  float  slider_usable_pos_min  =  ( horizontal  ?  frame_bb . Min . x  :  frame_bb . Min . y )  +  grab_ padding  +  grab_sz * 0.5f ;   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  float  slider_usable_pos_max  =  ( horizontal  ?  frame_bb . Max . x  :  frame_bb . Max . y )  -  padding  -  grab_sz * 0.5f ;   
					 
					 
					 
					    const  float  slider_usable_pos_max  =  ( horizontal  ?  frame_bb . Max . x  :  frame_bb . Max . y )  -  grab_ padding  -  grab_sz * 0.5f ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    bool  value_changed  =  false ;   
					 
					 
					 
					    bool  value_changed  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -6066,9 +6065,9 @@ static bool SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  float  grab_pos  =  ImLerp ( slider_usable_pos_min ,  slider_usable_pos_max ,  grab_t ) ;   
					 
					 
					 
					    const  float  grab_pos  =  ImLerp ( slider_usable_pos_min ,  slider_usable_pos_max ,  grab_t ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ImRect  grab_bb ;   
					 
					 
					 
					    ImRect  grab_bb ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( horizontal )   
					 
					 
					 
					    if  ( horizontal )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        grab_bb  =  ImRect ( ImVec2 ( grab_pos  -  grab_sz * 0.5f ,  frame_bb . Min . y  +  2.0f ) ,  ImVec2 ( grab_pos  +  grab_sz * 0.5f ,  frame_bb . Max . y  -  2.0f ) ) ;   
					 
					 
					 
					        grab_bb  =  ImRect ( ImVec2 ( grab_pos  -  grab_sz * 0.5f ,  frame_bb . Min . y  +  grab_padding ) ,  ImVec2 ( grab_pos  +  grab_sz * 0.5f ,  frame_bb . Max . y  -  grab_padding ) ) ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    else   
					 
					 
					 
					    else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        grab_bb  =  ImRect ( ImVec2 ( frame_bb . Min . x  +  2.0f ,  grab_pos  -  grab_sz * 0.5f ) ,  ImVec2 ( frame_bb . Max . x  -  2.0f ,  grab_pos  +  grab_sz * 0.5f ) ) ;   
					 
					 
					 
					        grab_bb  =  ImRect ( ImVec2 ( frame_bb . Min . x  +  grab_padding ,  grab_pos  -  grab_sz * 0.5f ) ,  ImVec2 ( frame_bb . Max . x  -  grab_padding ,  grab_pos  +  grab_sz * 0.5f ) ) ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    window - > DrawList - > AddRectFilled ( grab_bb . Min ,  grab_bb . Max ,  window - > Color ( g . ActiveId  = =  id  ?  ImGuiCol_SliderGrabActive  :  ImGuiCol_SliderGrab ) ,  style . GrabRounding ) ;   
					 
					 
					 
					    window - > DrawList - > AddRectFilled ( grab_bb . Min ,  grab_bb . Max ,  window - > Color ( g . ActiveId  = =  id  ?  ImGuiCol_SliderGrabActive  :  ImGuiCol_SliderGrab ) ,  style . GrabRounding ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    return  value_changed ;   
					 
					 
					 
					    return  value_changed ;