Fenêtre principale de l'application SimulateurFerroviaire.
Plus de détails...
#include <MainWindow.h>
|
| | MainWindow (HINSTANCE hInstance, const WCHAR *className, const WCHAR *title, int nCmdShow) |
| | Construit la fenêtre principale (sans la créer physiquement).
|
| |
| void | create () |
| | Crée et affiche la fenêtre Win32, initialise la ProgressBar et charge la ParserConfig depuis le fichier .ini.
|
| |
|
| static LRESULT CALLBACK | windowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) |
| | Procédure de fenêtre statique, point d'entrée imposé par Win32.
|
| |
|
| LRESULT | handleMessage (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) |
| | Dispatcher principal des messages de la fenêtre.
|
| |
| void | onCommand (HWND hWnd, int commandId) |
| | Gère les commandes menu et boutons (WM_COMMAND).
|
| |
| void | onProgressUpdate (int progress, std::wstring *label) |
| | Gère la mise à jour de la progression (WM_PROGRESS_UPDATE).
|
| |
| void | onParsingSuccess (HWND hWnd) |
| | Gère la fin réussie du parsing (WM_PARSING_SUCCESS).
|
| |
| void | onParsingError (HWND hWnd, LPARAM lParam) |
| | Gère un échec de parsing (WM_PARSING_ERROR).
|
| |
| void | onParsingCancelled () |
| | Gère une annulation propre du parsing (WM_PARSING_CANCELLED).
|
| |
| void | onFileOpen (HWND hWnd) |
| | Ouvre le sélecteur de fichier et lance le parsing asynchrone.
|
| |
| void | onFileExport (HWND hWnd) |
| | Ouvre le dialogue d'export et déclenche l'export GeoJSON.
|
| |
| void | onCancelButtonClick () |
| | Demande l'annulation du parsing en cours via GeoParsingTask.
|
| |
| void | onParserSettings () |
| | Ouvre le dialogue des paramètres du parser (IDM_PARSER_SETTINGS).
|
| |
| void | onSizeUpdate () |
| | Appelé lors d'un redimensionnement — ajuste WebView et PCCPanel.
|
| |
| void | onDestroy () |
| | Nettoie les ressources avant la destruction (WM_DESTROY).
|
| |
| void | onWebMessage (const std::string &jsonMessage) |
| | Dispatcher des messages JSON reçus depuis Leaflet.
|
| |
| void | onSwitchClick (const std::string &switchId) |
| | Met à jour l'état d'un SwitchBlock après un clic Leaflet.
|
| |
| void | onTogglePCC () |
| | Bascule la visibilité du panneau PCC (F2 ou IDM_VIEW_PCC).
|
| |
Fenêtre principale de l'application SimulateurFerroviaire.
Responsabilités :
- Créer et afficher la fenêtre principale.
- Gérer l'ensemble des messages Win32 entrants via handleMessage.
- Déclencher l'ouverture d'un fichier GeoJSON et le parsing asynchrone via GeoParsingTask.
- Mettre à jour la ProgressBar (label + valeur + bouton Cancel) en réponse aux messages inter-threads.
◆ MainWindow()
| MainWindow::MainWindow |
( |
HINSTANCE |
hInstance, |
|
|
const WCHAR * |
className, |
|
|
const WCHAR * |
title, |
|
|
int |
nCmdShow |
|
) |
| |
Construit la fenêtre principale (sans la créer physiquement).
- Paramètres
-
| hInstance | Handle de l'instance Win32. |
| className | Nom de la classe enregistrée par Application. |
| title | Titre affiché dans la barre de la fenêtre. |
| nCmdShow | Mode d'affichage (SW_SHOW, SW_HIDE, …). |
◆ create()
| void MainWindow::create |
( |
| ) |
|
Crée et affiche la fenêtre Win32, initialise la ProgressBar et charge la ParserConfig depuis le fichier .ini.
- Exceptions
-
| std::runtime_error | Si CreateWindowW retourne nullptr. |
◆ handleMessage()
| LRESULT MainWindow::handleMessage |
( |
HWND |
hWnd, |
|
|
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
private |
Dispatcher principal des messages de la fenêtre.
◆ onCancelButtonClick()
| void MainWindow::onCancelButtonClick |
( |
| ) |
|
|
private |
Demande l'annulation du parsing en cours via GeoParsingTask.
Appelé quand l'utilisateur clique sur le bouton "Annuler" (IDC_CANCEL_PARSING).
◆ onCommand()
| void MainWindow::onCommand |
( |
HWND |
hWnd, |
|
|
int |
commandId |
|
) |
| |
|
private |
Gère les commandes menu et boutons (WM_COMMAND).
Traite : IDM_FILE_OPEN, IDM_FILE_EXPORT, IDM_VIEW_PCC, IDM_PARSER_SETTINGS, IDM_ABOUT, IDM_EXIT, IDC_CANCEL_PARSING.
- Paramètres
-
| hWnd | Handle de la fenêtre. |
| commandId | Identifiant de la commande (issu de LOWORD(wParam)). |
◆ onDestroy()
| void MainWindow::onDestroy |
( |
| ) |
|
|
private |
Nettoie les ressources avant la destruction (WM_DESTROY).
◆ onFileExport()
| void MainWindow::onFileExport |
( |
HWND |
hWnd | ) |
|
|
private |
Ouvre le dialogue d'export et déclenche l'export GeoJSON.
- Paramètres
-
| hWnd | Handle de la fenêtre principale. |
◆ onFileOpen()
| void MainWindow::onFileOpen |
( |
HWND |
hWnd | ) |
|
|
private |
Ouvre le sélecteur de fichier et lance le parsing asynchrone.
- Paramètres
-
| hWnd | Handle de la fenêtre principale. |
◆ onParserSettings()
| void MainWindow::onParserSettings |
( |
| ) |
|
|
private |
Ouvre le dialogue des paramètres du parser (IDM_PARSER_SETTINGS).
Si l'utilisateur valide, sauvegarde la config dans m_parserIniPath. Le prochain parsing utilisera les nouveaux paramètres.
◆ onParsingCancelled()
| void MainWindow::onParsingCancelled |
( |
| ) |
|
|
private |
Gère une annulation propre du parsing (WM_PARSING_CANCELLED).
Réinitialise la ProgressBar sans afficher d'erreur.
◆ onParsingError()
| void MainWindow::onParsingError |
( |
HWND |
hWnd, |
|
|
LPARAM |
lParam |
|
) |
| |
|
private |
Gère un échec de parsing (WM_PARSING_ERROR).
Affiche le message d'erreur transporté par lParam, libère la mémoire allouée par le thread de parsing, puis réinitialise la ProgressBar.
- Paramètres
-
| hWnd | Handle de la fenêtre parente. |
| lParam | Pointeur vers un std::wstring alloué par GeoParsingTask. |
◆ onParsingSuccess()
| void MainWindow::onParsingSuccess |
( |
HWND |
hWnd | ) |
|
|
private |
Gère la fin réussie du parsing (WM_PARSING_SUCCESS).
Injecte le rendu GeoJSON dans le WebView et réinitialise la ProgressBar.
- Paramètres
-
| hWnd | Handle de la fenêtre parente. |
◆ onProgressUpdate()
| void MainWindow::onProgressUpdate |
( |
int |
progress, |
|
|
std::wstring * |
label |
|
) |
| |
|
private |
Gère la mise à jour de la progression (WM_PROGRESS_UPDATE).
Met à jour la barre et le label. Libère le std::wstring* transporté dans lParam, alloué par GeoParsingTask.
- Paramètres
-
| progress | Valeur de progression (0–100), depuis wParam. |
| label | Pointeur vers le label de phase (propriété transférée). |
◆ onSizeUpdate()
| void MainWindow::onSizeUpdate |
( |
| ) |
|
|
private |
Appelé lors d'un redimensionnement — ajuste WebView et PCCPanel.
◆ onSwitchClick()
| void MainWindow::onSwitchClick |
( |
const std::string & |
switchId | ) |
|
|
private |
Met à jour l'état d'un SwitchBlock après un clic Leaflet.
- Paramètres
-
| switchId | Identifiant du switch (ex. "sw/0"). |
◆ onTogglePCC()
| void MainWindow::onTogglePCC |
( |
| ) |
|
|
private |
Bascule la visibilité du panneau PCC (F2 ou IDM_VIEW_PCC).
◆ onWebMessage()
| void MainWindow::onWebMessage |
( |
const std::string & |
jsonMessage | ) |
|
|
private |
Dispatcher des messages JSON reçus depuis Leaflet.
- Paramètres
-
| jsonMessage | Contenu brut du postMessage (UTF-8). |
◆ windowProc()
| LRESULT CALLBACK MainWindow::windowProc |
( |
HWND |
hWnd, |
|
|
UINT |
message, |
|
|
WPARAM |
wParam, |
|
|
LPARAM |
lParam |
|
) |
| |
|
static |
Procédure de fenêtre statique, point d'entrée imposé par Win32.
Lors du premier message (WM_NCCREATE), stocke le pointeur this dans GWLP_USERDATA, puis délègue chaque message à handleMessage.
- Paramètres
-
| hWnd | Handle de la fenêtre cible. |
| message | Identifiant du message Win32. |
| wParam | Paramètre mot de message. |
| lParam | Paramètre long de message. |
- Renvoie
- Résultat du traitement du message.
◆ m_className
| const WCHAR* MainWindow::m_className |
|
private |
◆ m_hInstance
| HINSTANCE MainWindow::m_hInstance |
|
private |
◆ m_hWnd
| HWND MainWindow::m_hWnd = nullptr |
|
private |
Handle Win32 de la fenêtre physique (valide après create).
◆ m_logger
| Logger MainWindow::m_logger { "HMI" } |
|
private |
◆ m_nCmdShow
| int MainWindow::m_nCmdShow |
|
private |
◆ m_parserConfig
◆ m_parserIniPath
| std::string MainWindow::m_parserIniPath |
|
private |
◆ m_parserTask
Tâche asynchrone du pipeline GeoParser. Instanciée dans create une fois m_hWnd disponible.
◆ m_pccPanel
Panneau PCC superposé — togglé via F2 ou IDM_VIEW_PCC.
◆ m_progressBar
Barre de progression affichée lors du parsing.
◆ m_title
| const WCHAR* MainWindow::m_title |
|
private |
◆ m_webViewPanel
Panneau WebView2 pour l'affichage de la carte ferroviaire.
La documentation de cette classe a été générée à partir des fichiers suivants :