labfy-investigation/include/views/create_person_dialog.h
2026-07-30 11:10:32 +02:00

50 lines
2.4 KiB
C

/******************************************************************************
* @file create_person_dialog.h
* @brief Formulaire GTK de création d'une personne observée.
******************************************************************************/
#ifndef LABFY_INVESTIGATION_CREATE_PERSON_DIALOG_H
#define LABFY_INVESTIGATION_CREATE_PERSON_DIALOG_H
#include "core/person_entity_service.h"
#include "core/evidence_staging.h"
#include "models/evidence_record.h"
#include "models/person_evidence_selection.h"
#include "core/task_manager.h"
#include "core/tool_registry.h"
#include <gtk/gtk.h>
G_BEGIN_DECLS
/** @brief Résultat opaque possédé par le callback. */
typedef struct CreatePersonDialogResult CreatePersonDialogResult;
/** @brief Callback appelé après validation ou annulation. */
typedef void (*CreatePersonDialogCallback)(CreatePersonDialogResult *result,
gpointer user_data);
typedef gboolean (*CreatePersonDialogSessionCheck)(gpointer user_data);
/**
* @brief Présente le formulaire de création d'une personne.
* @param parent Fenêtre parente.
* @param evidence_records Preuves disponibles empruntées.
* @param callback Callback de fin.
* @param user_data Données privées du callback.
* @return TRUE si le dialogue a été présenté.
*/
gboolean create_person_dialog_present(GtkWindow *parent,
Database *database, const GPtrArray *evidence_records,
const char *investigation_root_path,
TaskManager *task_manager, const ToolInfo *tesseract_tool,
CreatePersonDialogSessionCheck session_check,
CreatePersonDialogCallback callback, gpointer user_data,
GDestroyNotify user_data_destroy);
/** @brief Libère un résultat. */
void create_person_dialog_result_free(CreatePersonDialogResult *result);
/** @brief Retourne les données empruntées du résultat. */
const PersonEntityInput *create_person_dialog_result_get_input(
const CreatePersonDialogResult *result);
const PersonEvidenceSelection *create_person_dialog_result_get_evidence_selection(
const CreatePersonDialogResult *result);
EvidenceStaging *create_person_dialog_result_steal_staging(
CreatePersonDialogResult *result);
const GPtrArray *create_person_dialog_result_get_ocr_runs(
const CreatePersonDialogResult *result);
gboolean create_person_dialog_test_overlay_has_region(GtkWindow *window);
guint64 create_person_dialog_test_ocr_generation(GtkWindow *window);
G_END_DECLS
#endif