Files
egutierrez c1e88af5c7 feat(viz): render ImGui dod_evidence_panel (issue 0117)
Panel con header (run_id + counts) + tabla 6-col (status icon / id /
kind / expected / evidence preview / actions). Soporta 4 kinds de
evidence: screenshot (stub textual), log (5-line preview + popup),
url (xdg-open/ShellExecuteA) y cmd (diff expected vs actual).
Botones Validate/Reject invocan callbacks on_validate/on_reject.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:30:23 +02:00

32 lines
1.2 KiB
C++

#pragma once
// dod_evidence_panel — ImGui panel reutilizable para validar DoD evidence.
//
// Renderiza una tabla con items DoD (Definition of Done) + evidencias
// adjuntas. Cada fila: icono de status, id, kind, expected, preview de
// evidence (screenshot path / log preview / url clickable / cmd output con
// diff vs expected), y botones Validate/Reject que invocan callbacks.
//
// La logica pura (contar status, buscar evidence, mapear icon/color) vive en
// dod_evidence_panel_helpers.{h,cpp} y se testea sin ImGui.
//
// Uso:
// #include "viz/dod_evidence_panel.h"
// fn_viz::DodPanelState state;
// state.run_id = "run_abc123";
// state.items = load_dod_items(...);
// state.evidences = load_dod_evidences(...);
// state.on_validate = [](const std::string& id) { db.mark_validated(id); };
// state.on_reject = [](const std::string& id) { db.mark_failed(id); };
// fn_viz::render_dod_evidence_panel(state);
#include "dod_evidence_panel_helpers.h"
namespace fn_viz {
// Renderiza el panel inline en el current ImGui window.
// Debe llamarse dentro de un frame ImGui activo (entre NewFrame/Render).
void render_dod_evidence_panel(DodPanelState& state);
} // namespace fn_viz