@ -9244,6 +9244,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
{
if ( ! ( flags & ImGuiColorEditFlags_NoPicker ) )
{
g . ColorPickerRef = ImVec4 ( col [ 0 ] , col [ 1 ] , col [ 2 ] , alpha ? col [ 3 ] : 1.0f ) ;
OpenPopup ( " picker " ) ;
SetNextWindowPos ( window - > DC . LastItemRect . GetBL ( ) + ImVec2 ( - 1 , style . ItemSpacing . y ) ) ;
}
@ -9264,9 +9265,25 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
float square_sz = ColorSquareSize ( ) ;
ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags_Float | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf ;
ImGuiColorEditFlags picker_flags = ( flags & picker_flags_to_forward ) | ( ImGuiColorEditFlags_RGB | ImGuiColorEditFlags_HSV | ImGuiColorEditFlags_HEX ) | ImGuiColorEditFlags_NoLabel ;
if ( ( flags & ImGuiColorEditFlags_NoRefColor ) = = 0 )
picker_flags | = ImGuiColorEditFlags_NoColorSquare ;
PushItemWidth ( square_sz * 12.0f ) ;
value_changed | = ColorPicker4 ( " ##picker " , col , picker_flags ) ;
PopItemWidth ( ) ;
if ( ( flags & ImGuiColorEditFlags_NoRefColor ) = = 0 )
{
SameLine ( ) ;
BeginGroup ( ) ;
Text ( " Current " ) ;
ColorButton ( " ##current " , col_display , ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_AlphaPreviewHalf , ImVec2 ( square_sz * 3 , square_sz * 2 ) ) ;
Text ( " Original " ) ;
if ( ColorButton ( " ##original " , g . ColorPickerRef , ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_AlphaPreviewHalf , ImVec2 ( square_sz * 3 , square_sz * 2 ) ) )
{
memcpy ( col , & g . ColorPickerRef , ( alpha ? 4 : 3 ) * sizeof ( float ) ) ;
value_changed = 0 ;
}
EndGroup ( ) ;
}
EndPopup ( ) ;
}