@ -2596,7 +2596,7 @@ void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool
if ( text_len > 0 )
{
// Render
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , window- > Color ( ImGuiCol_Text ) , text , text_display_end ) ;
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , GetColorU32 ( ImGuiCol_Text ) , text , text_display_end ) ;
// Log as text
if ( g . LogEnabled )
@ -2615,7 +2615,7 @@ void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end
const int text_len = ( int ) ( text_end - text ) ;
if ( text_len > 0 )
{
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , window- > Color ( ImGuiCol_Text ) , text , text_end , wrap_width ) ;
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , GetColorU32 ( ImGuiCol_Text ) , text , text_end , wrap_width ) ;
if ( g . LogEnabled )
LogRenderedText ( pos , text , text_end ) ;
}
@ -2650,11 +2650,11 @@ void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, cons
if ( need_clipping )
{
ImVec4 fine_clip_rect ( clip_min - > x , clip_min - > y , clip_max - > x , clip_max - > y ) ;
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , window- > Color ( ImGuiCol_Text ) , text , text_display_end , 0.0f , & fine_clip_rect ) ;
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , GetColorU32 ( ImGuiCol_Text ) , text , text_display_end , 0.0f , & fine_clip_rect ) ;
}
else
{
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , window- > Color ( ImGuiCol_Text ) , text , text_display_end , 0.0f , NULL ) ;
window - > DrawList - > AddText ( g . Font , g . FontSize , pos , GetColorU32 ( ImGuiCol_Text ) , text , text_display_end , 0.0f , NULL ) ;
}
if ( g . LogEnabled )
LogRenderedText ( pos , text , text_display_end ) ;
@ -2668,8 +2668,8 @@ void ImGui::RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border,
window - > DrawList - > AddRectFilled ( p_min , p_max , fill_col , rounding ) ;
if ( border & & ( window - > Flags & ImGuiWindowFlags_ShowBorders ) )
{
window - > DrawList - > AddRect ( p_min + ImVec2 ( 1 , 1 ) , p_max , window- > Color ( ImGuiCol_BorderShadow ) , rounding ) ;
window - > DrawList - > AddRect ( p_min , p_max - ImVec2 ( 1 , 1 ) , window- > Color ( ImGuiCol_Border ) , rounding ) ;
window - > DrawList - > AddRect ( p_min + ImVec2 ( 1 , 1 ) , p_max , GetColorU32 ( ImGuiCol_BorderShadow ) , rounding ) ;
window - > DrawList - > AddRect ( p_min , p_max - ImVec2 ( 1 , 1 ) , GetColorU32 ( ImGuiCol_Border ) , rounding ) ;
}
}
@ -2699,8 +2699,8 @@ void ImGui::RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale, bool
}
if ( shadow & & ( window - > Flags & ImGuiWindowFlags_ShowBorders ) ! = 0 )
window - > DrawList - > AddTriangleFilled ( a + ImVec2 ( 2 , 2 ) , b + ImVec2 ( 2 , 2 ) , c + ImVec2 ( 2 , 2 ) , window- > Color ( ImGuiCol_BorderShadow ) ) ;
window - > DrawList - > AddTriangleFilled ( a , b , c , window- > Color ( ImGuiCol_Text ) ) ;
window - > DrawList - > AddTriangleFilled ( a + ImVec2 ( 2 , 2 ) , b + ImVec2 ( 2 , 2 ) , c + ImVec2 ( 2 , 2 ) , GetColorU32 ( ImGuiCol_BorderShadow ) ) ;
window - > DrawList - > AddTriangleFilled ( a , b , c , GetColorU32 ( ImGuiCol_Text ) ) ;
}
void ImGui : : RenderCheckMark ( ImVec2 pos , ImU32 col )
@ -3869,7 +3869,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
if ( ( flags & ImGuiWindowFlags_Modal ) ! = 0 & & window = = GetFrontMostModalRootWindow ( ) )
{
ImRect fullscreen_rect = GetVisibleRect ( ) ;
window - > DrawList - > AddRectFilled ( fullscreen_rect . Min , fullscreen_rect . Max , window- > Color ( ImGuiCol_ModalWindowDarkening , g . ModalWindowDarkeningRatio ) ) ;
window - > DrawList - > AddRectFilled ( fullscreen_rect . Min , fullscreen_rect . Max , GetColorU32 ( ImGuiCol_ModalWindowDarkening , g . ModalWindowDarkeningRatio ) ) ;
}
// Draw window + handle manual resize
@ -3878,7 +3878,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
if ( window - > Collapsed )
{
// Draw title bar only
RenderFrame ( title_bar_rect . GetTL ( ) , title_bar_rect . GetBR ( ) , window- > Color ( ImGuiCol_TitleBgCollapsed ) , true , window_rounding ) ;
RenderFrame ( title_bar_rect . GetTL ( ) , title_bar_rect . GetBR ( ) , GetColorU32 ( ImGuiCol_TitleBgCollapsed ) , true , window_rounding ) ;
}
else
{
@ -3892,7 +3892,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
const ImGuiID resize_id = window - > GetID ( " #RESIZE " ) ;
bool hovered , held ;
ButtonBehavior ( resize_rect , resize_id , & hovered , & held , ImGuiButtonFlags_FlattenChilds ) ;
resize_col = window- > Color ( held ? ImGuiCol_ResizeGripActive : hovered ? ImGuiCol_ResizeGripHovered : ImGuiCol_ResizeGrip ) ;
resize_col = GetColorU32 ( held ? ImGuiCol_ResizeGripActive : hovered ? ImGuiCol_ResizeGripHovered : ImGuiCol_ResizeGrip ) ;
if ( hovered | | held )
g . MouseCursor = ImGuiMouseCursor_ResizeNWSE ;
@ -3935,18 +3935,18 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
col_idx = ImGuiCol_ChildWindowBg ;
else
col_idx = ImGuiCol_WindowBg ;
window - > DrawList - > AddRectFilled ( window - > Pos , window - > Pos + window - > Size , window- > Color ( col_idx , bg_alpha ) , window_rounding ) ;
window - > DrawList - > AddRectFilled ( window - > Pos , window - > Pos + window - > Size , GetColorU32 ( col_idx , bg_alpha ) , window_rounding ) ;
}
// Title bar
if ( ! ( flags & ImGuiWindowFlags_NoTitleBar ) )
window - > DrawList - > AddRectFilled ( title_bar_rect . GetTL ( ) , title_bar_rect . GetBR ( ) , window- > Color ( ( g . FocusedWindow & & window - > RootNonPopupWindow = = g . FocusedWindow - > RootNonPopupWindow ) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg ) , window_rounding , 1 | 2 ) ;
window - > DrawList - > AddRectFilled ( title_bar_rect . GetTL ( ) , title_bar_rect . GetBR ( ) , GetColorU32 ( ( g . FocusedWindow & & window - > RootNonPopupWindow = = g . FocusedWindow - > RootNonPopupWindow ) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg ) , window_rounding , 1 | 2 ) ;
// Menu bar
if ( flags & ImGuiWindowFlags_MenuBar )
{
ImRect menu_bar_rect = window - > MenuBarRect ( ) ;
window - > DrawList - > AddRectFilled ( menu_bar_rect . GetTL ( ) , menu_bar_rect . GetBR ( ) , window- > Color ( ImGuiCol_MenuBarBg ) , ( flags & ImGuiWindowFlags_NoTitleBar ) ? window_rounding : 0.0f , 1 | 2 ) ;
window - > DrawList - > AddRectFilled ( menu_bar_rect . GetTL ( ) , menu_bar_rect . GetBR ( ) , GetColorU32 ( ImGuiCol_MenuBarBg ) , ( flags & ImGuiWindowFlags_NoTitleBar ) ? window_rounding : 0.0f , 1 | 2 ) ;
}
// Scrollbars
@ -3970,10 +3970,10 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
// Borders
if ( flags & ImGuiWindowFlags_ShowBorders )
{
window - > DrawList - > AddRect ( window - > Pos + ImVec2 ( 1 , 1 ) , window - > Pos + window - > Size , window- > Color ( ImGuiCol_BorderShadow ) , window_rounding ) ;
window - > DrawList - > AddRect ( window - > Pos , window - > Pos + window - > Size - ImVec2 ( 1 , 1 ) , window- > Color ( ImGuiCol_Border ) , window_rounding ) ;
window - > DrawList - > AddRect ( window - > Pos + ImVec2 ( 1 , 1 ) , window - > Pos + window - > Size , GetColorU32 ( ImGuiCol_BorderShadow ) , window_rounding ) ;
window - > DrawList - > AddRect ( window - > Pos , window - > Pos + window - > Size - ImVec2 ( 1 , 1 ) , GetColorU32 ( ImGuiCol_Border ) , window_rounding ) ;
if ( ! ( flags & ImGuiWindowFlags_NoTitleBar ) )
window - > DrawList - > AddLine ( title_bar_rect . GetBL ( ) + ImVec2 ( 1 , 0 ) , title_bar_rect . GetBR ( ) - ImVec2 ( 1 , 0 ) , window- > Color ( ImGuiCol_Border ) ) ;
window - > DrawList - > AddLine ( title_bar_rect . GetBL ( ) + ImVec2 ( 1 , 0 ) , title_bar_rect . GetBR ( ) - ImVec2 ( 1 , 0 ) , GetColorU32 ( ImGuiCol_Border ) ) ;
}
}
@ -4139,7 +4139,7 @@ static void Scrollbar(ImGuiWindow* window, bool horizontal)
window_rounding_corners = 8 | ( other_scrollbar ? 0 : 4 ) ;
else
window_rounding_corners = ( ( window - > Flags & ImGuiWindowFlags_NoTitleBar ) ? 2 : 0 ) | ( other_scrollbar ? 0 : 4 ) ;
window - > DrawList - > AddRectFilled ( bb . Min , bb . Max , window- > Color ( ImGuiCol_ScrollbarBg ) , window_rounding , window_rounding_corners ) ;
window - > DrawList - > AddRectFilled ( bb . Min , bb . Max , ImGui: : GetColorU32 ( ImGuiCol_ScrollbarBg ) , window_rounding , window_rounding_corners ) ;
bb . Reduce ( ImVec2 ( ImClamp ( ( float ) ( int ) ( ( bb . Max . x - bb . Min . x - 2.0f ) * 0.5f ) , 0.0f , 3.0f ) , ImClamp ( ( float ) ( int ) ( ( bb . Max . y - bb . Min . y - 2.0f ) * 0.5f ) , 0.0f , 3.0f ) ) ) ;
// V denote the main axis of the scrollbar
@ -4206,7 +4206,7 @@ static void Scrollbar(ImGuiWindow* window, bool horizontal)
}
// Render
const ImU32 grab_col = window- > Color ( held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab ) ;
const ImU32 grab_col = ImGui: : GetColorU32 ( held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab ) ;
if ( horizontal )
window - > DrawList - > AddRectFilled ( ImVec2 ( ImLerp ( bb . Min . x , bb . Max . x , grab_v_norm ) , bb . Min . y ) , ImVec2 ( ImLerp ( bb . Min . x , bb . Max . x , grab_v_norm ) + grab_h_pixels , bb . Max . y ) , grab_col , style . ScrollbarRounding ) ;
else
@ -5268,7 +5268,7 @@ bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags
bool pressed = ButtonBehavior ( bb , id , & hovered , & held , flags ) ;
// Render
const ImU32 col = window- > Color ( ( hovered & & held ) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button ) ;
const ImU32 col = GetColorU32 ( ( hovered & & held ) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button ) ;
RenderFrame ( bb . Min , bb . Max , col , true , style . FrameRounding ) ;
RenderTextClipped ( bb . Min , bb . Max , label , NULL , & label_size , ImGuiAlign_Center | ImGuiAlign_VCenter ) ;
@ -5329,15 +5329,15 @@ static bool CloseWindowButton(bool* p_opened)
bool pressed = ImGui : : ButtonBehavior ( bb , id , & hovered , & held ) ;
// Render
const ImU32 col = window- > Color ( ( held & & hovered ) ? ImGuiCol_CloseButtonActive : hovered ? ImGuiCol_CloseButtonHovered : ImGuiCol_CloseButton ) ;
const ImU32 col = ImGui: : GetColorU32 ( ( held & & hovered ) ? ImGuiCol_CloseButtonActive : hovered ? ImGuiCol_CloseButtonHovered : ImGuiCol_CloseButton ) ;
const ImVec2 center = bb . GetCenter ( ) ;
window - > DrawList - > AddCircleFilled ( center , ImMax ( 2.0f , size * 0.5f ) , col , 16 ) ;
const float cross_extent = ( size * 0.5f * 0.7071f ) - 1.0f ;
if ( hovered )
{
window - > DrawList - > AddLine ( center + ImVec2 ( + cross_extent , + cross_extent ) , center + ImVec2 ( - cross_extent , - cross_extent ) , window- > Color ( ImGuiCol_Text ) ) ;
window - > DrawList - > AddLine ( center + ImVec2 ( + cross_extent , - cross_extent ) , center + ImVec2 ( - cross_extent , + cross_extent ) , window- > Color ( ImGuiCol_Text ) ) ;
window - > DrawList - > AddLine ( center + ImVec2 ( + cross_extent , + cross_extent ) , center + ImVec2 ( - cross_extent , - cross_extent ) , ImGui: : GetColorU32 ( ImGuiCol_Text ) ) ;
window - > DrawList - > AddLine ( center + ImVec2 ( + cross_extent , - cross_extent ) , center + ImVec2 ( - cross_extent , + cross_extent ) , ImGui: : GetColorU32 ( ImGuiCol_Text ) ) ;
}
if ( p_opened ! = NULL & & pressed )
@ -5361,12 +5361,12 @@ void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2&
if ( border_col . w > 0.0f )
{
window - > DrawList - > AddRect ( bb . Min , bb . Max , window- > Color ( border_col ) , 0.0f ) ;
window - > DrawList - > AddImage ( user_texture_id , bb . Min + ImVec2 ( 1 , 1 ) , bb . Max - ImVec2 ( 1 , 1 ) , uv0 , uv1 , window- > Color ( tint_col ) ) ;
window - > DrawList - > AddRect ( bb . Min , bb . Max , GetColorU32 ( border_col ) , 0.0f ) ;
window - > DrawList - > AddImage ( user_texture_id , bb . Min + ImVec2 ( 1 , 1 ) , bb . Max - ImVec2 ( 1 , 1 ) , uv0 , uv1 , GetColorU32 ( tint_col ) ) ;
}
else
{
window - > DrawList - > AddImage ( user_texture_id , bb . Min , bb . Max , uv0 , uv1 , window- > Color ( tint_col ) ) ;
window - > DrawList - > AddImage ( user_texture_id , bb . Min , bb . Max , uv0 , uv1 , GetColorU32 ( tint_col ) ) ;
}
}
@ -5400,11 +5400,11 @@ bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const I
bool pressed = ButtonBehavior ( bb , id , & hovered , & held ) ;
// Render
const ImU32 col = window- > Color ( ( hovered & & held ) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button ) ;
const ImU32 col = GetColorU32 ( ( hovered & & held ) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button ) ;
RenderFrame ( bb . Min , bb . Max , col , true , ImClamp ( ( float ) ImMin ( padding . x , padding . y ) , 0.0f , style . FrameRounding ) ) ;
if ( bg_col . w > 0.0f )
window - > DrawList - > AddRectFilled ( image_bb . Min , image_bb . Max , window- > Color ( bg_col ) ) ;
window - > DrawList - > AddImage ( user_texture_id , image_bb . Min , image_bb . Max , uv0 , uv1 , window- > Color ( tint_col ) ) ;
window - > DrawList - > AddRectFilled ( image_bb . Min , image_bb . Max , GetColorU32 ( bg_col ) ) ;
window - > DrawList - > AddImage ( user_texture_id , image_bb . Min , image_bb . Max , uv0 , uv1 , GetColorU32 ( tint_col ) ) ;
return pressed ;
}
@ -5613,7 +5613,7 @@ bool ImGui::CollapsingHeader(const char* label, const char* str_id, bool display
}
// Render
const ImU32 col = window- > Color ( ( held & & hovered ) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header ) ;
const ImU32 col = GetColorU32 ( ( held & & hovered ) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header ) ;
const ImVec2 text_pos = bb . Min + padding + ImVec2 ( collapser_width , text_base_offset_y ) ;
if ( display_frame )
{
@ -5668,7 +5668,7 @@ void ImGui::Bullet()
// Render
const float bullet_size = line_height * 0.15f ;
window - > DrawList - > AddCircleFilled ( bb . Min + ImVec2 ( style . FramePadding . x + line_height * 0.5f , line_height * 0.5f ) , bullet_size , window- > Color ( ImGuiCol_Text ) ) ;
window - > DrawList - > AddCircleFilled ( bb . Min + ImVec2 ( style . FramePadding . x + line_height * 0.5f , line_height * 0.5f ) , bullet_size , GetColorU32 ( ImGuiCol_Text ) ) ;
// Stay on same line
ImGui : : SameLine ( 0 , - 1 ) ;
@ -5695,7 +5695,7 @@ void ImGui::BulletTextV(const char* fmt, va_list args)
// Render
const float bullet_size = line_height * 0.15f ;
window - > DrawList - > AddCircleFilled ( bb . Min + ImVec2 ( style . FramePadding . x + line_height * 0.5f , line_height * 0.5f ) , bullet_size , window- > Color ( ImGuiCol_Text ) ) ;
window - > DrawList - > AddCircleFilled ( bb . Min + ImVec2 ( style . FramePadding . x + line_height * 0.5f , line_height * 0.5f ) , bullet_size , GetColorU32 ( ImGuiCol_Text ) ) ;
RenderText ( bb . Min + ImVec2 ( g . FontSize + style . FramePadding . x * 2 , 0 ) , text_begin , text_end ) ;
}
@ -6005,7 +6005,7 @@ bool ImGui::SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v
const ImGuiStyle & style = g . Style ;
// Draw frame
RenderFrame ( frame_bb . Min , frame_bb . Max , window- > Color ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
RenderFrame ( frame_bb . Min , frame_bb . Max , GetColorU32 ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
const bool is_non_linear = fabsf ( power - 1.0f ) > 0.0001f ;
const bool is_horizontal = ( flags & ImGuiSliderFlags_Vertical ) = = 0 ;
@ -6121,7 +6121,7 @@ bool ImGui::SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v
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
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 , GetColorU32 ( g . ActiveId = = id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab ) , style . GrabRounding ) ;
return value_changed ;
}
@ -6357,11 +6357,10 @@ bool ImGui::SliderInt4(const char* label, int v[4], int v_min, int v_max, const
bool ImGui : : DragBehavior ( const ImRect & frame_bb , ImGuiID id , float * v , float v_speed , float v_min , float v_max , int decimal_precision , float power )
{
ImGuiState & g = * GImGui ;
ImGuiWindow * window = GetCurrentWindow ( ) ;
const ImGuiStyle & style = g . Style ;
// Draw frame
const ImU32 frame_col = window- > Color ( g . ActiveId = = id ? ImGuiCol_FrameBgActive : g . HoveredId = = id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) ;
const ImU32 frame_col = GetColorU32 ( g . ActiveId = = id ? ImGuiCol_FrameBgActive : g . HoveredId = = id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) ;
RenderFrame ( frame_bb . Min , frame_bb . Max , frame_col , true , style . FrameRounding ) ;
bool value_changed = false ;
@ -6677,7 +6676,7 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge
scale_max = v_max ;
}
RenderFrame ( frame_bb . Min , frame_bb . Max , window- > Color ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
RenderFrame ( frame_bb . Min , frame_bb . Max , GetColorU32 ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
int res_w = ImMin ( ( int ) graph_size . x , values_count ) + ( ( plot_type = = ImGuiPlotType_Lines ) ? - 1 : 0 ) ;
int item_count = values_count + ( ( plot_type = = ImGuiPlotType_Lines ) ? - 1 : 0 ) ;
@ -6705,8 +6704,8 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge
float t0 = 0.0f ;
ImVec2 tp0 = ImVec2 ( t0 , 1.0f - ImSaturate ( ( v0 - scale_min ) / ( scale_max - scale_min ) ) ) ; // Point in the normalized space of our target rectangle
const ImU32 col_base = window- > Color ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram ) ;
const ImU32 col_hovered = window- > Color ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered ) ;
const ImU32 col_base = GetColorU32 ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram ) ;
const ImU32 col_hovered = GetColorU32 ( ( plot_type = = ImGuiPlotType_Lines ) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered ) ;
for ( int n = 0 ; n < res_w ; n + + )
{
@ -6810,12 +6809,12 @@ bool ImGui::Checkbox(const char* label, bool* v)
if ( pressed )
* v = ! ( * v ) ;
RenderFrame ( check_bb . Min , check_bb . Max , window- > Color ( ( held & & hovered ) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
RenderFrame ( check_bb . Min , check_bb . Max , GetColorU32 ( ( held & & hovered ) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
if ( * v )
{
const float check_sz = ImMin ( check_bb . GetWidth ( ) , check_bb . GetHeight ( ) ) ;
const float pad = ImMax ( 1.0f , ( float ) ( int ) ( check_sz / 6.0f ) ) ;
window - > DrawList - > AddRectFilled ( check_bb . Min + ImVec2 ( pad , pad ) , check_bb . Max - ImVec2 ( pad , pad ) , window- > Color ( ImGuiCol_CheckMark ) , style . FrameRounding ) ;
window - > DrawList - > AddRectFilled ( check_bb . Min + ImVec2 ( pad , pad ) , check_bb . Max - ImVec2 ( pad , pad ) , GetColorU32 ( ImGuiCol_CheckMark ) , style . FrameRounding ) ;
}
if ( g . LogEnabled )
@ -6871,18 +6870,18 @@ bool ImGui::RadioButton(const char* label, bool active)
bool hovered , held ;
bool pressed = ButtonBehavior ( total_bb , id , & hovered , & held ) ;
window - > DrawList - > AddCircleFilled ( center , radius , window- > Color ( ( held & & hovered ) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) , 16 ) ;
window - > DrawList - > AddCircleFilled ( center , radius , GetColorU32 ( ( held & & hovered ) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) , 16 ) ;
if ( active )
{
const float check_sz = ImMin ( check_bb . GetWidth ( ) , check_bb . GetHeight ( ) ) ;
const float pad = ImMax ( 1.0f , ( float ) ( int ) ( check_sz / 6.0f ) ) ;
window - > DrawList - > AddCircleFilled ( center , radius - pad , window- > Color ( ImGuiCol_CheckMark ) , 16 ) ;
window - > DrawList - > AddCircleFilled ( center , radius - pad , GetColorU32 ( ImGuiCol_CheckMark ) , 16 ) ;
}
if ( window - > Flags & ImGuiWindowFlags_ShowBorders )
{
window - > DrawList - > AddCircle ( center + ImVec2 ( 1 , 1 ) , radius , window- > Color ( ImGuiCol_BorderShadow ) , 16 ) ;
window - > DrawList - > AddCircle ( center , radius , window- > Color ( ImGuiCol_Border ) , 16 ) ;
window - > DrawList - > AddCircle ( center + ImVec2 ( 1 , 1 ) , radius , GetColorU32 ( ImGuiCol_BorderShadow ) , 16 ) ;
window - > DrawList - > AddCircle ( center , radius , GetColorU32 ( ImGuiCol_Border ) , 16 ) ;
}
if ( g . LogEnabled )
@ -7522,7 +7521,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
}
if ( ! is_multiline )
RenderFrame ( frame_bb . Min , frame_bb . Max , window- > Color ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
RenderFrame ( frame_bb . Min , frame_bb . Max , GetColorU32 ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
// Render
const ImVec4 clip_rect ( frame_bb . Min . x , frame_bb . Min . y , frame_bb . Min . x + size . x + style . FramePadding . x * 2.0f , frame_bb . Min . y + size . y + style . FramePadding . y * 2.0f ) ;
@ -7624,7 +7623,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
float bg_offy_up = is_multiline ? 0.0f : - 1.0f ; // FIXME: those offsets should be part of the style? they don't play so well with multi-line selection.
float bg_offy_dn = is_multiline ? 0.0f : 2.0f ;
ImU32 bg_color = draw_window- > Color ( ImGuiCol_TextSelectedBg ) ;
ImU32 bg_color = GetColorU32 ( ImGuiCol_TextSelectedBg ) ;
ImVec2 rect_pos = render_pos + select_start_offset - render_scroll ;
for ( const ImWchar * p = text_selected_begin ; p < text_selected_end ; )
{
@ -7650,13 +7649,13 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
}
}
draw_window - > DrawList - > AddText ( g . Font , g . FontSize , render_pos - render_scroll , draw_window- > Color ( ImGuiCol_Text ) , buf , buf + edit_state . CurLenA , 0.0f , is_multiline ? NULL : & clip_rect ) ;
draw_window - > DrawList - > AddText ( g . Font , g . FontSize , render_pos - render_scroll , GetColorU32 ( ImGuiCol_Text ) , buf , buf + edit_state . CurLenA , 0.0f , is_multiline ? NULL : & clip_rect ) ;
// Draw blinking cursor
ImVec2 cursor_screen_pos = render_pos + cursor_offset - render_scroll ;
bool cursor_is_visible = ( g . InputTextState . CursorAnim < = 0.0f ) | | fmodf ( g . InputTextState . CursorAnim , 1.20f ) < = 0.80f ;
if ( cursor_is_visible )
draw_window - > DrawList - > AddLine ( cursor_screen_pos + ImVec2 ( 0.0f , - g . FontSize + 0.5f ) , cursor_screen_pos + ImVec2 ( 0.0f , - 1.5f ) , window- > Color ( ImGuiCol_Text ) ) ;
draw_window - > DrawList - > AddLine ( cursor_screen_pos + ImVec2 ( 0.0f , - g . FontSize + 0.5f ) , cursor_screen_pos + ImVec2 ( 0.0f , - 1.5f ) , GetColorU32 ( ImGuiCol_Text ) ) ;
// Notify OS of text input position for advanced IME (-1 x offset so that Windows IME can cover our cursor. Bit of an extra nicety.)
if ( is_editable )
@ -7668,7 +7667,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
const char * buf_end = NULL ;
if ( is_multiline )
text_size = ImVec2 ( size . x , InputTextCalcTextLenAndLineCount ( buf , & buf_end ) * g . FontSize ) ; // We don't need width
draw_window - > DrawList - > AddText ( g . Font , g . FontSize , render_pos , draw_window- > Color ( ImGuiCol_Text ) , buf , buf_end , 0.0f , is_multiline ? NULL : & clip_rect ) ;
draw_window - > DrawList - > AddText ( g . Font , g . FontSize , render_pos , GetColorU32 ( ImGuiCol_Text ) , buf , buf_end , 0.0f , is_multiline ? NULL : & clip_rect ) ;
}
if ( is_multiline )
@ -7944,8 +7943,8 @@ bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(voi
const bool hovered = IsHovered ( frame_bb , id ) ;
const ImRect value_bb ( frame_bb . Min , frame_bb . Max - ImVec2 ( arrow_size , 0.0f ) ) ;
RenderFrame ( frame_bb . Min , frame_bb . Max , window- > Color ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
RenderFrame ( ImVec2 ( frame_bb . Max . x - arrow_size , frame_bb . Min . y ) , frame_bb . Max , window- > Color ( hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button ) , true , style . FrameRounding ) ; // FIXME-ROUNDING
RenderFrame ( frame_bb . Min , frame_bb . Max , GetColorU32 ( ImGuiCol_FrameBg ) , true , style . FrameRounding ) ;
RenderFrame ( ImVec2 ( frame_bb . Max . x - arrow_size , frame_bb . Min . y ) , frame_bb . Max , GetColorU32 ( hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button ) , true , style . FrameRounding ) ; // FIXME-ROUNDING
RenderCollapseTriangle ( ImVec2 ( frame_bb . Max . x - arrow_size , frame_bb . Min . y ) + style . FramePadding , true ) ;
if ( * current_item > = 0 & & * current_item < items_count )
@ -8080,7 +8079,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
// Render
if ( hovered | | selected )
{
const ImU32 col = window- > Color ( ( held & & hovered ) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header ) ;
const ImU32 col = GetColorU32 ( ( held & & hovered ) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header ) ;
RenderFrame ( bb_with_spacing . Min , bb_with_spacing . Max , col , false , 0.0f ) ;
}
@ -8225,7 +8224,7 @@ bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, boo
}
if ( selected )
RenderCheckMark ( pos + ImVec2 ( window - > MenuColumns . Pos [ 2 ] + extra_w + g . FontSize * 0.20f , 0.0f ) , window- > Color ( ImGuiCol_Text ) ) ;
RenderCheckMark ( pos + ImVec2 ( window - > MenuColumns . Pos [ 2 ] + extra_w + g . FontSize * 0.20f , 0.0f ) , GetColorU32 ( ImGuiCol_Text ) ) ;
return pressed ;
}
@ -8431,7 +8430,7 @@ bool ImGui::ColorButton(const ImVec4& col, bool small_height, bool outline_borde
bool hovered , held ;
bool pressed = ButtonBehavior ( bb , id , & hovered , & held ) ;
RenderFrame ( bb . Min , bb . Max , window- > Color ( col ) , outline_border , style . FrameRounding ) ;
RenderFrame ( bb . Min , bb . Max , GetColorU32 ( col ) , outline_border , style . FrameRounding ) ;
if ( hovered )
ImGui : : SetTooltip ( " Color: \n (%.2f,%.2f,%.2f,%.2f) \n #%02X%02X%02X%02X " , col . x , col . y , col . z , col . w , IM_F32_TO_INT8 ( col . x ) , IM_F32_TO_INT8 ( col . y ) , IM_F32_TO_INT8 ( col . z ) , IM_F32_TO_INT8 ( col . z ) ) ;
@ -8620,7 +8619,7 @@ void ImGui::Separator()
return ;
}
window - > DrawList - > AddLine ( bb . Min , bb . Max , window- > Color ( ImGuiCol_Border ) ) ;
window - > DrawList - > AddLine ( bb . Min , bb . Max , GetColorU32 ( ImGuiCol_Border ) ) ;
ImGuiState & g = * GImGui ;
if ( g . LogEnabled )
@ -8895,7 +8894,7 @@ void ImGui::Columns(int columns_count, const char* id, bool border)
g . MouseCursor = ImGuiMouseCursor_ResizeEW ;
// Draw before resize so our items positioning are in sync with the line being drawn
const ImU32 col = window- > Color ( held ? ImGuiCol_ColumnActive : hovered ? ImGuiCol_ColumnHovered : ImGuiCol_Column ) ;
const ImU32 col = GetColorU32 ( held ? ImGuiCol_ColumnActive : hovered ? ImGuiCol_ColumnHovered : ImGuiCol_Column ) ;
const float xi = ( float ) ( int ) x ;
window - > DrawList - > AddLine ( ImVec2 ( xi , y1 + 1.0f ) , ImVec2 ( xi , y2 ) , col ) ;