summaryrefslogtreecommitdiff
path: root/src/ui/imgui_extensions.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-12 13:14:11 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-12 13:14:11 +0200
commitb6990df3d783da0a09e8b6a825d9ebeb7314466a (patch)
treec9a858fcacd3c24b05a6a5d9da00e6a28e16dcc3 /src/ui/imgui_extensions.cpp
parent955af14f6664574df1ff47e073e39f8d48d6355a (diff)
mark invalid invoices, projects, contacts in ui
Diffstat (limited to 'src/ui/imgui_extensions.cpp')
-rw-r--r--src/ui/imgui_extensions.cpp36
1 files changed, 36 insertions, 0 deletions
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