diff --git a/programs/notepad/Makefile.in b/programs/notepad/Makefile.in index 09305442d6c..c67191d46f6 100644 --- a/programs/notepad/Makefile.in +++ b/programs/notepad/Makefile.in @@ -4,7 +4,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ MODULE = notepad.exe APPMODE = -mwindows -IMPORTS = comdlg32 shell32 user32 gdi32 msvcrt advapi32 kernel32 +IMPORTS = comdlg32 shell32 shlwapi user32 gdi32 msvcrt advapi32 kernel32 EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt MODCFLAGS = @BUILTINFLAG@ EXTRADEFS = -DNO_LIBWINE_PORT diff --git a/programs/notepad/dialog.c b/programs/notepad/dialog.c index a4f7de58e56..9f822d46bf6 100644 --- a/programs/notepad/dialog.c +++ b/programs/notepad/dialog.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "main.h" #include "dialog.h" @@ -78,39 +79,39 @@ static void UpdateWindowCaption(void) SetWindowText(Globals.hMainWnd, szCaption); } -static void AlertFileNotFound(LPCWSTR szFileName) +int DIALOG_StringMsgBox(HWND hParent, int formatId, LPCWSTR szString, DWORD dwFlags) { WCHAR szMessage[MAX_STRING_LEN]; WCHAR szResource[MAX_STRING_LEN]; /* Load and format szMessage */ - LoadString(Globals.hInstance, STRING_NOTFOUND, szResource, SIZEOF(szResource)); - wsprintf(szMessage, szResource, szFileName); + LoadString(Globals.hInstance, formatId, szResource, SIZEOF(szResource)); + wnsprintf(szMessage, SIZEOF(szMessage), szResource, szString); /* Load szCaption */ - LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource)); + if ((dwFlags & MB_ICONMASK) == MB_ICONEXCLAMATION) + LoadString(Globals.hInstance, STRING_ERROR, szResource, SIZEOF(szResource)); + else + LoadString(Globals.hInstance, STRING_NOTEPAD, szResource, SIZEOF(szResource)); /* Display Modal Dialog */ - MessageBox(Globals.hMainWnd, szMessage, szResource, MB_ICONEXCLAMATION); + if (hParent == NULL) + hParent = Globals.hMainWnd; + return MessageBox(hParent, szMessage, szResource, dwFlags); +} + +static void AlertFileNotFound(LPCWSTR szFileName) +{ + DIALOG_StringMsgBox(NULL, STRING_NOTFOUND, szFileName, MB_ICONEXCLAMATION|MB_OK); } static int AlertFileNotSaved(LPCWSTR szFileName) { - WCHAR szMessage[MAX_STRING_LEN]; - WCHAR szResource[MAX_STRING_LEN]; WCHAR szUntitled[MAX_STRING_LEN]; LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, SIZEOF(szUntitled)); - - /* Load and format Message */ - LoadString(Globals.hInstance, STRING_NOTSAVED, szResource, SIZEOF(szResource)); - wsprintf(szMessage, szResource, szFileName[0] ? szFileName : szUntitled); - - /* Load Caption */ - LoadString(Globals.hInstance, STRING_NOTEPAD, szResource, SIZEOF(szResource)); - - /* Display modal */ - return MessageBox(Globals.hMainWnd, szMessage, szResource, MB_ICONEXCLAMATION|MB_YESNOCANCEL); + return DIALOG_StringMsgBox(NULL, STRING_NOTSAVED, szFileName[0] ? szFileName : szUntitled, + MB_ICONQUESTION|MB_YESNOCANCEL); } /** diff --git a/programs/notepad/dialog.h b/programs/notepad/dialog.h index 3d9d2e1a88c..ffadf00a710 100644 --- a/programs/notepad/dialog.h +++ b/programs/notepad/dialog.h @@ -49,6 +49,7 @@ VOID DIALOG_HelpNoWarranty(VOID); VOID DIALOG_HelpAboutWine(VOID); VOID DIALOG_TimeDate(VOID); +int DIALOG_StringMsgBox(HWND hParent, int formatId, LPCWSTR szString, DWORD dwFlags); /* utility functions */ VOID ShowLastError(void);