From dac256b36d97d3f1a48555e1528c07e1f5e9149c Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 14 Oct 2008 00:39:10 +0000 Subject: [PATCH] Ask for saving when quitting... --- editor/synctracker2.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/editor/synctracker2.cpp b/editor/synctracker2.cpp index 69741b5..c599ae4 100644 --- a/editor/synctracker2.cpp +++ b/editor/synctracker2.cpp @@ -14,6 +14,7 @@ #include "trackview.h" #include const TCHAR *mainWindowClassName = _T("MainWindow"); +const TCHAR *mainWindowTitle = _T("GNU Rocket System"); const TCHAR *keyName = _T("SOFTWARE\\GNU Rocket"); HWND hwnd = NULL; @@ -315,6 +316,14 @@ void fileSave() } } +void attemptQuit() +{ + UINT res = MessageBox(hwnd, _T("Save before exit?"), mainWindowTitle, MB_YESNOCANCEL | MB_ICONQUESTION); + if (IDYES == res) fileSave(); + if (IDCANCEL != res) DestroyWindow(hwnd); +} + + static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) @@ -358,6 +367,10 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA if (mruList.size() > 0) mruListUpdate(); } break; + + case WM_CLOSE: + attemptQuit(); + break; case WM_DESTROY: saveMruList(); @@ -437,7 +450,7 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA break; case ID_FILE_EXIT: - DestroyWindow(hwnd); + attemptQuit(); break; case ID_EDIT_UNDO: SendMessage(trackViewWin, WM_UNDO, 0, 0); break; @@ -584,7 +597,7 @@ int _tmain(int argc, _TCHAR* argv[]) hwnd = CreateWindowEx( 0, mainWindowClassName, - _T("GNU Rocket System"), + mainWindowTitle, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, CW_USEDEFAULT, CW_USEDEFAULT, // x, y CW_USEDEFAULT, CW_USEDEFAULT, // width, height