mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
add _Show prefix to color flags that control inputs, rename __InputsMask to __ShowMask
This is anticipation of changing __InputsMask to control the format of input colors, and adding _InputRGB and _InputHSV to change how input colors are interpreted.
This commit is contained in:
parent
688035b5f4
commit
8a2f6866a6
14
imgui.h
14
imgui.h
@ -1110,19 +1110,23 @@ enum ImGuiColorEditFlags_
|
|||||||
ImGuiColorEditFlags_AlphaPreview = 1 << 17, // // ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
|
ImGuiColorEditFlags_AlphaPreview = 1 << 17, // // ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
|
||||||
ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 18, // // ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
|
ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 18, // // ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
|
||||||
ImGuiColorEditFlags_HDR = 1 << 19, // // (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).
|
ImGuiColorEditFlags_HDR = 1 << 19, // // (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).
|
||||||
ImGuiColorEditFlags_RGB = 1 << 20, // [Inputs] // ColorEdit: choose one among RGB/HSV/HEX. ColorPicker: choose any combination using RGB/HSV/HEX.
|
ImGuiColorEditFlags_ShowRGB = 1 << 20, // [Show] // ColorEdit: choose one among RGB/HSV/HEX. ColorPicker: choose any combination using RGB/HSV/HEX.
|
||||||
ImGuiColorEditFlags_HSV = 1 << 21, // [Inputs] // "
|
ImGuiColorEditFlags_ShowHSV = 1 << 21, // [Show] // "
|
||||||
ImGuiColorEditFlags_HEX = 1 << 22, // [Inputs] // "
|
ImGuiColorEditFlags_ShowHEX = 1 << 22, // [Show] // "
|
||||||
ImGuiColorEditFlags_Uint8 = 1 << 23, // [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.
|
ImGuiColorEditFlags_Uint8 = 1 << 23, // [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.
|
||||||
ImGuiColorEditFlags_Float = 1 << 24, // [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers.
|
ImGuiColorEditFlags_Float = 1 << 24, // [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers.
|
||||||
ImGuiColorEditFlags_PickerHueBar = 1 << 25, // [PickerMode] // ColorPicker: bar for Hue, rectangle for Sat/Value.
|
ImGuiColorEditFlags_PickerHueBar = 1 << 25, // [PickerMode] // ColorPicker: bar for Hue, rectangle for Sat/Value.
|
||||||
ImGuiColorEditFlags_PickerHueWheel = 1 << 26, // [PickerMode] // ColorPicker: wheel for Hue, triangle for Sat/Value.
|
ImGuiColorEditFlags_PickerHueWheel = 1 << 26, // [PickerMode] // ColorPicker: wheel for Hue, triangle for Sat/Value.
|
||||||
|
// Obsolete names (will be removed)
|
||||||
|
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||||
|
ImGuiColorEditFlags_RGB = ImGuiColorEditFlags_ShowRGB, ImGuiColorEditFlags_HSV = ImGuiColorEditFlags_ShowHSV, ImGuiColorEditFlags_HEX = ImGuiColorEditFlags_ShowHEX,
|
||||||
|
#endif
|
||||||
|
|
||||||
// [Internal] Masks
|
// [Internal] Masks
|
||||||
ImGuiColorEditFlags__InputsMask = ImGuiColorEditFlags_RGB|ImGuiColorEditFlags_HSV|ImGuiColorEditFlags_HEX,
|
ImGuiColorEditFlags__ShowMask = ImGuiColorEditFlags_ShowRGB|ImGuiColorEditFlags_ShowHSV|ImGuiColorEditFlags_ShowHEX,
|
||||||
ImGuiColorEditFlags__DataTypeMask = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_Float,
|
ImGuiColorEditFlags__DataTypeMask = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_Float,
|
||||||
ImGuiColorEditFlags__PickerMask = ImGuiColorEditFlags_PickerHueWheel|ImGuiColorEditFlags_PickerHueBar,
|
ImGuiColorEditFlags__PickerMask = ImGuiColorEditFlags_PickerHueWheel|ImGuiColorEditFlags_PickerHueBar,
|
||||||
ImGuiColorEditFlags__OptionsDefault = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_RGB|ImGuiColorEditFlags_PickerHueBar // Change application default using SetColorEditOptions()
|
ImGuiColorEditFlags__OptionsDefault = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_ShowRGB|ImGuiColorEditFlags_PickerHueBar // Change application default using SetColorEditOptions()
|
||||||
};
|
};
|
||||||
|
|
||||||
// Enumeration for GetMouseCursor()
|
// Enumeration for GetMouseCursor()
|
||||||
|
@ -1045,7 +1045,7 @@ static void ShowDemoWindowWidgets()
|
|||||||
ImGui::ColorEdit3("MyColor##1", (float*)&color, misc_flags);
|
ImGui::ColorEdit3("MyColor##1", (float*)&color, misc_flags);
|
||||||
|
|
||||||
ImGui::Text("Color widget HSV with Alpha:");
|
ImGui::Text("Color widget HSV with Alpha:");
|
||||||
ImGui::ColorEdit4("MyColor##2", (float*)&color, ImGuiColorEditFlags_HSV | misc_flags);
|
ImGui::ColorEdit4("MyColor##2", (float*)&color, ImGuiColorEditFlags_ShowHSV | misc_flags);
|
||||||
|
|
||||||
ImGui::Text("Color widget with Float Display:");
|
ImGui::Text("Color widget with Float Display:");
|
||||||
ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float | misc_flags);
|
ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float | misc_flags);
|
||||||
@ -1127,7 +1127,7 @@ static void ShowDemoWindowWidgets()
|
|||||||
static bool side_preview = true;
|
static bool side_preview = true;
|
||||||
static bool ref_color = false;
|
static bool ref_color = false;
|
||||||
static ImVec4 ref_color_v(1.0f,0.0f,1.0f,0.5f);
|
static ImVec4 ref_color_v(1.0f,0.0f,1.0f,0.5f);
|
||||||
static int inputs_mode = 2;
|
static int show_mode = 2;
|
||||||
static int picker_mode = 0;
|
static int picker_mode = 0;
|
||||||
ImGui::Checkbox("With Alpha", &alpha);
|
ImGui::Checkbox("With Alpha", &alpha);
|
||||||
ImGui::Checkbox("With Alpha Bar", &alpha_bar);
|
ImGui::Checkbox("With Alpha Bar", &alpha_bar);
|
||||||
@ -1142,7 +1142,7 @@ static void ShowDemoWindowWidgets()
|
|||||||
ImGui::ColorEdit4("##RefColor", &ref_color_v.x, ImGuiColorEditFlags_NoInputs | misc_flags);
|
ImGui::ColorEdit4("##RefColor", &ref_color_v.x, ImGuiColorEditFlags_NoInputs | misc_flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ImGui::Combo("Inputs Mode", &inputs_mode, "All Inputs\0No Inputs\0RGB Input\0HSV Input\0HEX Input\0");
|
ImGui::Combo("Show Mode", &show_mode, "All\0None\0Show RGB\0Show HSV\0Show HEX\0");
|
||||||
ImGui::Combo("Picker Mode", &picker_mode, "Auto/Current\0Hue bar + SV rect\0Hue wheel + SV triangle\0");
|
ImGui::Combo("Picker Mode", &picker_mode, "Auto/Current\0Hue bar + SV rect\0Hue wheel + SV triangle\0");
|
||||||
ImGui::SameLine(); ShowHelpMarker("User can right-click the picker to change mode.");
|
ImGui::SameLine(); ShowHelpMarker("User can right-click the picker to change mode.");
|
||||||
ImGuiColorEditFlags flags = misc_flags;
|
ImGuiColorEditFlags flags = misc_flags;
|
||||||
@ -1151,16 +1151,16 @@ static void ShowDemoWindowWidgets()
|
|||||||
if (!side_preview) flags |= ImGuiColorEditFlags_NoSidePreview;
|
if (!side_preview) flags |= ImGuiColorEditFlags_NoSidePreview;
|
||||||
if (picker_mode == 1) flags |= ImGuiColorEditFlags_PickerHueBar;
|
if (picker_mode == 1) flags |= ImGuiColorEditFlags_PickerHueBar;
|
||||||
if (picker_mode == 2) flags |= ImGuiColorEditFlags_PickerHueWheel;
|
if (picker_mode == 2) flags |= ImGuiColorEditFlags_PickerHueWheel;
|
||||||
if (inputs_mode == 1) flags |= ImGuiColorEditFlags_NoInputs;
|
if (show_mode == 1) flags |= ImGuiColorEditFlags_NoInputs;
|
||||||
if (inputs_mode == 2) flags |= ImGuiColorEditFlags_RGB;
|
if (show_mode == 2) flags |= ImGuiColorEditFlags_ShowRGB;
|
||||||
if (inputs_mode == 3) flags |= ImGuiColorEditFlags_HSV;
|
if (show_mode == 3) flags |= ImGuiColorEditFlags_ShowHSV;
|
||||||
if (inputs_mode == 4) flags |= ImGuiColorEditFlags_HEX;
|
if (show_mode == 4) flags |= ImGuiColorEditFlags_ShowHEX;
|
||||||
ImGui::ColorPicker4("MyColor##4", (float*)&color, flags, ref_color ? &ref_color_v.x : NULL);
|
ImGui::ColorPicker4("MyColor##4", (float*)&color, flags, ref_color ? &ref_color_v.x : NULL);
|
||||||
|
|
||||||
ImGui::Text("Programmatically set defaults:");
|
ImGui::Text("Programmatically set defaults:");
|
||||||
ImGui::SameLine(); ShowHelpMarker("SetColorEditOptions() is designed to allow you to set boot-time default.\nWe don't have Push/Pop functions because you can force options on a per-widget basis if needed, and the user can change non-forced ones with the options menu.\nWe don't have a getter to avoid encouraging you to persistently save values that aren't forward-compatible.");
|
ImGui::SameLine(); ShowHelpMarker("SetColorEditOptions() is designed to allow you to set boot-time default.\nWe don't have Push/Pop functions because you can force options on a per-widget basis if needed, and the user can change non-forced ones with the options menu.\nWe don't have a getter to avoid encouraging you to persistently save values that aren't forward-compatible.");
|
||||||
if (ImGui::Button("Default: Uint8 + HSV + Hue Bar"))
|
if (ImGui::Button("Default: Uint8 + HSV + Hue Bar"))
|
||||||
ImGui::SetColorEditOptions(ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_HSV | ImGuiColorEditFlags_PickerHueBar);
|
ImGui::SetColorEditOptions(ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_ShowHSV | ImGuiColorEditFlags_PickerHueBar);
|
||||||
if (ImGui::Button("Default: Float + HDR + Hue Wheel"))
|
if (ImGui::Button("Default: Float + HDR + Hue Wheel"))
|
||||||
ImGui::SetColorEditOptions(ImGuiColorEditFlags_Float | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_PickerHueWheel);
|
ImGui::SetColorEditOptions(ImGuiColorEditFlags_Float | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_PickerHueWheel);
|
||||||
|
|
||||||
|
@ -3898,20 +3898,20 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
// If we're not showing any slider there's no point in doing any HSV conversions
|
// If we're not showing any slider there's no point in doing any HSV conversions
|
||||||
const ImGuiColorEditFlags flags_untouched = flags;
|
const ImGuiColorEditFlags flags_untouched = flags;
|
||||||
if (flags & ImGuiColorEditFlags_NoInputs)
|
if (flags & ImGuiColorEditFlags_NoInputs)
|
||||||
flags = (flags & (~ImGuiColorEditFlags__InputsMask)) | ImGuiColorEditFlags_RGB | ImGuiColorEditFlags_NoOptions;
|
flags = (flags & (~ImGuiColorEditFlags__ShowMask)) | ImGuiColorEditFlags_ShowRGB | ImGuiColorEditFlags_NoOptions;
|
||||||
|
|
||||||
// Context menu: display and modify options (before defaults are applied)
|
// Context menu: display and modify options (before defaults are applied)
|
||||||
if (!(flags & ImGuiColorEditFlags_NoOptions))
|
if (!(flags & ImGuiColorEditFlags_NoOptions))
|
||||||
ColorEditOptionsPopup(col, flags);
|
ColorEditOptionsPopup(col, flags);
|
||||||
|
|
||||||
// Read stored options
|
// Read stored options
|
||||||
if (!(flags & ImGuiColorEditFlags__InputsMask))
|
if (!(flags & ImGuiColorEditFlags__ShowMask))
|
||||||
flags |= (g.ColorEditOptions & ImGuiColorEditFlags__InputsMask);
|
flags |= (g.ColorEditOptions & ImGuiColorEditFlags__ShowMask);
|
||||||
if (!(flags & ImGuiColorEditFlags__DataTypeMask))
|
if (!(flags & ImGuiColorEditFlags__DataTypeMask))
|
||||||
flags |= (g.ColorEditOptions & ImGuiColorEditFlags__DataTypeMask);
|
flags |= (g.ColorEditOptions & ImGuiColorEditFlags__DataTypeMask);
|
||||||
if (!(flags & ImGuiColorEditFlags__PickerMask))
|
if (!(flags & ImGuiColorEditFlags__PickerMask))
|
||||||
flags |= (g.ColorEditOptions & ImGuiColorEditFlags__PickerMask);
|
flags |= (g.ColorEditOptions & ImGuiColorEditFlags__PickerMask);
|
||||||
flags |= (g.ColorEditOptions & ~(ImGuiColorEditFlags__InputsMask | ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask));
|
flags |= (g.ColorEditOptions & ~(ImGuiColorEditFlags__ShowMask | ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask));
|
||||||
|
|
||||||
const bool alpha = (flags & ImGuiColorEditFlags_NoAlpha) == 0;
|
const bool alpha = (flags & ImGuiColorEditFlags_NoAlpha) == 0;
|
||||||
const bool hdr = (flags & ImGuiColorEditFlags_HDR) != 0;
|
const bool hdr = (flags & ImGuiColorEditFlags_HDR) != 0;
|
||||||
@ -3919,14 +3919,14 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
|
|
||||||
// Convert to the formats we need
|
// Convert to the formats we need
|
||||||
float f[4] = { col[0], col[1], col[2], alpha ? col[3] : 1.0f };
|
float f[4] = { col[0], col[1], col[2], alpha ? col[3] : 1.0f };
|
||||||
if (flags & ImGuiColorEditFlags_HSV)
|
if (flags & ImGuiColorEditFlags_ShowHSV)
|
||||||
ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]);
|
ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]);
|
||||||
int i[4] = { IM_F32_TO_INT8_UNBOUND(f[0]), IM_F32_TO_INT8_UNBOUND(f[1]), IM_F32_TO_INT8_UNBOUND(f[2]), IM_F32_TO_INT8_UNBOUND(f[3]) };
|
int i[4] = { IM_F32_TO_INT8_UNBOUND(f[0]), IM_F32_TO_INT8_UNBOUND(f[1]), IM_F32_TO_INT8_UNBOUND(f[2]), IM_F32_TO_INT8_UNBOUND(f[3]) };
|
||||||
|
|
||||||
bool value_changed = false;
|
bool value_changed = false;
|
||||||
bool value_changed_as_float = false;
|
bool value_changed_as_float = false;
|
||||||
|
|
||||||
if ((flags & (ImGuiColorEditFlags_RGB | ImGuiColorEditFlags_HSV)) != 0 && (flags & ImGuiColorEditFlags_NoInputs) == 0)
|
if ((flags & (ImGuiColorEditFlags_ShowRGB | ImGuiColorEditFlags_ShowHSV)) != 0 && (flags & ImGuiColorEditFlags_NoInputs) == 0)
|
||||||
{
|
{
|
||||||
// RGB/HSV 0..255 Sliders
|
// RGB/HSV 0..255 Sliders
|
||||||
const float w_item_one = ImMax(1.0f, (float)(int)((w_items_all - (style.ItemInnerSpacing.x) * (components-1)) / (float)components));
|
const float w_item_one = ImMax(1.0f, (float)(int)((w_items_all - (style.ItemInnerSpacing.x) * (components-1)) / (float)components));
|
||||||
@ -3946,7 +3946,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
{ "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
|
||||||
{ "H:%0.3f", "S:%0.3f", "V:%0.3f", "A:%0.3f" } // Long display for HSVA
|
{ "H:%0.3f", "S:%0.3f", "V:%0.3f", "A:%0.3f" } // Long display for HSVA
|
||||||
};
|
};
|
||||||
const int fmt_idx = hide_prefix ? 0 : (flags & ImGuiColorEditFlags_HSV) ? 2 : 1;
|
const int fmt_idx = hide_prefix ? 0 : (flags & ImGuiColorEditFlags_ShowHSV) ? 2 : 1;
|
||||||
|
|
||||||
PushItemWidth(w_item_one);
|
PushItemWidth(w_item_one);
|
||||||
for (int n = 0; n < components; n++)
|
for (int n = 0; n < components; n++)
|
||||||
@ -3970,7 +3970,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
PopItemWidth();
|
PopItemWidth();
|
||||||
PopItemWidth();
|
PopItemWidth();
|
||||||
}
|
}
|
||||||
else if ((flags & ImGuiColorEditFlags_HEX) != 0 && (flags & ImGuiColorEditFlags_NoInputs) == 0)
|
else if ((flags & ImGuiColorEditFlags_ShowHEX) != 0 && (flags & ImGuiColorEditFlags_NoInputs) == 0)
|
||||||
{
|
{
|
||||||
// RGB Hexadecimal Input
|
// RGB Hexadecimal Input
|
||||||
char buf[64];
|
char buf[64];
|
||||||
@ -4025,7 +4025,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
Spacing();
|
Spacing();
|
||||||
}
|
}
|
||||||
ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar;
|
ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar;
|
||||||
ImGuiColorEditFlags picker_flags = (flags_untouched & picker_flags_to_forward) | ImGuiColorEditFlags__InputsMask | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaPreviewHalf;
|
ImGuiColorEditFlags picker_flags = (flags_untouched & picker_flags_to_forward) | ImGuiColorEditFlags__ShowMask | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaPreviewHalf;
|
||||||
PushItemWidth(square_sz * 12.0f); // Use 256 + bar sizes?
|
PushItemWidth(square_sz * 12.0f); // Use 256 + bar sizes?
|
||||||
value_changed |= ColorPicker4("##picker", col, picker_flags, &g.ColorPickerRef.x);
|
value_changed |= ColorPicker4("##picker", col, picker_flags, &g.ColorPickerRef.x);
|
||||||
PopItemWidth();
|
PopItemWidth();
|
||||||
@ -4045,7 +4045,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
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_HSV)
|
if (flags & ImGuiColorEditFlags_ShowHSV)
|
||||||
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)
|
if (value_changed)
|
||||||
{
|
{
|
||||||
@ -4330,18 +4330,18 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
|
|||||||
PushItemWidth((alpha_bar ? bar1_pos_x : bar0_pos_x) + bars_width - picker_pos.x);
|
PushItemWidth((alpha_bar ? bar1_pos_x : bar0_pos_x) + bars_width - picker_pos.x);
|
||||||
ImGuiColorEditFlags sub_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoOptions | ImGuiColorEditFlags_NoSmallPreview | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf;
|
ImGuiColorEditFlags sub_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoOptions | ImGuiColorEditFlags_NoSmallPreview | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf;
|
||||||
ImGuiColorEditFlags sub_flags = (flags & sub_flags_to_forward) | ImGuiColorEditFlags_NoPicker;
|
ImGuiColorEditFlags sub_flags = (flags & sub_flags_to_forward) | ImGuiColorEditFlags_NoPicker;
|
||||||
if (flags & ImGuiColorEditFlags_RGB || (flags & ImGuiColorEditFlags__InputsMask) == 0)
|
if (flags & ImGuiColorEditFlags_ShowRGB || (flags & ImGuiColorEditFlags__ShowMask) == 0)
|
||||||
if (ColorEdit4("##rgb", col, sub_flags | ImGuiColorEditFlags_RGB))
|
if (ColorEdit4("##rgb", col, sub_flags | ImGuiColorEditFlags_ShowRGB))
|
||||||
{
|
{
|
||||||
// FIXME: Hackily differenciating using the DragInt (ActiveId != 0 && !ActiveIdAllowOverlap) vs. using the InputText or DropTarget.
|
// FIXME: Hackily differenciating using the DragInt (ActiveId != 0 && !ActiveIdAllowOverlap) vs. using the InputText or DropTarget.
|
||||||
// For the later we don't want to run the hue-wrap canceling code. If you are well versed in HSV picker please provide your input! (See #2050)
|
// For the later we don't want to run the hue-wrap canceling code. If you are well versed in HSV picker please provide your input! (See #2050)
|
||||||
value_changed_fix_hue_wrap = (g.ActiveId != 0 && !g.ActiveIdAllowOverlap);
|
value_changed_fix_hue_wrap = (g.ActiveId != 0 && !g.ActiveIdAllowOverlap);
|
||||||
value_changed = true;
|
value_changed = true;
|
||||||
}
|
}
|
||||||
if (flags & ImGuiColorEditFlags_HSV || (flags & ImGuiColorEditFlags__InputsMask) == 0)
|
if (flags & ImGuiColorEditFlags_ShowHSV || (flags & ImGuiColorEditFlags__ShowMask) == 0)
|
||||||
value_changed |= ColorEdit4("##hsv", col, sub_flags | ImGuiColorEditFlags_HSV);
|
value_changed |= ColorEdit4("##hsv", col, sub_flags | ImGuiColorEditFlags_ShowHSV);
|
||||||
if (flags & ImGuiColorEditFlags_HEX || (flags & ImGuiColorEditFlags__InputsMask) == 0)
|
if (flags & ImGuiColorEditFlags_ShowHEX || (flags & ImGuiColorEditFlags__ShowMask) == 0)
|
||||||
value_changed |= ColorEdit4("##hex", col, sub_flags | ImGuiColorEditFlags_HEX);
|
value_changed |= ColorEdit4("##hex", col, sub_flags | ImGuiColorEditFlags_ShowHEX);
|
||||||
PopItemWidth();
|
PopItemWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4539,13 +4539,13 @@ bool ImGui::ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFl
|
|||||||
void ImGui::SetColorEditOptions(ImGuiColorEditFlags flags)
|
void ImGui::SetColorEditOptions(ImGuiColorEditFlags flags)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
if ((flags & ImGuiColorEditFlags__InputsMask) == 0)
|
if ((flags & ImGuiColorEditFlags__ShowMask) == 0)
|
||||||
flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__InputsMask;
|
flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__ShowMask;
|
||||||
if ((flags & ImGuiColorEditFlags__DataTypeMask) == 0)
|
if ((flags & ImGuiColorEditFlags__DataTypeMask) == 0)
|
||||||
flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__DataTypeMask;
|
flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__DataTypeMask;
|
||||||
if ((flags & ImGuiColorEditFlags__PickerMask) == 0)
|
if ((flags & ImGuiColorEditFlags__PickerMask) == 0)
|
||||||
flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__PickerMask;
|
flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__PickerMask;
|
||||||
IM_ASSERT(ImIsPowerOfTwo((int)(flags & ImGuiColorEditFlags__InputsMask))); // Check only 1 option is selected
|
IM_ASSERT(ImIsPowerOfTwo((int)(flags & ImGuiColorEditFlags__ShowMask))); // Check only 1 option is selected
|
||||||
IM_ASSERT(ImIsPowerOfTwo((int)(flags & ImGuiColorEditFlags__DataTypeMask))); // Check only 1 option is selected
|
IM_ASSERT(ImIsPowerOfTwo((int)(flags & ImGuiColorEditFlags__DataTypeMask))); // Check only 1 option is selected
|
||||||
IM_ASSERT(ImIsPowerOfTwo((int)(flags & ImGuiColorEditFlags__PickerMask))); // Check only 1 option is selected
|
IM_ASSERT(ImIsPowerOfTwo((int)(flags & ImGuiColorEditFlags__PickerMask))); // Check only 1 option is selected
|
||||||
g.ColorEditOptions = flags;
|
g.ColorEditOptions = flags;
|
||||||
@ -4578,7 +4578,7 @@ void ImGui::ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags
|
|||||||
|
|
||||||
void ImGui::ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags)
|
void ImGui::ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags)
|
||||||
{
|
{
|
||||||
bool allow_opt_inputs = !(flags & ImGuiColorEditFlags__InputsMask);
|
bool allow_opt_inputs = !(flags & ImGuiColorEditFlags__ShowMask);
|
||||||
bool allow_opt_datatype = !(flags & ImGuiColorEditFlags__DataTypeMask);
|
bool allow_opt_datatype = !(flags & ImGuiColorEditFlags__DataTypeMask);
|
||||||
if ((!allow_opt_inputs && !allow_opt_datatype) || !BeginPopup("context"))
|
if ((!allow_opt_inputs && !allow_opt_datatype) || !BeginPopup("context"))
|
||||||
return;
|
return;
|
||||||
@ -4586,9 +4586,9 @@ void ImGui::ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags)
|
|||||||
ImGuiColorEditFlags opts = g.ColorEditOptions;
|
ImGuiColorEditFlags opts = g.ColorEditOptions;
|
||||||
if (allow_opt_inputs)
|
if (allow_opt_inputs)
|
||||||
{
|
{
|
||||||
if (RadioButton("RGB", (opts & ImGuiColorEditFlags_RGB) != 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_RGB;
|
if (RadioButton("RGB", (opts & ImGuiColorEditFlags_ShowRGB) != 0)) opts = (opts & ~ImGuiColorEditFlags__ShowMask) | ImGuiColorEditFlags_ShowRGB;
|
||||||
if (RadioButton("HSV", (opts & ImGuiColorEditFlags_HSV) != 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_HSV;
|
if (RadioButton("HSV", (opts & ImGuiColorEditFlags_ShowHSV) != 0)) opts = (opts & ~ImGuiColorEditFlags__ShowMask) | ImGuiColorEditFlags_ShowHSV;
|
||||||
if (RadioButton("HEX", (opts & ImGuiColorEditFlags_HEX) != 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_HEX;
|
if (RadioButton("HEX", (opts & ImGuiColorEditFlags_ShowHEX) != 0)) opts = (opts & ~ImGuiColorEditFlags__ShowMask) | ImGuiColorEditFlags_ShowHEX;
|
||||||
}
|
}
|
||||||
if (allow_opt_datatype)
|
if (allow_opt_datatype)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user