Créer la fenêtre principale (MainWindow). #4

Closed
opened 2026-07-18 08:20:24 +02:00 by fy59 · 0 comments
Owner

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

include/views/main_window.h
src/views/main_window.c

Interface attendue

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

┌───────────────────────────────────────────────────────────────┐
│ 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

feat(view): create main window
## 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 - [x] Le projet compile sans warning. - [x] Une fenêtre s'ouvre correctement. - [x] La fenêtre est créée par le module `MainWindow`. - [x] `Application` n'appelle plus directement `gtk_application_window_new()`. - [x] Aucun état global. - [x] Documentation Doxygen. - [x] 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 ```
fy59 closed this issue 2026-07-18 08:20:32 +02:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: fy59/labfy-investigation#4
No description provided.