Author: akhaldi Date: Sun Nov 29 18:13:33 2015 New Revision: 70207
URL: http://svn.reactos.org/svn/reactos?rev=70207&view=rev Log: [NOTEPAD] Let the user know when an opened file is modified. By Lee Schroeder. CORE-9721
Modified: trunk/reactos/base/applications/notepad/dialog.c trunk/reactos/base/applications/notepad/main.c trunk/reactos/base/applications/notepad/notepad.h
Modified: trunk/reactos/base/applications/notepad/dialog.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/notepad/d... ============================================================================== --- trunk/reactos/base/applications/notepad/dialog.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/notepad/dialog.c [iso-8859-1] Sun Nov 29 18:13:33 2015 @@ -63,24 +63,35 @@ * (untitled) - Notepad if no file is open * [filename] - Notepad if a file is given */ -static void UpdateWindowCaption(void) +void UpdateWindowCaption(BOOL clearModifyAlert) { TCHAR szCaption[MAX_STRING_LEN]; TCHAR szNotepad[MAX_STRING_LEN]; - + TCHAR szFilename[MAX_STRING_LEN]; + + /* Load the name of the application */ LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, ARRAY_SIZE(szNotepad));
+ /* Determine if the file has been saved or if this is a new file */ if (Globals.szFileTitle[0] != 0) - { - StringCchCopy(szCaption, ARRAY_SIZE(szCaption), Globals.szFileTitle); - } + StringCchCopy(szFilename, ARRAY_SIZE(szFilename), Globals.szFileTitle); else - { - LoadString(Globals.hInstance, STRING_UNTITLED, szCaption, ARRAY_SIZE(szCaption)); - } - - StringCchCat(szCaption, ARRAY_SIZE(szCaption), _T(" - ")); - StringCchCat(szCaption, ARRAY_SIZE(szCaption), szNotepad); + LoadString(Globals.hInstance, STRING_UNTITLED, szFilename, ARRAY_SIZE(szFilename)); + + /* When a file is being opened or created, there is no need to have the edited flag shown + when the new or opened file has not been edited yet */ + if (clearModifyAlert) + StringCbPrintf(szCaption, ARRAY_SIZE(szCaption), _T("%s - %s"), szFilename, szNotepad); + else + { + BOOL isModified = (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0) ? TRUE : FALSE); + + /* Update the caption based upon if the user has modified the contents of the file or not */ + StringCbPrintf(szCaption, ARRAY_SIZE(szCaption), _T("%s%s - %s"), + (isModified ? _T("*") : _T("")), szFilename, szNotepad); + } + + /* Update the window caption */ SetWindowText(Globals.hMainWnd, szCaption); }
@@ -326,7 +337,7 @@ }
SetFileName(empty_str); - UpdateWindowCaption(); + UpdateWindowCaption(TRUE);
return TRUE; } @@ -375,7 +386,7 @@ }
SetFileName(szFileName); - UpdateWindowCaption(); + UpdateWindowCaption(TRUE); NOTEPAD_EnableSearchMenu(); done: if (hFile != INVALID_HANDLE_VALUE) @@ -522,7 +533,7 @@ SetFileName(szPath); if (DoSaveFile()) { - UpdateWindowCaption(); + UpdateWindowCaption(TRUE); return TRUE; } else
Modified: trunk/reactos/base/applications/notepad/main.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/notepad/m... ============================================================================== --- trunk/reactos/base/applications/notepad/main.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/notepad/main.c [iso-8859-1] Sun Nov 29 18:13:33 2015 @@ -324,6 +324,11 @@ case VK_RIGHT: DIALOG_StatusBarUpdateCaretPos(); break; + default: + { + UpdateWindowCaption(FALSE); + break; + } } } case WM_LBUTTONUP:
Modified: trunk/reactos/base/applications/notepad/notepad.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/notepad/n... ============================================================================== --- trunk/reactos/base/applications/notepad/notepad.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/notepad/notepad.h [iso-8859-1] Sun Nov 29 18:13:33 2015 @@ -20,4 +20,6 @@ #include "main.h" #include "dialog.h"
+void UpdateWindowCaption(BOOL clearModifyAlert); + #endif /* _NOTEPAD_H */