# Architecture UI — trois fenêtres séparées

PMOptimizer Pro utilise **trois fenêtres Tk distinctes** (jamais mélangées dans une seule fenêtre).

| # | Fenêtre | Rôle |
|---|---------|------|
| 1 | **Choix du mode** | Débutant / Expert / Quitter — à chaque lancement |
| 2 | **Débutant** | Onglets Maintenance + Outils Glary, mode 1 clic |
| 3 | **Expert** | Catalogue complet (~106 tweaks), outils pro |

## Parcours utilisateur

```mermaid
flowchart LR
    A[Écran choix] --> B[Mode Débutant]
    A --> C[Mode Expert]
    B -->|Menu Mode| C
    C -->|Menu Mode| B
    B --> A
    C --> A
    B --> Q[Quitter]
    C --> Q
```

1. **Démarrage** → fenêtre 1 (`run_mode_selector`)
2. Choix **Débutant** ou **Expert** → fenêtre 2 ou 3
3. **Menu Mode** :
   - Passer en l’autre mode → nouvelle fenêtre (sans repasser par l’écran 1)
   - **Écran de choix** → retour fenêtre 1
4. **Quitter** → fin de l’application

## En-tête commun (Débutant et Expert)

| Bouton | Rôle |
|--------|------|
| **Appliquer la sélection** | Lot de cartes cochées |
| **Aide — Débutant / Expert** | Guide en document HTML (navigateur) |
| **Score & historique** | Diagnostic PC, historique, export HTML |
| Restaurer / Tout restaurer | Expert uniquement |

## Aide par mode

| Mode | Accès rapide |
|------|----------------|
| Débutant | **Aide — Débutant**, **Score & historique**, **Système → Aide** (HTML) |
| Expert | **Aide — Expert**, diagnostic, **Guide technique**, analyse système |

Documentation : [AIDE_DEBUTANT.md](AIDE_DEBUTANT.md), [AIDE_EXPERT.md](AIDE_EXPERT.md), [README.md](README.md).  
Consultation : fichiers Markdown sources + export HTML dans `reports/guides_html/`.

## Technique

| Composant | Fichier |
|-----------|---------|
| Orchestration | `pmoptimizer/ui/app_launcher.py` → `run_gui()` |
| Codes de sortie | `pmoptimizer/ui/app_flow.py` (`quit`, `selector`, `open:beginner`, `open:expert`) |
| Sélecteur | `pmoptimizer/ui/window_mode_selector.py` |
| Fenêtre principale | `pmoptimizer/ui/main_window.py` → `OptimizerApp` |
| Entrée | `PMOptimizerProV1a.py` → `pmoptimizer.app.bootstrap.main()` |

## Tests

```bat
scripts\Lancer-Tests.bat
```

- `tests/test_app_launcher.py`
- `tests/test_window_mode_selector.py`

---

*Logiciel gratuit, responsabilité et signalement de plantage — [RESPONSABILITE_ET_SUPPORT.md](RESPONSABILITE_ET_SUPPORT.md)*
