@ -527,18 +527,15 @@ namespace ImGui 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // - 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.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           PushID ( ImStrv  str_id ) ;                                           // push string into the ID stack (will hash string).
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           PushID ( const  char *  str_id_begin ,  const  char *  str_id_end  =  NULL ) ; // push string into the ID stack (will hash string).
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           PushID ( const  void *  ptr_id ) ;                                      // push pointer into the ID stack (will hash pointer).
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           PushID ( int  int_id ) ;                                              // push integer into the ID stack (will hash integer).
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           PopID ( ) ;                                                         // pop from the ID stack.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImGuiID        GetID ( ImStrv  str_id ) ;                                            // calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImGuiID        GetID ( const  char *  str_id_begin ,  const  char *  str_id_end  =  NULL ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImGuiID        GetID ( const  void *  ptr_id ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Widgets: Text
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // FIXME-IMSTR: Functions taking format should use ImStrv. It breaks IM_FMTARGS() macro however.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           TextUnformatted ( ImStrv  text ) ;                                    // raw text without formatting. Roughly equivalent to Text("%s", text) but: A) doesn't require null terminated string if 'text_end' is specified, B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void           TextUnformatted ( const  char *  text ,  const  char *  text_end )          {  TextUnformatted ( ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           Text ( const  char *  fmt ,  . . . )                                       IM_FMTARGS ( 1 ) ;  // formatted text
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           TextV ( const  char *  fmt ,  va_list  args )                             IM_FMTLIST ( 1 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void           TextColored ( const  ImVec4 &  col ,  const  char *  fmt ,  . . . )             IM_FMTARGS ( 2 ) ;  // shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor();
   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -945,7 +942,6 @@ namespace ImGui 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Text Utilities
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImVec2         CalcTextSize ( ImStrv  text ,  bool  hide_text_after_double_hash  =  false ,  float  wrap_width  =  - 1.0f ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     ImVec2         CalcTextSize ( const  char *  text ,  const  char *  text_end ,  bool  hide_text_after_double_hash  =  false ,  float  wrap_width  =  - 1.0f )  {  return  CalcTextSize ( ImStrv ( text ,  text_end ) ,  hide_text_after_double_hash ,  wrap_width ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Color Utilities
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImVec4         ColorConvertU32ToFloat4 ( ImU32  in ) ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -2382,10 +2378,12 @@ struct ImGuiInputTextCallbackData 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImGuiInputTextCallbackData ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       DeleteChars ( int  pos ,  int  bytes_count ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       InsertChars ( int  pos ,  ImStrv  text ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  void          InsertChars ( int  pos ,  const  char *  text ,  const  char *  text_end )  {  InsertChars ( pos ,  ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    void                 SelectAll ( )              {  SelectionStart  =  0 ;  SelectionEnd  =  BufTextLen ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    void                 ClearSelection ( )         {  SelectionStart  =  SelectionEnd  =  BufTextLen ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool                 HasSelection ( )  const     {  return  SelectionStart  ! =  SelectionEnd ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  void          InsertChars ( int  pos ,  const  char *  text ,  const  char *  text_end )  {  InsertChars ( pos ,  ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin().
  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -2444,17 +2442,23 @@ struct ImGuiOnceUponAFrame 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]"
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					struct  ImGuiTextFilter  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Private members
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char                 InputBuf [ 256 ] ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImVector < ImStrv >     Filters ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int                  CountGrep ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Functions
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API            ImGuiTextFilter ( ImStrv  default_filter  =  " " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  bool       Draw ( ImStrv  label  =  " Filter (inc,-exc) " , float width = 0.0f) ;   // Helper calling InputText+Build
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  bool       PassFilter ( ImStrv  text )  const ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     bool       PassFilter ( const  char *  text ,  const  char *  text_end  =  NULL )  const  {  return  PassFilter ( ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       Build ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    void                 Clear ( )           {  InputBuf [ 0 ]  =  0 ;  Build ( ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool                 IsActive ( )  const  {  return  ! Filters . empty ( ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char                 InputBuf [ 256 ] ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImVector < ImStrv >     Filters ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int                  CountGrep ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     bool       PassFilter ( const  char *  text ,  const  char *  text_end  =  NULL )  const  {  return  PassFilter ( ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Helper: Growable text buffer for logging/accumulating text
  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -2474,9 +2478,11 @@ struct ImGuiTextBuffer 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    void                 reserve ( int  capacity )    {  Buf . reserve ( capacity ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  char *          c_str ( )  const            {  return  Buf . Data  ?  Buf . Data  :  EmptyString ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       append ( ImStrv  str ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void       append ( const  char *  str ,  const  char *  str_end )  {  append ( ImStrv ( str ,  str_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       appendf ( const  char *  fmt ,  . . . )  IM_FMTARGS ( 2 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       appendfv ( const  char *  fmt ,  va_list  args )  IM_FMTLIST ( 2 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void       append ( const  char *  str ,  const  char *  str_end )  {  append ( ImStrv ( str ,  str_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// [Internal] Key+Value for ImGuiStorage
  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -2849,9 +2855,7 @@ struct ImDrawList 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddEllipse ( const  ImVec2 &  center ,  const  ImVec2 &  radius ,  ImU32  col ,  float  rot  =  0.0f ,  int  num_segments  =  0 ,  float  thickness  =  1.0f ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddEllipseFilled ( const  ImVec2 &  center ,  const  ImVec2 &  radius ,  ImU32  col ,  float  rot  =  0.0f ,  int  num_segments  =  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddText ( const  ImVec2 &  pos ,  ImU32  col ,  ImStrv  text ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void   AddText ( const  ImVec2 &  pos ,  ImU32  col ,  const  char *  text_begin ,  const  char *  text_end )  {  AddText ( NULL ,  0.0f ,  pos ,  col ,  ImStrv ( text_begin ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddText ( const  ImFont *  font ,  float  font_size ,  const  ImVec2 &  pos ,  ImU32  col ,  ImStrv  text ,  float  wrap_width  =  0.0f ,  const  ImVec4 *  cpu_fine_clip_rect  =  NULL ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void   AddText ( const  ImFont *  font ,  float  font_size ,  const  ImVec2 &  pos ,  ImU32  col ,  const  char *  text_begin ,  const  char *  text_end ,  float  wrap_width  =  0.0f ,  const  ImVec4 *  cpu_fine_clip_rect  =  NULL )  {  AddText ( font ,  font_size ,  pos ,  col ,  ImStrv ( text_begin ,  text_end ) ,  wrap_width ,  cpu_fine_clip_rect ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddBezierCubic ( const  ImVec2 &  p1 ,  const  ImVec2 &  p2 ,  const  ImVec2 &  p3 ,  const  ImVec2 &  p4 ,  ImU32  col ,  float  thickness ,  int  num_segments  =  0 ) ;  // Cubic Bezier (4 control points)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddBezierQuadratic ( const  ImVec2 &  p1 ,  const  ImVec2 &  p2 ,  const  ImVec2 &  p3 ,  ImU32  col ,  float  thickness ,  int  num_segments  =  0 ) ;                // Quadratic Bezier (3 control points)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -2862,6 +2866,11 @@ struct ImDrawList 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddConvexPolyFilled ( const  ImVec2 *  points ,  int  num_points ,  ImU32  col ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddConcavePolyFilled ( const  ImVec2 *  points ,  int  num_points ,  ImU32  col ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void   AddText ( const  ImVec2 &  pos ,  ImU32  col ,  const  char *  text_begin ,  const  char *  text_end )  {  AddText ( NULL ,  0.0f ,  pos ,  col ,  ImStrv ( text_begin ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void   AddText ( const  ImFont *  font ,  float  font_size ,  const  ImVec2 &  pos ,  ImU32  col ,  const  char *  text_begin ,  const  char *  text_end ,  float  wrap_width  =  0.0f ,  const  ImVec4 *  cpu_fine_clip_rect  =  NULL )  {  AddText ( font ,  font_size ,  pos ,  col ,  ImStrv ( text_begin ,  text_end ) ,  wrap_width ,  cpu_fine_clip_rect ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Image primitives
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // - Read FAQ to understand what ImTextureID is.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // - "p_min" and "p_max" represent the upper-left and lower-right corners of the rectangle.
   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -3012,9 +3021,12 @@ struct ImFontGlyphRangesBuilder 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  void      SetBit ( size_t  n )         {  int  off  =  ( int ) ( n  > >  5 ) ;  ImU32  mask  =  1u  < <  ( n  &  31 ) ;  UsedChars [ off ]  | =  mask ;  }                // Set bit n in the array
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  void      AddChar ( ImWchar  c )       {  SetBit ( c ) ;  }                       // Add character
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddText ( ImStrv  text ) ;                                        // Add string (each character of the UTF-8 string are added)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void   AddText ( const  char *  text ,  const  char *  text_end  =  NULL )       {  AddText ( ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   AddRanges ( const  ImWchar *  ranges ) ;                            // Add ranges, e.g. builder.AddRanges(ImFontAtlas::GetGlyphRangesDefault()) to force add all of ASCII/Latin+Ext
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void   BuildRanges ( ImVector < ImWchar > *  out_ranges ) ;                  // Output new ranges
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void   AddText ( const  char *  text ,  const  char *  text_end  =  NULL )  {  AddText ( ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// See ImFontAtlas::AddCustomRectXXX functions.
  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -3199,12 +3211,15 @@ struct ImFont 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  ImVec2             CalcTextSizeA ( float  size ,  float  max_width ,  float  wrap_width ,  ImStrv  text ,  const  char * *  remaining  =  NULL )  const ;  // utf8
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     ImVec2             CalcTextSizeA ( float  size ,  float  max_width ,  float  wrap_width ,  const  char *  text_begin ,  const  char *  text_end ,  const  char * *  remaining  =  NULL )  const  {  return  CalcTextSizeA ( size ,  max_width ,  wrap_width ,  ImStrv ( text_begin ,  text_end ) ,  remaining ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  const  char *        CalcWordWrapPositionA ( float  scale ,  ImStrv  text ,  float  wrap_width )  const ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     const  char *        CalcWordWrapPositionA ( float  scale ,  const  char *  text ,  const  char *  text_end ,  float  wrap_width )  const  {  return  CalcWordWrapPositionA ( scale ,  ImStrv ( text ,  text_end ) ,  wrap_width ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void               RenderChar ( ImDrawList *  draw_list ,  float  size ,  const  ImVec2 &  pos ,  ImU32  col ,  ImWchar  c )  const ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void               RenderText ( ImDrawList *  draw_list ,  float  size ,  const  ImVec2 &  pos ,  ImU32  col ,  const  ImVec4 &  clip_rect ,  ImStrv  text ,  float  wrap_width  =  0.0f ,  bool  cpu_fine_clip  =  false )  const ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void               RenderText ( ImDrawList *  draw_list ,  float  size ,  const  ImVec2 &  pos ,  ImU32  col ,  const  ImVec4 &  clip_rect ,  const  char *  text_begin ,  const  char *  text_end ,  float  wrap_width  =  0.0f ,  bool  cpu_fine_clip  =  false )  const  {  RenderText ( draw_list ,  size ,  pos ,  col ,  clip_rect ,  ImStrv ( text_begin ,  text_end ) ,  wrap_width ,  cpu_fine_clip ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     ImVec2             CalcTextSizeA ( float  size ,  float  max_width ,  float  wrap_width ,  const  char *  text_begin ,  const  char *  text_end ,  const  char * *  remaining  =  NULL )  const  {  return  CalcTextSizeA ( size ,  max_width ,  wrap_width ,  ImStrv ( text_begin ,  text_end ) ,  remaining ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     const  char *        CalcWordWrapPositionA ( float  scale ,  const  char *  text ,  const  char *  text_end ,  float  wrap_width )  const                                               {  return  CalcWordWrapPositionA ( scale ,  ImStrv ( text ,  text_end ) ,  wrap_width ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline     void               RenderText ( ImDrawList *  draw_list ,  float  size ,  ImVec2  pos ,  ImU32  col ,  const  ImVec4 &  clip_rect ,  const  char *  text_begin ,  const  char *  text_end ,  float  wrap_width  =  0.0f ,  bool  cpu_fine_clip  =  false )  const  {  RenderText ( draw_list ,  size ,  pos ,  col ,  clip_rect ,  ImStrv ( text_begin ,  text_end ) ,  wrap_width ,  cpu_fine_clip ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // [Internal] Don't use!
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void               BuildLookupTable ( ) ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -3278,14 +3293,19 @@ struct ImGuiPlatformImeData 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					namespace  ImGui  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // OBSOLETED in 1.XX (string_view branch)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  void          PushID ( const  char *  str_id_begin ,  const  char *  str_id_end )             {  PushID ( ImStrv ( str_id_begin ,  str_id_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  ImGuiID       GetID ( const  char *  str_id_begin ,  const  char *  str_id_end )              {  return  GetID ( ImStrv ( str_id_begin ,  str_id_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  void          TextUnformatted ( const  char *  text ,  const  char *  text_end )              {  TextUnformatted ( ImStrv ( text ,  text_end ) ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    inline  ImVec2        CalcTextSize ( const  char *  text ,  const  char *  text_end ,  bool  hide_text_after_double_hash  =  false ,  float  wrap_width  =  - 1.0f )  {  return  CalcTextSize ( ImStrv ( text ,  text_end ) ,  hide_text_after_double_hash ,  wrap_width ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // OBSOLETED in 1.90.0 (from September 2023)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    static  inline  bool   BeginChildFrame ( ImGuiID  id ,  const  ImVec2 &  size ,  ImGuiWindowFlags  window_flags  =  0 )                  {  return  BeginChild ( id ,  size ,  ImGuiChildFlags_FrameStyle ,  window_flags ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    static  inline  void   EndChildFrame ( )                                                                                     {  EndChild ( ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    //static inline bool BeginChild(ImStrv str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags)     { return BeginChild(str_id, size_arg, border ? ImGuiChildFlags_Border : ImGuiChildFlags_None, window_flags); } // Unnecessary as true == ImGuiChildFlags_Border
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    //static inline bool BeginChild(ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags window_flags)        { return BeginChild(id, size_arg, border ? ImGuiChildFlags_Border : ImGuiChildFlags_None, window_flags);     } // Unnecessary as true == ImGuiChildFlags_Border
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    static  inline  void   ShowStackToolWindow ( bool *  p_open  =  NULL )                             {  ShowIDStackToolWindow ( p_open ) ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  bool       ListBox ( const  char *   label ,  int *  current_item ,  bool  ( * old_callback ) ( void *  user_data ,  int  idx ,  const  char * *  out_text ) ,  void *  user_data ,  int  items_count ,  int  height_in_items  =  - 1 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  bool       Combo ( const  char *   label ,  int *  current_item ,  bool  ( * old_callback ) ( void *  user_data ,  int  idx ,  const  char * *  out_text ) ,  void *  user_data ,  int  items_count ,  int  popup_max_height_in_items  =  - 1 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  bool       ListBox ( ImStrv   label ,  int *  current_item ,  bool  ( * old_callback ) ( void *  user_data ,  int  idx ,  const  char * *  out_text ) ,  void *  user_data ,  int  items_count ,  int  height_in_items  =  - 1 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  bool       Combo ( ImStrv   label ,  int *  current_item ,  bool  ( * old_callback ) ( void *  user_data ,  int  idx ,  const  char * *  out_text ) ,  void *  user_data ,  int  items_count ,  int  popup_max_height_in_items  =  - 1 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // OBSOLETED in 1.89.7 (from June 2023)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IMGUI_API  void       SetItemAllowOverlap ( ) ;                                               // Use SetNextItemAllowOverlap() before item.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // OBSOLETED in 1.89.4 (from March 2023)