|
|
|
@ -827,7 +827,7 @@ bool ImGui::CloseButton(ImGuiID id, const ImVec2& pos) |
|
|
|
|
ImU32 col = GetColorU32(held ? ImGuiCol_ButtonActive : ImGuiCol_ButtonHovered); |
|
|
|
|
ImVec2 center = bb.GetCenter(); |
|
|
|
|
if (hovered) |
|
|
|
|
window->DrawList->AddCircleFilled(center, ImMax(2.0f, g.FontSize * 0.5f + 1.0f), col, 12); |
|
|
|
|
window->DrawList->AddCircleFilled(center, ImMax(2.0f, g.FontSize * 0.5f + 1.0f), col); |
|
|
|
|
|
|
|
|
|
float cross_extent = g.FontSize * 0.5f * 0.7071f - 1.0f; |
|
|
|
|
ImU32 cross_col = GetColorU32(ImGuiCol_Text); |
|
|
|
@ -852,7 +852,7 @@ bool ImGui::CollapseButton(ImGuiID id, const ImVec2& pos) |
|
|
|
|
ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); |
|
|
|
|
ImU32 text_col = GetColorU32(ImGuiCol_Text); |
|
|
|
|
if (hovered || held) |
|
|
|
|
window->DrawList->AddCircleFilled(bb.GetCenter()/*+ ImVec2(0.0f, -0.5f)*/, g.FontSize * 0.5f + 1.0f, bg_col, 12); |
|
|
|
|
window->DrawList->AddCircleFilled(bb.GetCenter()/*+ ImVec2(0.0f, -0.5f)*/, g.FontSize * 0.5f + 1.0f, bg_col); |
|
|
|
|
RenderArrow(window->DrawList, bb.Min + g.Style.FramePadding, text_col, window->Collapsed ? ImGuiDir_Right : ImGuiDir_Down, 1.0f); |
|
|
|
|
|
|
|
|
|
// Switch to moving the window after mouse is moved beyond the initial drag threshold
|
|
|
|
@ -1233,17 +1233,18 @@ bool ImGui::RadioButton(const char* label, bool active) |
|
|
|
|
MarkItemEdited(id); |
|
|
|
|
|
|
|
|
|
RenderNavHighlight(total_bb, id); |
|
|
|
|
window->DrawList->AddCircleFilled(center, radius, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16); |
|
|
|
|
const int num_segment = window->DrawList->_CalcCircleAutoSegmentCount(radius); |
|
|
|
|
window->DrawList->AddCircleFilled(center, radius, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), num_segment); |
|
|
|
|
if (active) |
|
|
|
|
{ |
|
|
|
|
const float pad = ImMax(1.0f, IM_FLOOR(square_sz / 6.0f)); |
|
|
|
|
window->DrawList->AddCircleFilled(center, radius - pad, GetColorU32(ImGuiCol_CheckMark), 16); |
|
|
|
|
window->DrawList->AddCircleFilled(center, radius - pad, GetColorU32(ImGuiCol_CheckMark)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (style.FrameBorderSize > 0.0f) |
|
|
|
|
{ |
|
|
|
|
window->DrawList->AddCircle(center + ImVec2(1, 1), radius, GetColorU32(ImGuiCol_BorderShadow), 16, style.FrameBorderSize); |
|
|
|
|
window->DrawList->AddCircle(center, radius, GetColorU32(ImGuiCol_Border), 16, style.FrameBorderSize); |
|
|
|
|
window->DrawList->AddCircle(center + ImVec2(1, 1), radius, GetColorU32(ImGuiCol_BorderShadow), num_segment, style.FrameBorderSize); |
|
|
|
|
window->DrawList->AddCircle(center, radius, GetColorU32(ImGuiCol_Border), num_segment, style.FrameBorderSize); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ImVec2 label_pos = ImVec2(check_bb.Max.x + style.ItemInnerSpacing.x, check_bb.Min.y + style.FramePadding.y); |
|
|
|
@ -5614,7 +5615,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl |
|
|
|
|
float sin_hue_angle = ImSin(H * 2.0f * IM_PI); |
|
|
|
|
ImVec2 hue_cursor_pos(wheel_center.x + cos_hue_angle * (wheel_r_inner + wheel_r_outer) * 0.5f, wheel_center.y + sin_hue_angle * (wheel_r_inner + wheel_r_outer) * 0.5f); |
|
|
|
|
float hue_cursor_rad = value_changed_h ? wheel_thickness * 0.65f : wheel_thickness * 0.55f; |
|
|
|
|
int hue_cursor_segments = ImClamp((int)(hue_cursor_rad / 1.4f), 9, 32); |
|
|
|
|
int hue_cursor_segments = draw_list->_CalcCircleAutoSegmentCount(hue_cursor_rad); // Lock segment count so the +1 one matches others.
|
|
|
|
|
draw_list->AddCircleFilled(hue_cursor_pos, hue_cursor_rad, hue_color32, hue_cursor_segments); |
|
|
|
|
draw_list->AddCircle(hue_cursor_pos, hue_cursor_rad + 1, col_midgrey, hue_cursor_segments); |
|
|
|
|
draw_list->AddCircle(hue_cursor_pos, hue_cursor_rad, col_white, hue_cursor_segments); |
|
|
|
@ -5650,9 +5651,10 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl |
|
|
|
|
|
|
|
|
|
// Render cursor/preview circle (clamp S/V within 0..1 range because floating points colors may lead HSV values to be out of range)
|
|
|
|
|
float sv_cursor_rad = value_changed_sv ? 10.0f : 6.0f; |
|
|
|
|
draw_list->AddCircleFilled(sv_cursor_pos, sv_cursor_rad, user_col32_striped_of_alpha, 12); |
|
|
|
|
draw_list->AddCircle(sv_cursor_pos, sv_cursor_rad + 1, col_midgrey, 12); |
|
|
|
|
draw_list->AddCircle(sv_cursor_pos, sv_cursor_rad, col_white, 12); |
|
|
|
|
int sv_cursor_segments = draw_list->_CalcCircleAutoSegmentCount(sv_cursor_rad); // Lock segment count so the +1 one matches others.
|
|
|
|
|
draw_list->AddCircleFilled(sv_cursor_pos, sv_cursor_rad, user_col32_striped_of_alpha, sv_cursor_segments); |
|
|
|
|
draw_list->AddCircle(sv_cursor_pos, sv_cursor_rad + 1, col_midgrey, sv_cursor_segments); |
|
|
|
|
draw_list->AddCircle(sv_cursor_pos, sv_cursor_rad, col_white, sv_cursor_segments); |
|
|
|
|
|
|
|
|
|
// Render alpha bar
|
|
|
|
|
if (alpha_bar) |
|
|
|
|