758 lines
24 KiB
C
758 lines
24 KiB
C
/******************************************************************************
|
|
* @file main_window.h
|
|
* @brief Interface publique de la fenêtre principale.
|
|
******************************************************************************/
|
|
|
|
#ifndef LABFY_INVESTIGATION_MAIN_WINDOW_H
|
|
#define LABFY_INVESTIGATION_MAIN_WINDOW_H
|
|
|
|
#include "core/investigation_tree_model.h"
|
|
#include "widgets/investigation_tree_view.h"
|
|
#include "core/investigation_node.h"
|
|
#include "core/task_manager.h"
|
|
#include "widgets/evidence_category_model.h"
|
|
#include "models/evidence_record.h"
|
|
#include "models/osint_action_catalog.h"
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
/**
|
|
* @brief Représentation opaque du graphe d'enquête.
|
|
*/
|
|
typedef struct InvestigationGraphModel InvestigationGraphModel;
|
|
|
|
/**
|
|
* @brief Représentation opaque de la disposition du graphe.
|
|
*/
|
|
typedef struct InvestigationGraphLayout InvestigationGraphLayout;
|
|
|
|
/**
|
|
* @brief Représentation opaque de la fenêtre principale.
|
|
*/
|
|
typedef struct MainWindow MainWindow;
|
|
|
|
/**
|
|
* @brief Callback appelé lorsque l'utilisateur demande une nouvelle enquête.
|
|
*
|
|
* @param user_data Données utilisateur associées au callback.
|
|
*/
|
|
typedef void (*MainWindowNewInvestigationCallback)(
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lorsque l'utilisateur demande
|
|
* l'import d'une preuve.
|
|
*
|
|
* @param user_data Données utilisateur associées au callback.
|
|
*/
|
|
typedef void (*MainWindowImportEvidenceCallback)(
|
|
gpointer user_data
|
|
);
|
|
|
|
/** @brief Callback appelé pour ajouter un compte de réseau social. */
|
|
typedef void (*MainWindowAddSocialAccountCallback)(
|
|
gpointer user_data
|
|
);
|
|
/** @brief Callback appelé pour ajouter une personne. */
|
|
typedef void (*MainWindowAddPersonCallback)(gpointer user_data);
|
|
|
|
/**
|
|
* @brief Callback appelé lorsque l'utilisateur revient au graphe.
|
|
*
|
|
* @param user_data Données utilisateur associées au callback.
|
|
*/
|
|
typedef void (*MainWindowShowGraphCallback)(
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lorsqu'une preuve est sélectionnée.
|
|
*
|
|
* L'identifiant est emprunté et uniquement valide pendant l'appel.
|
|
* Une sélection vide ou une catégorie transmet NULL.
|
|
*
|
|
* @param evidence_identifier UUID de la preuve, ou NULL.
|
|
* @param user_data Données privées fournies par l'appelant.
|
|
*/
|
|
typedef void (*MainWindowEvidenceSelectionCallback)(
|
|
const char *evidence_identifier,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lorsque l'utilisateur demande une vérification.
|
|
*
|
|
* L'identifiant est emprunté et uniquement valide pendant l'appel.
|
|
*
|
|
* @param evidence_identifier UUID de la preuve.
|
|
* @param user_data Données privées du callback.
|
|
*/
|
|
typedef void (*MainWindowVerifyEvidenceCallback)(
|
|
const char *evidence_identifier,
|
|
gpointer user_data
|
|
);
|
|
|
|
/** @brief Callback appelé pour modifier les métadonnées d'une preuve. */
|
|
typedef void (*MainWindowEditEvidenceCallback)(
|
|
const char *evidence_identifier,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Callback appelé pour analyser une preuve EML. */
|
|
typedef void (*MainWindowAnalyzeEmlCallback)(const char *evidence_identifier,
|
|
gpointer user_data);
|
|
/** @brief Callback appelé pour analyser un RIB par OCR. */
|
|
typedef void (*MainWindowAnalyzeRibCallback)(const char *evidence_identifier,
|
|
gpointer user_data);
|
|
typedef void (*MainWindowIdentityOcrCallback)(
|
|
const char *evidence_identifier, gboolean revise_existing,
|
|
const char *ocr_run_identifier, gpointer user_data);
|
|
/** @brief Callback appelé pour extraire les métadonnées d'une preuve. */
|
|
typedef void (*MainWindowExtractMetadataCallback)(const char *evidence_identifier,
|
|
gpointer user_data);
|
|
/** @brief Callback appelé pour récupérer le mot de passe d'un PDF. */
|
|
typedef void (*MainWindowRecoverPdfPasswordCallback)(
|
|
const char *evidence_identifier, gpointer user_data);
|
|
|
|
/**
|
|
* @brief Callback appelé après le déplacement effectif d'un nœud.
|
|
*
|
|
* @param entity_identifier UUID de l'entité déplacée.
|
|
* @param x Coordonnée horizontale logique.
|
|
* @param y Coordonnée verticale logique.
|
|
* @param user_data Données privées du callback.
|
|
*/
|
|
typedef void (*MainWindowGraphNodeMovedCallback)(
|
|
const char *entity_identifier,
|
|
double x,
|
|
double y,
|
|
gpointer user_data
|
|
);
|
|
typedef void (*MainWindowGraphTransformChangedCallback)(gpointer user_data);
|
|
|
|
typedef void (*MainWindowExtractionDropCallback)(
|
|
const char *file_path,
|
|
const char *target_entity_identifier,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lors d'une demande de réinitialisation du graphe.
|
|
*
|
|
* @param user_data Données privées du callback.
|
|
*/
|
|
typedef void (*MainWindowResetGraphLayoutCallback)(
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lors d'une demande d'ajout d'une relation.
|
|
*
|
|
* @param source_entity_identifier UUID de l'entité source.
|
|
* @param user_data Données privées du callback.
|
|
*/
|
|
typedef void (*MainWindowAddRelationCallback)(
|
|
const char *source_entity_identifier,
|
|
gpointer user_data
|
|
);
|
|
|
|
/** @brief Callback appelé pour modifier une relation. */
|
|
typedef void (*MainWindowEditRelationCallback)(
|
|
const char *relation_identifier,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Callback appelé pour supprimer une relation. */
|
|
typedef void (*MainWindowDeleteRelationCallback)(
|
|
const char *relation_identifier, gpointer user_data);
|
|
|
|
/** @brief Callback appelé quand une relation est sélectionnée. */
|
|
typedef void (*MainWindowRelationSelectedCallback)(
|
|
const char *relation_identifier,
|
|
gpointer user_data
|
|
);
|
|
|
|
/** @brief Callback appelé pour catégoriser une personne. */
|
|
typedef void (*MainWindowPersonRoleCallback)(const char *entity_identifier,
|
|
PersonRole role, gpointer user_data);
|
|
/** @brief Callback appelé pour modifier la confiance d'une personne. */
|
|
typedef void (*MainWindowPersonConfidenceCallback)(
|
|
const char *entity_identifier, gint confidence, gpointer user_data);
|
|
|
|
/**
|
|
* @brief Callback appelé lors du déclenchement d'une action OSINT.
|
|
*
|
|
* @param action_identifier Identifiant stable de l'action.
|
|
* @param target_identifier UUID de la sélection ciblée.
|
|
* @param target_value Valeur métier ciblée.
|
|
* @param user_data Données privées fournies par l'appelant.
|
|
*/
|
|
typedef void (*MainWindowOsintActionCallback)(
|
|
const char *action_identifier,
|
|
const char *target_identifier,
|
|
const char *target_value,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Callback appelé pour modifier le nom affiché d'une personne. */
|
|
typedef void (*MainWindowPersonNameCallback)(const char *entity_identifier,
|
|
const char *display_name, gpointer user_data);
|
|
/** @brief Callback appelé pour gérer les preuves d'une personne. */
|
|
typedef void (*MainWindowPersonEvidenceCallback)(
|
|
const char *entity_identifier, gpointer user_data);
|
|
/** @brief Callback appelé quand une entité est sélectionnée. */
|
|
typedef void (*MainWindowEntitySelectedCallback)(
|
|
const char *entity_identifier, gpointer user_data);
|
|
|
|
/**
|
|
* @brief Définit le callback de vérification d'une preuve.
|
|
*
|
|
* MainWindow relaie la demande provenant du Workspace.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_verify_evidence_callback(
|
|
MainWindow *main_window,
|
|
MainWindowVerifyEvidenceCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback de modification de la preuve sélectionnée.
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_edit_evidence_callback(
|
|
MainWindow *main_window,
|
|
MainWindowEditEvidenceCallback callback,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Définit le callback d'analyse locale d'une preuve EML. */
|
|
void main_window_set_analyze_eml_callback(MainWindow *main_window,
|
|
MainWindowAnalyzeEmlCallback callback, gpointer user_data);
|
|
/** @brief Définit le callback d'analyse OCR d'un RIB. */
|
|
void main_window_set_analyze_rib_callback(MainWindow *main_window,
|
|
MainWindowAnalyzeRibCallback callback, gpointer user_data);
|
|
/** @brief Définit le callback d'extraction locale des métadonnées. */
|
|
void main_window_set_extract_metadata_callback(MainWindow *main_window,
|
|
MainWindowExtractMetadataCallback callback, gpointer user_data);
|
|
/** @brief Définit le callback de récupération d'un mot de passe PDF. */
|
|
void main_window_set_recover_pdf_password_callback(MainWindow *main_window,
|
|
MainWindowRecoverPdfPasswordCallback callback, gpointer user_data);
|
|
void main_window_set_identity_ocr_callback(
|
|
MainWindow *main_window, MainWindowIdentityOcrCallback callback,
|
|
gpointer user_data);
|
|
|
|
/**
|
|
* @brief Définit le callback de fin de déplacement d'un nœud.
|
|
*
|
|
* MainWindow relaie uniquement l'événement provenant du Workspace.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_graph_node_moved_callback(
|
|
MainWindow *main_window,
|
|
MainWindowGraphNodeMovedCallback callback,
|
|
gpointer user_data
|
|
);
|
|
void main_window_set_graph_transform_changed_callback(
|
|
MainWindow *main_window,
|
|
MainWindowGraphTransformChangedCallback callback,
|
|
gpointer user_data);
|
|
|
|
void main_window_set_extraction_drop_callback(
|
|
MainWindow *main_window,
|
|
MainWindowExtractionDropCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback de demande de réinitialisation du graphe.
|
|
*
|
|
* MainWindow relaie uniquement la demande provenant du Workspace.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_reset_graph_layout_callback(
|
|
MainWindow *main_window,
|
|
MainWindowResetGraphLayoutCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback de demande d'ajout d'une relation.
|
|
*
|
|
* MainWindow relaie uniquement la demande provenant du Workspace.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_add_relation_callback(
|
|
MainWindow *main_window,
|
|
MainWindowAddRelationCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/** @brief Définit le callback de modification d'une relation. */
|
|
void main_window_set_edit_relation_callback(
|
|
MainWindow *main_window,
|
|
MainWindowEditRelationCallback callback,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Définit le callback de suppression d'une relation. */
|
|
void main_window_set_delete_relation_callback(MainWindow *main_window,
|
|
MainWindowDeleteRelationCallback callback, gpointer user_data);
|
|
|
|
/** @brief Définit le callback de sélection d'une relation. */
|
|
void main_window_set_relation_selected_callback(
|
|
MainWindow *main_window,
|
|
MainWindowRelationSelectedCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/** @brief Affiche les preuves associées à la relation sélectionnée. */
|
|
void main_window_set_relation_evidences(
|
|
MainWindow *main_window,
|
|
const GPtrArray *evidence_records
|
|
);
|
|
|
|
/** @brief Transmet les preuves associées à l'entité sélectionnée. */
|
|
void main_window_set_person_evidences(MainWindow *main_window,
|
|
const GPtrArray *records);
|
|
void main_window_set_person_factual_relations(MainWindow *main_window,
|
|
const GPtrArray *relations, const GPtrArray *evidence_records);
|
|
|
|
|
|
/** @brief Définit le callback de catégorisation d'une personne. */
|
|
void main_window_set_person_role_callback(MainWindow *main_window,
|
|
MainWindowPersonRoleCallback callback, gpointer user_data);
|
|
/** @brief Définit le callback de confiance d'une personne. */
|
|
void main_window_set_person_confidence_callback(MainWindow *main_window,
|
|
MainWindowPersonConfidenceCallback callback, gpointer user_data);
|
|
|
|
/**
|
|
* @brief Définit le callback de déclenchement des actions OSINT.
|
|
*
|
|
* MainWindow relaie uniquement la demande provenant du Workspace.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_osint_action_callback(
|
|
MainWindow *main_window,
|
|
MainWindowOsintActionCallback callback,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Définit le callback de modification du nom affiché. */
|
|
void main_window_set_person_name_callback(MainWindow *main_window,
|
|
MainWindowPersonNameCallback callback, gpointer user_data);
|
|
/** @brief Définit le callback de gestion des preuves d'une personne. */
|
|
void main_window_set_person_evidence_callback(MainWindow *main_window,
|
|
MainWindowPersonEvidenceCallback callback, gpointer user_data);
|
|
/** @brief Définit le callback de sélection d'une entité. */
|
|
void main_window_set_entity_selected_callback(MainWindow *main_window,
|
|
MainWindowEntitySelectedCallback callback, gpointer user_data);
|
|
/** @brief Affiche les preuves de la personne sélectionnée. */
|
|
void main_window_set_person_evidences(MainWindow *main_window,
|
|
const GPtrArray *evidence_records);
|
|
|
|
/**
|
|
* @brief Définit le callback du bouton « Nouvelle enquête ».
|
|
*
|
|
* La fenêtre ne crée pas directement l'enquête. Elle transmet uniquement
|
|
* la demande au contrôleur.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Fonction appelée lors du clic.
|
|
* @param user_data Données transmises au callback.
|
|
*/
|
|
void main_window_set_new_investigation_callback(
|
|
MainWindow *main_window,
|
|
MainWindowNewInvestigationCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Crée une nouvelle fenêtre principale.
|
|
*
|
|
* MainWindow ne devient pas propriétaire de task_manager.
|
|
*
|
|
* @param application Application GTK.
|
|
* @param task_manager Gestionnaire de tâches de l'application.
|
|
*
|
|
* @return Nouvelle fenêtre, ou NULL en cas d'échec.
|
|
*/
|
|
MainWindow *main_window_new(
|
|
GtkApplication *application,
|
|
TaskManager *task_manager
|
|
);
|
|
|
|
/**
|
|
* @brief Affiche la fenêtre principale.
|
|
*
|
|
* @param main_window Fenêtre à afficher.
|
|
*/
|
|
void main_window_present(MainWindow *main_window);
|
|
|
|
/**
|
|
* @brief Retourne la fenêtre GTK associée.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
*
|
|
* @return Fenêtre GTK.
|
|
*/
|
|
GtkWindow *main_window_get_window(
|
|
const MainWindow *main_window
|
|
);
|
|
|
|
/**
|
|
* @brief Transmet un modèle d'arborescence à la fenêtre principale.
|
|
*
|
|
* La fenêtre principale ne devient pas propriétaire du modèle.
|
|
* Elle le transmet uniquement à la Sidebar.
|
|
*
|
|
* @param main_window Fenêtre principale à mettre à jour.
|
|
* @param tree_model Modèle d'arborescence en lecture seule.
|
|
*/
|
|
void main_window_set_tree_model(
|
|
MainWindow *main_window,
|
|
const InvestigationTreeModel *tree_model
|
|
);
|
|
|
|
/**
|
|
* @brief Transmet le modèle des catégories de preuves à la Sidebar.
|
|
*
|
|
* MainWindow ne devient pas propriétaire du modèle.
|
|
* Le modèle doit rester valide pendant son affichage.
|
|
*
|
|
* Passer NULL vide l'onglet Preuves.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param evidence_category_model Modèle de catégories, ou NULL.
|
|
*/
|
|
void main_window_set_evidence_model(
|
|
MainWindow *main_window,
|
|
EvidenceCategoryModel *evidence_category_model
|
|
);
|
|
|
|
/**
|
|
* @brief Met à jour l'identité de l'enquête affichée.
|
|
*
|
|
* La fonction met à jour :
|
|
*
|
|
* - le titre de la fenêtre ;
|
|
* - le texte de la barre d'état.
|
|
*
|
|
* Les chaînes sont copiées par GTK et restent la propriété de l'appelant.
|
|
*
|
|
* Cette fonction accepte des chaînes NULL ou vides.
|
|
*
|
|
* @param main_window Fenêtre principale à mettre à jour.
|
|
* @param investigation_name Nom persistant de l'enquête.
|
|
* @param investigation_root_path Chemin racine de l'enquête.
|
|
*/
|
|
void main_window_set_investigation(
|
|
MainWindow *main_window,
|
|
const char *investigation_name,
|
|
const char *investigation_root_path
|
|
);
|
|
|
|
void main_window_set_tree_selection_callback(
|
|
MainWindow *main_window,
|
|
InvestigationTreeViewSelectionCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback de sélection d'une preuve.
|
|
*
|
|
* MainWindow transmet uniquement le callback à la Sidebar.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_evidence_selection_callback(
|
|
MainWindow *main_window,
|
|
MainWindowEvidenceSelectionCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Affiche dans le Workspace les informations du nœud sélectionné.
|
|
*
|
|
* La fenêtre principale ne devient pas propriétaire du nœud.
|
|
*
|
|
* @param main_window Fenêtre principale à mettre à jour.
|
|
* @param node Nœud sélectionné en lecture seule, ou NULL.
|
|
*/
|
|
void main_window_set_selected_node(
|
|
MainWindow *main_window,
|
|
const InvestigationNode *node
|
|
);
|
|
|
|
/**
|
|
* @brief Affiche la fiche de la preuve sélectionnée.
|
|
*
|
|
* MainWindow ne conserve pas le EvidenceRecord.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param evidence_record Preuve sélectionnée, ou NULL.
|
|
*/
|
|
void main_window_set_selected_evidence(
|
|
MainWindow *main_window,
|
|
const EvidenceRecord *evidence_record
|
|
);
|
|
void main_window_set_identity_ocr_runs(
|
|
MainWindow *main_window, GPtrArray *owned_records);
|
|
void main_window_set_evidence_observations(MainWindow *main_window,
|
|
const GPtrArray *observations);
|
|
void main_window_set_observation_remove_callback(MainWindow *main_window,
|
|
void (*callback)(const char *, gpointer), gpointer user_data);
|
|
void main_window_set_eml_analysis_available(
|
|
MainWindow *main_window,
|
|
gboolean available
|
|
);
|
|
|
|
/** @brief Transmet au workspace un chemin absolu validé pour l'aperçu. */
|
|
void main_window_set_evidence_preview(MainWindow *main_window,
|
|
const char *file_path, const char *display_name);
|
|
void main_window_show_evidence_preview(MainWindow *main_window,
|
|
const char *investigation_root, const EvidenceRecord *record);
|
|
|
|
|
|
/**
|
|
* @brief Affiche l'état de chargement du graphe.
|
|
*
|
|
* MainWindow transmet uniquement la demande au Workspace.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
*/
|
|
void main_window_set_graph_loading(
|
|
MainWindow *main_window
|
|
);
|
|
|
|
/**
|
|
* @brief Affiche le graphe chargé et sa disposition dans le Workspace.
|
|
*
|
|
* MainWindow et Workspace empruntent graph_model et graph_layout.
|
|
*
|
|
* Passer NULL pour graph_layout conserve le placement automatique.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param graph_model Graphe emprunté, ou NULL.
|
|
* @param graph_layout Disposition empruntée, ou NULL.
|
|
*/
|
|
void main_window_set_graph(
|
|
MainWindow *main_window,
|
|
const InvestigationGraphModel *graph_model,
|
|
const InvestigationGraphLayout *graph_layout
|
|
);
|
|
|
|
gboolean main_window_get_graph_view_transform(
|
|
MainWindow *main_window, double *zoom, double *offset_x, double *offset_y);
|
|
void main_window_set_graph_view_transform(
|
|
MainWindow *main_window, double zoom, double offset_x, double offset_y);
|
|
|
|
/** @brief Sélectionne une relation dans le graphe affiché. */
|
|
gboolean main_window_select_graph_relation(
|
|
MainWindow *main_window,
|
|
const char *relation_identifier
|
|
);
|
|
/** @brief Sélectionne une entité dans le graphe affiché. */
|
|
gboolean main_window_select_graph_entity(MainWindow *main_window,
|
|
const char *entity_identifier);
|
|
|
|
/**
|
|
* @brief Affiche une erreur de chargement du graphe.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param message Message d'erreur, ou NULL.
|
|
*/
|
|
void main_window_set_graph_error(
|
|
MainWindow *main_window,
|
|
const char *message
|
|
);
|
|
|
|
/**
|
|
* @brief Détache le graphe du Workspace.
|
|
*
|
|
* Aucun graphe n'est libéré par MainWindow.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
*/
|
|
void main_window_clear_graph(
|
|
MainWindow *main_window
|
|
);
|
|
|
|
/**
|
|
* @brief Reconstruit visuellement la disposition automatique du graphe.
|
|
*
|
|
* Cette fonction ne modifie pas SQLite.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
*/
|
|
void main_window_reset_graph_layout(
|
|
MainWindow *main_window
|
|
);
|
|
|
|
/**
|
|
* @brief Met à jour le texte de la barre d'état.
|
|
*
|
|
* Si status_text vaut NULL, le texte par défaut est affiché.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param status_text Nouveau texte de statut, ou NULL.
|
|
*/
|
|
void main_window_set_status(
|
|
MainWindow *main_window,
|
|
const char *status_text
|
|
);
|
|
|
|
/**
|
|
* @brief Transmet au workspace l'état d'un outil OSINT externe.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param tool_identifier Identifiant stable de l'outil.
|
|
* @param state État traduit par l'application.
|
|
* @param version Version détectée facultative.
|
|
*/
|
|
void main_window_set_osint_tool_state(
|
|
MainWindow *main_window,
|
|
const char *tool_identifier,
|
|
OsintActionToolState state,
|
|
const char *version
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lorsque l'utilisateur demande l'ouverture
|
|
* d'une enquête existante.
|
|
*
|
|
* @param user_data Données utilisateur associées au callback.
|
|
*/
|
|
typedef void (*MainWindowOpenInvestigationCallback)(
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Callback appelé lorsque l'utilisateur demande à quitter.
|
|
*
|
|
* @param user_data Données utilisateur associées au callback.
|
|
*/
|
|
typedef void (*MainWindowQuitCallback)(
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback du bouton « Ouvrir une enquête ».
|
|
*
|
|
* La fenêtre transmet uniquement la demande au contrôleur.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Fonction appelée lors du clic.
|
|
* @param user_data Données transmises au callback.
|
|
*/
|
|
void main_window_set_open_investigation_callback(
|
|
MainWindow *main_window,
|
|
MainWindowOpenInvestigationCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback du bouton « Quitter ».
|
|
*
|
|
* MainWindow transmet uniquement la demande au contrôleur.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Fonction appelée lors du clic.
|
|
* @param user_data Données transmises au callback.
|
|
*/
|
|
void main_window_set_quit_callback(
|
|
MainWindow *main_window,
|
|
MainWindowQuitCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback de l'action « Importer une preuve ».
|
|
*
|
|
* MainWindow transmet uniquement la demande au contrôleur.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Fonction appelée lors du clic.
|
|
* @param user_data Données transmises au callback.
|
|
*/
|
|
void main_window_set_import_evidence_callback(
|
|
MainWindow *main_window,
|
|
MainWindowImportEvidenceCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Définit le callback de l'action d'ajout d'un compte social.
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Callback facultatif.
|
|
* @param user_data Données privées transmises au callback.
|
|
*/
|
|
void main_window_set_add_social_account_callback(
|
|
MainWindow *main_window,
|
|
MainWindowAddSocialAccountCallback callback,
|
|
gpointer user_data
|
|
);
|
|
/** @brief Définit le callback d'ajout d'une personne. */
|
|
void main_window_set_add_person_callback(MainWindow *main_window,
|
|
MainWindowAddPersonCallback callback, gpointer user_data);
|
|
|
|
/**
|
|
* @brief Définit le callback du bouton « Revenir au graphe ».
|
|
*
|
|
* MainWindow transmet uniquement la demande au contrôleur.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param callback Fonction appelée lors du clic, ou NULL.
|
|
* @param user_data Données transmises au callback.
|
|
*/
|
|
void main_window_set_show_graph_callback(
|
|
MainWindow *main_window,
|
|
MainWindowShowGraphCallback callback,
|
|
gpointer user_data
|
|
);
|
|
|
|
/**
|
|
* @brief Active ou désactive l'action d'import d'une preuve.
|
|
*
|
|
* @param main_window Fenêtre principale.
|
|
* @param enabled TRUE pour autoriser l'import.
|
|
*/
|
|
void main_window_set_import_evidence_enabled(
|
|
MainWindow *main_window,
|
|
gboolean enabled
|
|
);
|
|
|
|
/**
|
|
* @brief Active ou désactive l'ajout d'un compte social.
|
|
* @param main_window Fenêtre principale.
|
|
* @param enabled TRUE si une enquête est ouverte.
|
|
*/
|
|
void main_window_set_add_social_account_enabled(
|
|
MainWindow *main_window,
|
|
gboolean enabled
|
|
);
|
|
/** @brief Active ou désactive l'ajout d'une personne. */
|
|
void main_window_set_add_person_enabled(MainWindow *main_window, gboolean enabled);
|
|
|
|
/**
|
|
* @brief Libère les ressources de la fenêtre.
|
|
*
|
|
* @param main_window Fenêtre à détruire.
|
|
*/
|
|
void main_window_free(MainWindow *main_window);
|
|
|
|
#endif
|