|
|
@ -4022,14 +4022,14 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|
|
|
const float w_item_last = ImMax(1.0f, (float)(int)(w_items_all - (w_item_one + style.ItemInnerSpacing.x) * (components-1)));
|
|
|
|
const float w_item_last = ImMax(1.0f, (float)(int)(w_items_all - (w_item_one + style.ItemInnerSpacing.x) * (components-1)));
|
|
|
|
|
|
|
|
|
|
|
|
const bool hide_prefix = (w_item_one <= CalcTextSize((flags & ImGuiColorEditFlags_Float) ? "M:0.000" : "M:000").x);
|
|
|
|
const bool hide_prefix = (w_item_one <= CalcTextSize((flags & ImGuiColorEditFlags_Float) ? "M:0.000" : "M:000").x);
|
|
|
|
const char* ids[4] = { "##X", "##Y", "##Z", "##W" };
|
|
|
|
static const char* ids[4] = { "##X", "##Y", "##Z", "##W" };
|
|
|
|
const char* fmt_table_int[3][4] =
|
|
|
|
static const char* fmt_table_int[3][4] =
|
|
|
|
{
|
|
|
|
{
|
|
|
|
{ "%3d", "%3d", "%3d", "%3d" }, // Short display
|
|
|
|
{ "%3d", "%3d", "%3d", "%3d" }, // Short display
|
|
|
|
{ "R:%3d", "G:%3d", "B:%3d", "A:%3d" }, // Long display for RGBA
|
|
|
|
{ "R:%3d", "G:%3d", "B:%3d", "A:%3d" }, // Long display for RGBA
|
|
|
|
{ "H:%3d", "S:%3d", "V:%3d", "A:%3d" } // Long display for HSVA
|
|
|
|
{ "H:%3d", "S:%3d", "V:%3d", "A:%3d" } // Long display for HSVA
|
|
|
|
};
|
|
|
|
};
|
|
|
|
const char* fmt_table_float[3][4] =
|
|
|
|
static const char* fmt_table_float[3][4] =
|
|
|
|
{
|
|
|
|
{
|
|
|
|
{ "%0.3f", "%0.3f", "%0.3f", "%0.3f" }, // Short display
|
|
|
|
{ "%0.3f", "%0.3f", "%0.3f", "%0.3f" }, // Short display
|
|
|
|
{ "R:%0.3f", "G:%0.3f", "B:%0.3f", "A:%0.3f" }, // Long display for RGBA
|
|
|
|
{ "R:%0.3f", "G:%0.3f", "B:%0.3f", "A:%0.3f" }, // Long display for RGBA
|
|
|
@ -4129,21 +4129,19 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Convert back
|
|
|
|
// Convert back
|
|
|
|
if (picker_active_window == NULL)
|
|
|
|
if (value_changed && picker_active_window == NULL)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (!value_changed_as_float)
|
|
|
|
if (!value_changed_as_float)
|
|
|
|
for (int n = 0; n < 4; n++)
|
|
|
|
for (int n = 0; n < 4; n++)
|
|
|
|
f[n] = i[n] / 255.0f;
|
|
|
|
f[n] = i[n] / 255.0f;
|
|
|
|
if (flags & ImGuiColorEditFlags_DisplayHSV)
|
|
|
|
if (flags & ImGuiColorEditFlags_DisplayHSV)
|
|
|
|
ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]);
|
|
|
|
ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]);
|
|
|
|
if (value_changed)
|
|
|
|
|
|
|
|
{
|
|
|
|
col[0] = f[0];
|
|
|
|
col[0] = f[0];
|
|
|
|
col[1] = f[1];
|
|
|
|
col[1] = f[1];
|
|
|
|
col[2] = f[2];
|
|
|
|
col[2] = f[2];
|
|
|
|
if (alpha)
|
|
|
|
if (alpha)
|
|
|
|
col[3] = f[3];
|
|
|
|
col[3] = f[3];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PopID();
|
|
|
|
PopID();
|
|
|
@ -4395,12 +4393,14 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
|
|
|
|
ImVec4 col_v4(col[0], col[1], col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : col[3]);
|
|
|
|
ImVec4 col_v4(col[0], col[1], col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : col[3]);
|
|
|
|
if ((flags & ImGuiColorEditFlags_NoLabel))
|
|
|
|
if ((flags & ImGuiColorEditFlags_NoLabel))
|
|
|
|
Text("Current");
|
|
|
|
Text("Current");
|
|
|
|
ColorButton("##current", col_v4, (flags & (ImGuiColorEditFlags_HDR|ImGuiColorEditFlags_AlphaPreview|ImGuiColorEditFlags_AlphaPreviewHalf|ImGuiColorEditFlags_NoTooltip)), ImVec2(square_sz * 3, square_sz * 2));
|
|
|
|
|
|
|
|
|
|
|
|
ImGuiColorEditFlags sub_flags_to_forward = ImGuiColorEditFlags_HDR|ImGuiColorEditFlags_AlphaPreview|ImGuiColorEditFlags_AlphaPreviewHalf|ImGuiColorEditFlags_NoTooltip;
|
|
|
|
|
|
|
|
ColorButton("##current", col_v4, (flags & sub_flags_to_forward), ImVec2(square_sz * 3, square_sz * 2));
|
|
|
|
if (ref_col != NULL)
|
|
|
|
if (ref_col != NULL)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Text("Original");
|
|
|
|
Text("Original");
|
|
|
|
ImVec4 ref_col_v4(ref_col[0], ref_col[1], ref_col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : ref_col[3]);
|
|
|
|
ImVec4 ref_col_v4(ref_col[0], ref_col[1], ref_col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : ref_col[3]);
|
|
|
|
if (ColorButton("##original", ref_col_v4, (flags & (ImGuiColorEditFlags_HDR|ImGuiColorEditFlags_AlphaPreview|ImGuiColorEditFlags_AlphaPreviewHalf|ImGuiColorEditFlags_NoTooltip)), ImVec2(square_sz * 3, square_sz * 2)))
|
|
|
|
if (ColorButton("##original", ref_col_v4, (flags & sub_flags_to_forward), ImVec2(square_sz * 3, square_sz * 2)))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
memcpy(col, ref_col, components * sizeof(float));
|
|
|
|
memcpy(col, ref_col, components * sizeof(float));
|
|
|
|
value_changed = true;
|
|
|
|
value_changed = true;
|
|
|
|