/****************************************************************************** * @file evidence_metadata_dialog.h * @brief Dialogue de modification des métadonnées éditables d'une preuve. ******************************************************************************/ #ifndef LABFY_INVESTIGATION_EVIDENCE_METADATA_DIALOG_H #define LABFY_INVESTIGATION_EVIDENCE_METADATA_DIALOG_H #include "models/evidence_record.h" #include "database/database.h" #include G_BEGIN_DECLS /** @brief Résultat opaque possédé du dialogue. */ typedef struct EvidenceMetadataDialogResult EvidenceMetadataDialogResult; /** @brief Callback recevant le résultat possédé, ou NULL après annulation. */ typedef void (*EvidenceMetadataDialogCallback)( EvidenceMetadataDialogResult *result, gpointer user_data ); typedef void (*EvidenceMetadataDialogAnalyzeCallback)( GtkWindow *dialog, const char *evidence_identifier, gboolean revise_existing, const char *ocr_run_identifier, gpointer user_data); /** * @brief Présente le dialogue prérempli de modification des métadonnées. * @param parent Fenêtre parente. * @param record Preuve empruntée. * @param evidence_types Tableau emprunté de EvidenceType. * @param callback Callback appelé une fois à la fermeture. * @param user_data Données empruntées du callback. * @return TRUE si la fenêtre a été créée. */ gboolean evidence_metadata_dialog_present( GtkWindow *parent, const EvidenceRecord *record, const GPtrArray *evidence_types, EvidenceMetadataDialogCallback callback, gpointer user_data ); gboolean evidence_metadata_dialog_present_with_ocr( GtkWindow *parent, const EvidenceRecord *record, const GPtrArray *evidence_types, Database *database, const char *investigation_root, EvidenceMetadataDialogAnalyzeCallback analyze_callback, EvidenceMetadataDialogCallback callback, gpointer user_data); /** @brief Libère un résultat, ou accepte NULL. */ void evidence_metadata_dialog_result_free(EvidenceMetadataDialogResult *result); /** @brief Retourne le code de type emprunté. */ const char *evidence_metadata_dialog_result_get_type_identifier( const EvidenceMetadataDialogResult *result); /** @brief Retourne la source empruntée, ou NULL. */ const char *evidence_metadata_dialog_result_get_source( const EvidenceMetadataDialogResult *result); /** @brief Retourne la description empruntée, ou NULL. */ const char *evidence_metadata_dialog_result_get_description( const EvidenceMetadataDialogResult *result); G_END_DECLS #endif