|
|
|
@ -3092,18 +3092,22 @@ void ImGui::RenderBullet(ImVec2 pos) |
|
|
|
|
window->DrawList->AddCircleFilled(pos, GImGui->FontSize*0.20f, GetColorU32(ImGuiCol_Text), 8); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col) |
|
|
|
|
void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col, float sz) |
|
|
|
|
{ |
|
|
|
|
ImGuiContext& g = *GImGui; |
|
|
|
|
ImGuiWindow* window = g.CurrentWindow; |
|
|
|
|
float start_x = (float)(int)(g.FontSize * 0.307f + 0.5f); |
|
|
|
|
float rem_third = (float)(int)((g.FontSize - start_x) / 3.0f); |
|
|
|
|
float bx = pos.x + 0.5f + start_x + rem_third; |
|
|
|
|
float by = pos.y - 1.0f + (float)(int)(g.Font->Ascent * (g.FontSize / g.Font->FontSize) + 0.5f) + (float)(int)(g.Font->DisplayOffset.y); |
|
|
|
|
window->DrawList->PathLineTo(ImVec2(bx - rem_third, by - rem_third)); |
|
|
|
|
|
|
|
|
|
float thickness = ImMax(sz / 5.0f, 1.0f); |
|
|
|
|
sz -= thickness*0.5f; |
|
|
|
|
pos += ImVec2(thickness*0.25f, thickness*0.25f); |
|
|
|
|
|
|
|
|
|
float third = sz / 3.0f; |
|
|
|
|
float bx = pos.x + third; |
|
|
|
|
float by = pos.y + sz - third*0.5f; |
|
|
|
|
window->DrawList->PathLineTo(ImVec2(bx - third, by - third)); |
|
|
|
|
window->DrawList->PathLineTo(ImVec2(bx, by)); |
|
|
|
|
window->DrawList->PathLineTo(ImVec2(bx + rem_third*2, by - rem_third*2)); |
|
|
|
|
window->DrawList->PathStroke(col, false); |
|
|
|
|
window->DrawList->PathLineTo(ImVec2(bx + third*2, by - third*2)); |
|
|
|
|
window->DrawList->PathStroke(col, false, thickness); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Calculate text size. Text can be multi-line. Optionally ignore text after a ## marker.
|
|
|
|
@ -7519,7 +7523,7 @@ bool ImGui::Checkbox(const char* label, bool* 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), GetColorU32(ImGuiCol_CheckMark), style.FrameRounding); |
|
|
|
|
RenderCheckMark(check_bb.Min + ImVec2(pad,pad), GetColorU32(ImGuiCol_CheckMark), check_bb.GetWidth() - pad*2.0f); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (g.LogEnabled) |
|
|
|
@ -9004,7 +9008,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), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled)); |
|
|
|
|
RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * (0.20f+0.200f), g.FontSize * 0.134f * 0.5f), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled), g.FontSize * 0.866f); |
|
|
|
|
|
|
|
|
|
return pressed; |
|
|
|
|
} |
|
|
|
|