From b6990df3d783da0a09e8b6a825d9ebeb7314466a Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 12 Oct 2025 13:14:11 +0200 Subject: mark invalid invoices, projects, contacts in ui --- src/ui/imgui_extensions.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/ui/imgui_extensions.cpp') diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp index ee0bebb..0bfd5c8 100644 --- a/src/ui/imgui_extensions.cpp +++ b/src/ui/imgui_extensions.cpp @@ -470,4 +470,40 @@ namespace ImGui ImGui::EndCombo(); } } + + bool DrawWarningIcon(float radius) + { + ImGui::SameLine(); + + ImVec2 cursor_pos = ImGui::GetCursorScreenPos(); + ImVec2 center = ImVec2(cursor_pos.x + radius, cursor_pos.y + radius + 4); + + ImGui::PushID((int)center.y); + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + + // Draw red circle + draw_list->AddCircleFilled(center, radius, IM_COL32(255, 0, 0, 255)); + + // Draw exclamation mark + float line_height = radius * 0.9f; + float line_thickness = radius * 0.3f; + float dot_radius = radius * 0.2f; + + ImVec2 line_start(center.x - line_thickness/3.0f, center.y - line_height * 0.7f); + ImVec2 line_end(center.x - line_thickness/3.0f, center.y + line_height * 0.1f); + + // Vertical bar + draw_list->AddLine(line_start, line_end, IM_COL32(255, 255, 255, 255), line_thickness); + + // Bottom dot + draw_list->AddCircleFilled(ImVec2(center.x - dot_radius/3.0f, center.y + line_height * 0.55f), dot_radius, IM_COL32(255, 255, 255, 255)); + + ImGui::SetCursorScreenPos(ImVec2(center.x - radius, center.y - radius)); + ImGui::InvisibleButton("##warning_icon", ImVec2(radius * 2, radius * 2)); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + return true; + } + return false; + } } \ No newline at end of file -- cgit v1.2.3-70-g09d2