labfy-investigation/docs/tickets/closed/TICKET-004.md
2026-07-12 20:15:49 +02:00

128 lines
3.1 KiB
Markdown

# Ticket #004
## Titre
Créer la fenêtre principale (`MainWindow`).
---
## Objectif
Créer la fenêtre principale de Labfy Investigation.
Cette fenêtre deviendra le point central de l'interface utilisateur.
À ce stade, elle ne contient qu'une structure vide destinée à accueillir les futurs composants.
---
## Responsabilités
Le module `MainWindow` doit :
- créer la fenêtre principale ;
- définir son titre ;
- définir sa taille par défaut ;
- afficher une zone centrale vide ;
- afficher une barre d'état.
---
## Hors périmètre
Ce ticket ne doit pas :
- afficher l'arborescence des fichiers ;
- ouvrir une enquête ;
- afficher les preuves ;
- communiquer avec SQLite ;
- gérer les menus.
---
## Architecture
Le module appartient à la couche **Views**.
Il est responsable uniquement de l'interface graphique.
Aucune logique métier ne doit être présente dans ce module.
---
## Dépendances
- GTK4
Aucune dépendance vers SQLite.
---
## Fichiers concernés
```text
include/views/main_window.h
src/views/main_window.c
```
---
## Interface attendue
```c
MainWindow *main_window_new(GtkApplication *application);
GtkWindow *main_window_get_window(
const MainWindow *main_window
);
void main_window_present(MainWindow *main_window);
void main_window_free(MainWindow *main_window);
```
---
## Interface graphique attendue
```text
┌───────────────────────────────────────────────────────────────┐
│ Labfy Investigation │
├───────────────────────────────────────────────────────────────┤
│ │
│ │
│ Zone de travail │
│ │
│ │
├───────────────────────────────────────────────────────────────┤
│ Aucune enquête ouverte │
└───────────────────────────────────────────────────────────────┘
```
---
## Critères d'acceptation
- [ ] Le projet compile sans warning.
- [ ] Une fenêtre s'ouvre correctement.
- [ ] La fenêtre est créée par le module `MainWindow`.
- [ ] `Application` n'appelle plus directement `gtk_application_window_new()`.
- [ ] Aucun état global.
- [ ] Documentation Doxygen.
- [ ] Gestion mémoire correcte.
---
## Tests
- Lancement de l'application.
- Fermeture de la fenêtre.
- Vérification de l'absence de fuite mémoire.
---
## Commit attendu
```text
feat(view): create main window
```