@ -392,8 +392,6 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  input  number :  optional  range  min / max  for  Input * ( )  functions   
					 
					 
					 
					 -  input  number :  optional  range  min / max  for  Input * ( )  functions   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  input  number :  holding  [ - ] / [ + ]  buttons  could  increase  the  step  speed  non - linearly  ( or  user - controlled )   
					 
					 
					 
					 -  input  number :  holding  [ - ] / [ + ]  buttons  could  increase  the  step  speed  non - linearly  ( or  user - controlled )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  input  number :  use  mouse  wheel  to  step  up / down   
					 
					 
					 
					 -  input  number :  use  mouse  wheel  to  step  up / down   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  input  number :  non - decimal  input .   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  input  number :  display  and  input  as  hexadecimal   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  input  number :  applying  arithmetics  ops  ( + , - , * , / )  messes  up  with  text  edit  undo  stack .   
					 
					 
					 
					 -  input  number :  applying  arithmetics  ops  ( + , - , * , / )  messes  up  with  text  edit  undo  stack .   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  text :  proper  alignment  options   
					 
					 
					 
					 -  text :  proper  alignment  options   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  layout :  horizontal  layout  helper  ( # 97 )   
					 
					 
					 
					 -  layout :  horizontal  layout  helper  ( # 97 )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -406,7 +404,7 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  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 :  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   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  listbox :  user  may  want  to  initial  scroll  to  focus  on  the  one  selected  value ?   
					 
					 
					 
					 -  listbox :  user  may  want  to  initial  scroll  to  focus  on  the  one  selected  value ?   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 -  listbox :  keyboard  navigation .   
					 
					 
					 
					 -  listbox :  keyboard  navigation .   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -5840,7 +5838,7 @@ enum ImGuiDataTypeOp 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ImGuiDataTypeOp_Sub   
					 
					 
					 
					    ImGuiDataTypeOp_Sub   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					} ;  
					 
					 
					 
					} ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  inline  void  DataTypeFormat ( ImGuiDataType  data_type ,  void *  data_ptr ,  const  char *  display_format ,  char *  buf ,  int  buf_size )  
					 
					 
					 
					static  inline  void  DataTypeFormatString  ( ImGuiDataType  data_type ,  void *  data_ptr ,  const  char *  display_format ,  char *  buf ,  int  buf_size )  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( data_type  = =  ImGuiDataType_Int )   
					 
					 
					 
					    if  ( data_type  = =  ImGuiDataType_Int )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        ImFormatString ( buf ,  buf_size ,  display_format ,  * ( int * ) data_ptr ) ;   
					 
					 
					 
					        ImFormatString ( buf ,  buf_size ,  display_format ,  * ( int * ) data_ptr ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -5848,7 +5846,7 @@ static inline void DataTypeFormat(ImGuiDataType data_type, void* data_ptr, const 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        ImFormatString ( buf ,  buf_size ,  display_format ,  * ( float * ) data_ptr ) ;   
					 
					 
					 
					        ImFormatString ( buf ,  buf_size ,  display_format ,  * ( float * ) data_ptr ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  inline  void  DataTypeFormat ( ImGuiDataType  data_type ,  void *  data_ptr ,  int  decimal_precision ,  char *  buf ,  int  buf_size )  
					 
					 
					 
					static  inline  void  DataTypeFormatString  ( ImGuiDataType  data_type ,  void *  data_ptr ,  int  decimal_precision ,  char *  buf ,  int  buf_size )  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( data_type  = =  ImGuiDataType_Int )   
					 
					 
					 
					    if  ( data_type  = =  ImGuiDataType_Int )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    {   
					 
					 
					 
					    {   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -5954,7 +5952,7 @@ static bool InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    window - > FocusItemUnregister ( ) ;   
					 
					 
					 
					    window - > FocusItemUnregister ( ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    char  buf [ 32 ] ;   
					 
					 
					 
					    char  buf [ 32 ] ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    DataTypeFormat ( data_type ,  data_ptr ,  decimal_precision ,  buf ,  IM_ARRAYSIZE ( buf ) ) ;   
					 
					 
					 
					    DataTypeFormatString  ( data_type ,  data_ptr ,  decimal_precision ,  buf ,  IM_ARRAYSIZE ( buf ) ) ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    bool  value_changed  =  InputTextEx ( label ,  buf ,  IM_ARRAYSIZE ( buf ) ,  aabb . GetSize ( )  -  g . Style . FramePadding * 2.0f ,  ImGuiInputTextFlags_CharsDecimal  |  ImGuiInputTextFlags_AutoSelectAll ) ;   
					 
					 
					 
					    bool  value_changed  =  InputTextEx ( label ,  buf ,  IM_ARRAYSIZE ( buf ) ,  aabb . GetSize ( )  -  g . Style . FramePadding * 2.0f ,  ImGuiInputTextFlags_CharsDecimal  |  ImGuiInputTextFlags_AutoSelectAll ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( g . ScalarAsInputTextId  = =  0 )   
					 
					 
					 
					    if  ( g . ScalarAsInputTextId  = =  0 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    {   
					 
					 
					 
					    {   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -7690,7 +7688,7 @@ static bool InputScalarEx(const char* label, ImGuiDataType data_type, void* data 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        ImGui : : PushItemWidth ( ImMax ( 1.0f ,  w  -  ( button_sz . x  +  style . ItemInnerSpacing . x ) * 2 ) ) ;   
					 
					 
					 
					        ImGui : : PushItemWidth ( ImMax ( 1.0f ,  w  -  ( button_sz . x  +  style . ItemInnerSpacing . x ) * 2 ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    char  buf [ 64 ] ;   
					 
					 
					 
					    char  buf [ 64 ] ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    DataTypeFormat ( data_type ,  data_ptr ,  scalar_format ,  buf ,  IM_ARRAYSIZE ( buf ) ) ;   
					 
					 
					 
					    DataTypeFormatString  ( data_type ,  data_ptr ,  scalar_format ,  buf ,  IM_ARRAYSIZE ( buf ) ) ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    bool  value_changed  =  false ;   
					 
					 
					 
					    bool  value_changed  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( ! ( extra_flags  &  ImGuiInputTextFlags_CharsHexadecimal ) )   
					 
					 
					 
					    if  ( ! ( extra_flags  &  ImGuiInputTextFlags_CharsHexadecimal ) )   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -7744,6 +7742,7 @@ bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					bool  ImGui : : InputInt ( const  char *  label ,  int *  v ,  int  step ,  int  step_fast ,  ImGuiInputTextFlags  extra_flags )  
					 
					 
					 
					bool  ImGui : : InputInt ( const  char *  label ,  int *  v ,  int  step ,  int  step_fast ,  ImGuiInputTextFlags  extra_flags )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    // Hexadecimal input provided as a convenience but the flag name is awkward. Typically you'd use InputText() to parse your own data, if you want to handle prefixes.
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  char *  scalar_format  =  ( extra_flags  &  ImGuiInputTextFlags_CharsHexadecimal )  ?  " %08X "  :  " %d " ;   
					 
					 
					 
					    const  char *  scalar_format  =  ( extra_flags  &  ImGuiInputTextFlags_CharsHexadecimal )  ?  " %08X "  :  " %d " ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    return  InputScalarEx ( label ,  ImGuiDataType_Int ,  ( void * ) v ,  ( void * ) ( step > 0.0f  ?  & step  :  NULL ) ,  ( void * ) ( step_fast > 0.0f  ?  & step_fast  :  NULL ) ,  scalar_format ,  extra_flags ) ;   
					 
					 
					 
					    return  InputScalarEx ( label ,  ImGuiDataType_Int ,  ( void * ) v ,  ( void * ) ( step > 0.0f  ?  & step  :  NULL ) ,  ( void * ) ( step_fast > 0.0f  ?  & step_fast  :  NULL ) ,  scalar_format ,  extra_flags ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}