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>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user