@ -1536,6 +1536,7 @@ ImGuiWindow::ImGuiWindow(const char* name)
ScrollTargetCenterRatio = ImVec2 ( 0.5f , 0.5f ) ;
ScrollbarX = ScrollbarY = false ;
ScrollbarSizes = ImVec2 ( 0.0f , 0.0f ) ;
BorderSize = 0.0f ;
Active = WasActive = false ;
Accessed = false ;
Collapsed = false ;
@ -3931,6 +3932,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
window - > ScrollbarY = ( flags & ImGuiWindowFlags_ForceVerticalScrollbar ) | | ( ( window - > SizeContents . y > window - > Size . y + style . ItemSpacing . y ) & & ! ( flags & ImGuiWindowFlags_NoScrollbar ) ) ;
window - > ScrollbarX = ( flags & ImGuiWindowFlags_ForceHorizontalScrollbar ) | | ( ( window - > SizeContents . x > window - > Size . x - ( window - > ScrollbarY ? style . ScrollbarSize : 0.0f ) - window - > WindowPadding . x ) & & ! ( flags & ImGuiWindowFlags_NoScrollbar ) & & ( flags & ImGuiWindowFlags_HorizontalScrollbar ) ) ;
window - > ScrollbarSizes = ImVec2 ( window - > ScrollbarY ? style . ScrollbarSize : 0.0f , window - > ScrollbarX ? style . ScrollbarSize : 0.0f ) ;
window - > BorderSize = ( flags & ImGuiWindowFlags_ShowBorders ) ? 1.0f : 0.0f ;
// Window background
if ( bg_alpha > 0.0f )
@ -3970,11 +3972,10 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
// (after the input handling so we don't have a frame of latency)
if ( ! ( flags & ImGuiWindowFlags_NoResize ) )
{
const float border_size = ( window - > Flags & ImGuiWindowFlags_ShowBorders ) ? 1.0f : 0.0f ;
const ImVec2 br = window - > Rect ( ) . GetBR ( ) ;
window - > DrawList - > PathLineTo ( br + ImVec2 ( - resize_corner_size , - border_s ize) ) ;
window - > DrawList - > PathLineTo ( br + ImVec2 ( - border_s ize, - resize_corner_size ) ) ;
window - > DrawList - > PathArcToFast ( ImVec2 ( br . x - window_rounding - border_s ize, br . y - window_rounding - border_s ize) , window_rounding , 0 , 3 ) ;
window - > DrawList - > PathLineTo ( br + ImVec2 ( - resize_corner_size , - window - > BorderS ize) ) ;
window - > DrawList - > PathLineTo ( br + ImVec2 ( - window - > BorderS ize, - resize_corner_size ) ) ;
window - > DrawList - > PathArcToFast ( ImVec2 ( br . x - window_rounding - window - > BorderS ize, br . y - window_rounding - window - > BorderS ize) , window_rounding , 0 , 3 ) ;
window - > DrawList - > PathFill ( resize_col ) ;
}
@ -4064,7 +4065,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
// We set this up after processing the resize grip so that our clip rectangle doesn't lag by a frame
// Note that if our window is collapsed we will end up with a null clipping rectangle which is the correct behavior.
const ImRect title_bar_rect = window - > TitleBarRect ( ) ;
const float border_size = ( flags & ImGuiWindowFlags_ShowBorders ) ? 1.0f : 0.0f ;
const float border_size = window - > BorderSize ;
ImRect clip_rect ;
clip_rect . Min . x = title_bar_rect . Min . x + 0.5f + ImMax ( border_size , window - > WindowPadding . x * 0.5f ) ;
clip_rect . Min . y = title_bar_rect . Max . y + window - > MenuBarHeight ( ) + 0.5f + border_size ;
@ -4137,7 +4138,7 @@ static void Scrollbar(ImGuiWindow* window, bool horizontal)
bool other_scrollbar = ( horizontal ? window - > ScrollbarY : window - > ScrollbarX ) ;
float other_scrollbar_size_w = other_scrollbar ? style . ScrollbarSize : 0.0f ;
const ImRect window_rect = window - > Rect ( ) ;
const float border_size = ( window - > Flags & ImGuiWindowFlags_ShowBorders ) ? 1.0f : 0.0f ;
const float border_size = window - > BorderSize ;
ImRect bb = horizontal
? ImRect ( window - > Pos . x + border_size , window_rect . Max . y - style . ScrollbarSize , window_rect . Max . x - other_scrollbar_size_w - border_size , window_rect . Max . y - border_size )
: ImRect ( window_rect . Max . x - style . ScrollbarSize , window - > Pos . y + border_size , window_rect . Max . x - border_size , window_rect . Max . y - other_scrollbar_size_w - border_size ) ;
@ -6801,15 +6802,16 @@ void ImGui::ProgressBar(float fraction, const ImVec2& size_arg, const char* over
const ImGuiStyle & style = g . Style ;
ImVec2 pos = window - > DC . CursorPos ;
const ImRect bb ( pos , pos + CalcItemSize ( size_arg , CalcItemWidth ( ) , g . FontSize + style . FramePadding . y * 2.0f ) ) ;
ImRect bb ( pos , pos + CalcItemSize ( size_arg , CalcItemWidth ( ) , g . FontSize + style . FramePadding . y * 2.0f ) ) ;
ItemSize ( bb , style . FramePadding . y ) ;
if ( ! ItemAdd ( bb , NULL ) )
return ;
// Render
fraction = ImSaturate ( fraction ) ;
const ImVec2 fill_br = ImVec2 ( ImLerp ( bb . Min . x , bb . Max . x , fraction ) , bb . Max . y ) ;
RenderFrame ( bb . Min , bb . Max , GetColorU32 ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
bb . Reduce ( ImVec2 ( window - > BorderSize , window - > BorderSize ) ) ;
const ImVec2 fill_br = ImVec2 ( ImLerp ( bb . Min . x , bb . Max . x , fraction ) , bb . Max . y ) ;
RenderFrame ( bb . Min , fill_br , GetColorU32 ( ImGuiCol_PlotHistogram ) , false , style . FrameRounding ) ;
// Default displaying the fraction as percentage string, but user can override it
@ -8325,8 +8327,7 @@ bool ImGui::BeginMenuBar()
ImGui : : BeginGroup ( ) ; // Save position
ImGui : : PushID ( " ##menubar " ) ;
ImRect rect = window - > MenuBarRect ( ) ;
float border_size = ( window - > Flags & ImGuiWindowFlags_ShowBorders ) ? 1.0f : 0.0f ;
PushClipRect ( ImVec2 ( rect . Min . x + 0.5f , rect . Min . y - 0.5f + border_size ) , ImVec2 ( rect . Max . x + 0.5f , rect . Max . y - 0.5f ) , false ) ;
PushClipRect ( ImVec2 ( rect . Min . x + 0.5f , rect . Min . y - 0.5f + window - > BorderSize ) , ImVec2 ( rect . Max . x + 0.5f , rect . Max . y - 0.5f ) , false ) ;
window - > DC . CursorPos = ImVec2 ( rect . Min . x + window - > DC . MenuBarOffsetX , rect . Min . y ) ; // + g.Style.FramePadding.y);
window - > DC . LayoutType = ImGuiLayoutType_Horizontal ;
window - > DC . MenuBarAppending = true ;