@ -350,17 +350,20 @@ void ImGui::LabelTextV(const char* label, const char* fmt, va_list args)
const ImGuiStyle & style = g . Style ;
const float w = CalcItemWidth ( ) ;
const char * value_text_begin = & g . TempBuffer [ 0 ] ;
const char * value_text_end = value_text_begin + ImFormatStringV ( g . TempBuffer , IM_ARRAYSIZE ( g . TempBuffer ) , fmt , args ) ;
const ImVec2 value_size = CalcTextSize ( value_text_begin , value_text_end , false ) ;
const ImVec2 label_size = CalcTextSize ( label , NULL , true ) ;
const ImRect value_bb ( window - > DC . CursorPos , window - > DC . CursorPos + ImVec2 ( w , label_size . y + style . FramePadding . y * 2 ) ) ;
const ImRect total_bb ( window - > DC . CursorPos , window - > DC . CursorPos + ImVec2 ( w + ( label_size . x > 0.0f ? style . ItemInnerSpacing . x : 0.0f ) , style . FramePadding . y * 2 ) + label_size ) ;
const ImVec2 pos = window - > DC . CursorPos ;
const ImRect value_bb ( pos , pos + ImVec2 ( w , value_size . y + style . FramePadding . y * 2 ) ) ;
const ImRect total_bb ( pos , pos + ImVec2 ( w + ( label_size . x > 0.0f ? style . ItemInnerSpacing . x + label_size . x : 0.0f ) , ImMax ( value_size . y , label_size . y ) + style . FramePadding . y * 2 ) ) ;
ItemSize ( total_bb , style . FramePadding . y ) ;
if ( ! ItemAdd ( total_bb , 0 ) )
return ;
// Render
const char * value_text_begin = & g . TempBuffer [ 0 ] ;
const char * value_text_end = value_text_begin + ImFormatStringV ( g . TempBuffer , IM_ARRAYSIZE ( g . TempBuffer ) , fmt , args ) ;
RenderTextClipped ( value_bb . Min , value_bb . Max , value_text_begin , value_text_end , NULL , ImVec2 ( 0.0f , 0.5f ) ) ;
RenderTextClipped ( value_bb . Min + style . FramePadding , value_bb . Max , value_text_begin , value_text_end , & value_size , ImVec2 ( 0.0f , 0.0f ) ) ;
if ( label_size . x > 0.0f )
RenderText ( ImVec2 ( value_bb . Max . x + style . ItemInnerSpacing . x , value_bb . Min . y + style . FramePadding . y ) , label ) ;
}