Mikołaj Zalewski : notepad: Add a generic function for message boxes with a string parameter.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Oct 23 10:01:33 CDT 2006


Module: wine
Branch: master
Commit: b0905acb6e332c5155b9fa64c290f2ea730c5bb8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b0905acb6e332c5155b9fa64c290f2ea730c5bb8

Author: Mikołaj Zalewski <mikolaj at zalewski.pl>
Date:   Sun Oct 22 18:54:51 2006 +0200

notepad: Add a generic function for message boxes with a string parameter.

---

 programs/notepad/Makefile.in |    2 +-
 programs/notepad/dialog.c    |   35 ++++++++++++++++++-----------------
 programs/notepad/dialog.h    |    1 +
 3 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/programs/notepad/Makefile.in b/programs/notepad/Makefile.in
index 0930544..c67191d 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 a4f7de5..9f822d4 100644
--- a/programs/notepad/dialog.c
+++ b/programs/notepad/dialog.c
@@ -26,6 +26,7 @@ #include <assert.h>
 #include <stdio.h>
 #include <windows.h>
 #include <commdlg.h>
+#include <shlwapi.h>
 
 #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 3d9d2e1..ffadf00 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);




More information about the wine-cvs mailing list