labfy-investigation/include/views/file_dialog.h
2026-07-22 13:28:08 +02:00

74 lines
2.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******************************************************************************
* @file file_dialog.h
* @brief Interface du dialogue de sélection dun fichier de preuve.
******************************************************************************/
#ifndef LABFY_INVESTIGATION_FILE_DIALOG_H
#define LABFY_INVESTIGATION_FILE_DIALOG_H
#include <gtk/gtk.h>
/**
* @brief Fonction appelée après la fermeture du sélecteur.
*
* Cas possibles :
*
* - succès : file_path non NULL et error NULL ;
* - annulation : file_path NULL et error NULL ;
* - erreur : file_path NULL et error non NULL.
*
* Le chemin et lerreur restent valides uniquement pendant lappel.
*
* @param file_path Chemin local sélectionné, ou NULL.
* @param error Erreur de sélection, ou NULL.
* @param user_data Données transmises lors de louverture.
*/
typedef void (*FileDialogCallback)(
const char *file_path,
const GError *error,
gpointer user_data
);
/**
* @brief Fonction appelée après une sélection multiple.
*
* paths est un tableau emprunté de chemins locaux possédés par le dialogue.
* Il n'est valide que pendant l'appel. Une annulation transmet NULL sans
* erreur.
*
* @param paths Chemins sélectionnés, ou NULL.
* @param error Erreur de sélection, ou NULL.
* @param user_data Données fournies lors de l'ouverture.
*/
typedef void (*FileDialogMultipleCallback)(
const GPtrArray *paths,
const GError *error,
gpointer user_data
);
/**
* @brief Ouvre un dialogue permettant de sélectionner un fichier.
*
* @param parent Fenêtre parente, éventuellement NULL.
* @param callback Fonction appelée lorsque le dialogue est terminé.
* @param user_data Données transmises au callback.
*/
void file_dialog_select_file(
GtkWindow *parent,
FileDialogCallback callback,
gpointer user_data
);
/**
* @brief Ouvre un dialogue permettant de sélectionner plusieurs fichiers.
* @param parent Fenêtre parente, éventuellement NULL.
* @param callback Fonction appelée à la fermeture du dialogue.
* @param user_data Données transmises au callback.
*/
void file_dialog_select_files(
GtkWindow *parent,
FileDialogMultipleCallback callback,
gpointer user_data
);
#endif