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/…
==============================================================================
--- 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/…
==============================================================================
--- 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/…
==============================================================================
--- 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 */