ReactOS 0.4.17-dev-116-ga4b6fe9
dialog.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

VOID DIALOG_FileNew (VOID)
 
VOID DIALOG_FileNewWindow (VOID)
 
VOID DIALOG_FileOpen (VOID)
 
BOOL DIALOG_FileSave (VOID)
 
BOOL DIALOG_FileSaveAs (VOID)
 
VOID DIALOG_FilePrint (VOID)
 
VOID DIALOG_FilePageSetup (VOID)
 
VOID DIALOG_FileExit (VOID)
 
VOID DIALOG_EditUndo (VOID)
 
VOID DIALOG_EditCut (VOID)
 
VOID DIALOG_EditCopy (VOID)
 
VOID DIALOG_EditPaste (VOID)
 
VOID DIALOG_EditDelete (VOID)
 
VOID DIALOG_EditSelectAll (VOID)
 
VOID DIALOG_EditTimeDate (VOID)
 
VOID DIALOG_EditWrap (VOID)
 
VOID DIALOG_Search (VOID)
 
VOID DIALOG_SearchNext (BOOL bDown)
 
VOID DIALOG_Replace (VOID)
 
VOID DIALOG_GoTo (VOID)
 
VOID DIALOG_SelectFont (VOID)
 
VOID DIALOG_ViewStatusBar (VOID)
 
VOID DIALOG_StatusBarAlignParts (VOID)
 
VOID DIALOG_StatusBarUpdateCaretPos (VOID)
 
VOID DIALOG_HelpContents (VOID)
 
VOID DIALOG_HelpSearch (VOID)
 
VOID DIALOG_HelpLicense (VOID)
 
VOID DIALOG_HelpNoWarranty (VOID)
 
VOID DIALOG_HelpAboutNotepad (VOID)
 
VOID DIALOG_TimeDate (VOID)
 
int DIALOG_StringMsgBox (HWND hParent, int formatId, LPCTSTR szString, DWORD dwFlags)
 
INT_PTR CALLBACK AboutDialogProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 
VOID ShowLastError (VOID)
 
BOOL FileExists (LPCTSTR szFilename)
 
BOOL HasFileExtension (LPCTSTR szFilename)
 
BOOL DoCloseFile (VOID)
 
VOID DoOpenFile (LPCTSTR szFileName)
 
VOID DoShowHideStatusBar (VOID)
 
VOID DoCreateEditWindow (VOID)
 
void UpdateWindowCaption (BOOL clearModifyAlert)
 
VOID WaitCursor (BOOL bBegin)
 

Function Documentation

◆ AboutDialogProc()

INT_PTR CALLBACK AboutDialogProc ( HWND  hDlg,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 4 of file about.c.

8{
9 HWND hLicenseEditWnd;
11 TCHAR strLicense[700];
12
13 switch (message)
14 {
15 case WM_INITDIALOG:
16
20 16,
21 16,
22 0);
23
24 SendMessage(hDlg,
25 WM_SETICON,
27 (LPARAM)hIcon);
28
29 hLicenseEditWnd = GetDlgItem(hDlg,
31
34 strLicense,
35 sizeof(strLicense) / sizeof(TCHAR));
36
37 SetWindowText(hLicenseEditWnd,
38 strLicense);
39 return TRUE;
40
41 case WM_COMMAND:
42 if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
43 {
45 EndDialog(hDlg,
46 LOWORD(wParam));
47 return TRUE;
48 }
49
50 break;
51 }
52
53 return FALSE;
54}
#define IDC_LICENSE_EDIT
Definition: resource.h:20
#define IDI_ICON
Definition: resource.h:5
#define IDS_LICENSE
Definition: resource.h:28
HINSTANCE hInstance
Definition: charmap.c:19
WPARAM wParam
Definition: combotst.c:138
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
char TCHAR
Definition: tchar.h:1402
LONG_PTR LPARAM
Definition: minwindef.h:175
static HICON
Definition: imagelist.c:80
HICON hIcon
Definition: msconfig.c:44
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define LOWORD(l)
Definition: pedump.c:82
Definition: tftpd.h:60
#define ICON_SMALL
Definition: tnclass.cpp:48
#define IDCANCEL
Definition: winuser.h:842
#define IMAGE_ICON
Definition: winuser.h:212
#define WM_COMMAND
Definition: winuser.h:1768
#define WM_INITDIALOG
Definition: winuser.h:1767
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:841
#define SendMessage
Definition: winuser.h:6009
#define LoadImage
Definition: winuser.h:5981
#define LoadString
Definition: winuser.h:5985
#define SetWindowText
Definition: winuser.h:6023
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2422

◆ DIALOG_EditCopy()

VOID DIALOG_EditCopy ( VOID  )

Definition at line 597 of file dialog.c.

598{
599 SendMessage(Globals.hEdit, WM_COPY, 0, 0);
600}
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define WM_COPY
Definition: winuser.h:1890

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditCut()

VOID DIALOG_EditCut ( VOID  )

Definition at line 592 of file dialog.c.

593{
594 SendMessage(Globals.hEdit, WM_CUT, 0, 0);
595}
#define WM_CUT
Definition: winuser.h:1889

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditDelete()

VOID DIALOG_EditDelete ( VOID  )

Definition at line 607 of file dialog.c.

608{
609 SendMessage(Globals.hEdit, WM_CLEAR, 0, 0);
610}
#define WM_CLEAR
Definition: winuser.h:1892

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditPaste()

VOID DIALOG_EditPaste ( VOID  )

Definition at line 602 of file dialog.c.

603{
604 SendMessage(Globals.hEdit, WM_PASTE, 0, 0);
605}
#define WM_PASTE
Definition: winuser.h:1891

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditSelectAll()

VOID DIALOG_EditSelectAll ( VOID  )

Definition at line 612 of file dialog.c.

613{
614 SendMessage(Globals.hEdit, EM_SETSEL, 0, -1);
615}
#define EM_SETSEL
Definition: winuser.h:2047

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditTimeDate()

VOID DIALOG_EditTimeDate ( VOID  )

Definition at line 617 of file dialog.c.

618{
619 SYSTEMTIME st;
620 TCHAR szDate[MAX_STRING_LEN];
621 TCHAR szText[MAX_STRING_LEN * 2 + 2];
622
623 GetLocalTime(&st);
624
626 _tcscpy(szText, szDate);
627 _tcscat(szText, _T(" "));
629 _tcscat(szText, szDate);
630 SendMessage(Globals.hEdit, EM_REPLACESEL, TRUE, (LPARAM)szText);
631}
#define MAX_STRING_LEN
Definition: precomp.h:36
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:272
#define _tcscat
Definition: tchar.h:622
#define _tcscpy
Definition: tchar.h:623
#define LOCALE_USER_DEFAULT
#define _T(x)
Definition: vfdio.h:22
#define GetTimeFormat
Definition: winnls.h:1361
#define DATE_LONGDATE
Definition: winnls.h:210
#define GetDateFormat
Definition: winnls.h:1356
#define EM_REPLACESEL
Definition: winuser.h:2035

Referenced by DoOpenFile(), and NOTEPAD_MenuCommand().

◆ DIALOG_EditUndo()

VOID DIALOG_EditUndo ( VOID  )

Definition at line 587 of file dialog.c.

588{
589 SendMessage(Globals.hEdit, EM_UNDO, 0, 0);
590}
#define EM_UNDO
Definition: winuser.h:2050

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditWrap()

VOID DIALOG_EditWrap ( VOID  )

Definition at line 758 of file dialog.c.

759{
760 Globals.bWrapLongLines = !Globals.bWrapLongLines;
761
763
766}
VOID DoShowHideStatusBar(VOID)
Definition: dialog.c:633
VOID DoCreateEditWindow(VOID)
Definition: dialog.c:667
#define CMD_GOTO
Definition: notepad_res.h:47
#define MF_ENABLED
Definition: winuser.h:128
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_GRAYED
Definition: winuser.h:129

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FileExit()

VOID DIALOG_FileExit ( VOID  )

Definition at line 582 of file dialog.c.

583{
585}
#define WM_CLOSE
Definition: winuser.h:1649
#define PostMessage
Definition: winuser.h:5998

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FileNew()

VOID DIALOG_FileNew ( VOID  )

Definition at line 399 of file dialog.c.

400{
401 /* Close any files and prompt to save changes */
402 if (!DoCloseFile())
403 return;
404
406
407 SetWindowText(Globals.hEdit, NULL);
409 Globals.iEoln = EOLN_CRLF;
410 Globals.encFile = ENCODING_DEFAULT;
411
414
416}
VOID WaitCursor(BOOL bBegin)
Definition: dialog.c:120
static VOID DIALOG_StatusBarUpdateAll(VOID)
Definition: dialog.c:186
BOOL DoCloseFile(VOID)
Definition: dialog.c:311
VOID NOTEPAD_EnableSearchMenu()
Definition: main.c:20
#define ENCODING_DEFAULT
Definition: notepad.h:49
@ EOLN_CRLF
Definition: notepad.h:53
#define EM_EMPTYUNDOBUFFER
Definition: winuser.h:2014

Referenced by NOTEPAD_MenuCommand(), and NOTEPAD_WndProc().

◆ DIALOG_FileNewWindow()

VOID DIALOG_FileNewWindow ( VOID  )

Definition at line 418 of file dialog.c.

419{
420 TCHAR pszNotepadExe[MAX_PATH];
421
423
424 GetModuleFileName(NULL, pszNotepadExe, _countof(pszNotepadExe));
425 ShellExecute(NULL, NULL, pszNotepadExe, NULL, NULL, SW_SHOWNORMAL);
426
428}
#define MAX_PATH
Definition: compat.h:34
#define ShellExecute
Definition: shellapi.h:738
#define _countof(array)
Definition: sndvol32.h:70
#define GetModuleFileName
Definition: winbase.h:3580
#define SW_SHOWNORMAL
Definition: winuser.h:781

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FileOpen()

VOID DIALOG_FileOpen ( VOID  )

Definition at line 430 of file dialog.c.

431{
432 OPENFILENAME openfilename;
434
435 ZeroMemory(&openfilename, sizeof(openfilename));
436
437 if (Globals.szFileName[0] == 0)
439 else
440 _tcscpy(szPath, Globals.szFileName);
441
442 openfilename.lStructSize = sizeof(openfilename);
443 openfilename.hwndOwner = Globals.hMainWnd;
444 openfilename.hInstance = Globals.hInstance;
445 openfilename.lpstrFilter = Globals.szFilter;
446 openfilename.lpstrFile = szPath;
447 openfilename.nMaxFile = _countof(szPath);
449 openfilename.lpstrDefExt = szDefaultExt;
450
451 if (GetOpenFileName(&openfilename)) {
452 if (FileExists(openfilename.lpstrFile))
453 DoOpenFile(openfilename.lpstrFile);
454 else
455 AlertFileNotFound(openfilename.lpstrFile);
456 }
457}
static void AlertFileNotFound(LPCTSTR szFileName)
Definition: dialog.c:214
static const TCHAR txt_files[]
Definition: dialog.c:22
BOOL FileExists(LPCTSTR szFilename)
Definition: dialog.c:235
static const TCHAR szDefaultExt[]
Definition: dialog.c:21
VOID DoOpenFile(LPCTSTR szFileName)
Definition: dialog.c:341
#define OFN_EXPLORER
Definition: commdlg.h:104
#define OFN_HIDEREADONLY
Definition: commdlg.h:107
#define OFN_FILEMUSTEXIST
Definition: commdlg.h:106
#define OFN_PATHMUSTEXIST
Definition: commdlg.h:117
#define GetOpenFileName
Definition: commdlg.h:665
#define ZeroMemory
Definition: minwinbase.h:31
LPCWSTR szPath
Definition: env.c:37
HINSTANCE hInstance
Definition: precomp.h:43
LPCSTR lpstrDefExt
Definition: commdlg.h:345
HWND hwndOwner
Definition: commdlg.h:330
HINSTANCE hInstance
Definition: commdlg.h:331
LPSTR lpstrFile
Definition: commdlg.h:336
DWORD Flags
Definition: commdlg.h:342
DWORD lStructSize
Definition: commdlg.h:329
LPCSTR lpstrFilter
Definition: commdlg.h:332
DWORD nMaxFile
Definition: commdlg.h:337

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FilePageSetup()

VOID DIALOG_FilePageSetup ( VOID  )

Definition at line 670 of file printing.c.

671{
673
674 ZeroMemory(&page, sizeof(page));
675 page.lStructSize = sizeof(page);
676 page.hwndOwner = Globals.hMainWnd;
678 page.hInstance = Globals.hInstance;
679 page.rtMargin = Globals.lMargins;
680 page.hDevMode = Globals.hDevMode;
681 page.hDevNames = Globals.hDevNames;
682 page.lpPageSetupTemplateName = MAKEINTRESOURCE(DIALOG_PAGESETUP);
683 page.lpfnPageSetupHook = DIALOG_PAGESETUP_Hook;
684
686
687 /* NOTE: Even if PageSetupDlg returns FALSE, the following members may have changed */
688 Globals.hDevMode = page.hDevMode;
689 Globals.hDevNames = page.hDevNames;
690 Globals.lMargins = page.rtMargin;
691}
#define PSD_ENABLEPAGESETUPHOOK
Definition: commdlg.h:183
#define PSD_ENABLEPAGESETUPTEMPLATE
Definition: commdlg.h:184
#define PSD_MARGINS
Definition: commdlg.h:173
#define PageSetupDlg
Definition: commdlg.h:667
#define DIALOG_PAGESETUP
Definition: notepad_res.h:12
static UINT_PTR CALLBACK DIALOG_PAGESETUP_Hook(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: printing.c:621
Definition: module.h:576

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FilePrint()

VOID DIALOG_FilePrint ( VOID  )

Definition at line 565 of file printing.c.

566{
567 BOOL ret;
568 LPPRINTDLG printer;
569 PPRINT_DATA printData = LocalAlloc(LPTR, sizeof(PRINT_DATA));
570 if (!printData)
571 {
573 return;
574 }
575
576 printer = &printData->printer;
577 printer->lStructSize = sizeof(PRINTDLG);
578 printer->hwndOwner = Globals.hMainWnd;
579 printer->Flags = PD_RETURNDC | PD_SELECTION;
580
581 /* Disable the selection radio button if there is no text selected */
583 printer->Flags |= PD_NOSELECTION;
584
585 printer->nFromPage = 1;
586 printer->nToPage = MAXWORD;
587 printer->nMinPage = 1;
588 printer->nMaxPage = MAXWORD;
589
590 printer->hDevMode = Globals.hDevMode;
591 printer->hDevNames = Globals.hDevNames;
592
593 ret = PrintDlg(printer);
594 /* NOTE: Even if PrintDlg returns FALSE, hDevMode and hDevNames may have changed. */
595 Globals.hDevMode = printer->hDevMode;
596 Globals.hDevNames = printer->hDevNames;
597
598 if (!ret)
599 {
600 LocalFree(printData);
601 return; /* The user canceled printing */
602 }
603 assert(printer->hDC != NULL);
604
605 /* Ensure that each logical unit maps to one pixel */
606 SetMapMode(printer->hDC, MM_TEXT);
607
612 (LPARAM)printer) == IDABORT)
613 {
615 }
616}
VOID ShowLastError(VOID)
Definition: dialog.c:45
#define PD_NOSELECTION
Definition: commdlg.h:149
#define PD_SELECTION
Definition: commdlg.h:147
#define PrintDlg
Definition: commdlg.h:668
#define PD_RETURNDC
Definition: commdlg.h:155
PRINTDLGA PRINTDLG
Definition: commdlg.h:660
#define assert(_expr)
Definition: assert.h:32
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define LPTR
Definition: minwinbase.h:93
#define DIALOG_PRINTING
Definition: notepad_res.h:21
#define MAXWORD
static INT_PTR CALLBACK DIALOG_Printing_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: printing.c:493
static INT GetSelectionTextLength(HWND hWnd)
Definition: printing.c:57
static VOID AlertPrintError(VOID)
Definition: printing.c:16
PRINTDLG printer
Definition: printing.c:99
WORD nMaxPage
Definition: commdlg.h:474
HDC hDC
Definition: commdlg.h:469
DWORD Flags
Definition: commdlg.h:470
WORD nFromPage
Definition: commdlg.h:471
HGLOBAL hDevMode
Definition: commdlg.h:467
WORD nToPage
Definition: commdlg.h:472
WORD nMinPage
Definition: commdlg.h:473
HGLOBAL hDevNames
Definition: commdlg.h:468
HWND hwndOwner
Definition: commdlg.h:466
DWORD lStructSize
Definition: commdlg.h:465
int WINAPI SetMapMode(_In_ HDC, _In_ int)
#define MM_TEXT
Definition: wingdi.h:873
#define DialogBoxParam
Definition: winuser.h:5930
#define IDABORT
Definition: winuser.h:843

Referenced by HandleCommandLine(), and NOTEPAD_MenuCommand().

◆ DIALOG_FileSave()

BOOL DIALOG_FileSave ( VOID  )

Definition at line 459 of file dialog.c.

460{
461 if (Globals.szFileName[0] == 0)
462 {
463 return DIALOG_FileSaveAs();
464 }
465 else if (DoSaveFile())
466 {
468 return TRUE;
469 }
470 return FALSE;
471}
BOOL DIALOG_FileSaveAs(VOID)
Definition: dialog.c:534
static BOOL DoSaveFile(VOID)
Definition: dialog.c:250
void UpdateWindowCaption(BOOL clearModifyAlert)
Definition: dialog.c:79

Referenced by DoCloseFile(), and NOTEPAD_MenuCommand().

◆ DIALOG_FileSaveAs()

BOOL DIALOG_FileSaveAs ( VOID  )

Definition at line 534 of file dialog.c.

535{
536 OPENFILENAME saveas;
538
539 ZeroMemory(&saveas, sizeof(saveas));
540
541 if (Globals.szFileName[0] == 0)
543 else
544 _tcscpy(szPath, Globals.szFileName);
545
546 saveas.lStructSize = sizeof(OPENFILENAME);
547 saveas.hwndOwner = Globals.hMainWnd;
548 saveas.hInstance = Globals.hInstance;
549 saveas.lpstrFilter = Globals.szFilter;
550 saveas.lpstrFile = szPath;
551 saveas.nMaxFile = _countof(szPath);
554 saveas.lpstrDefExt = szDefaultExt;
557
558 if (GetSaveFileName(&saveas))
559 {
560 /* HACK: Because in ROS, Save-As boxes don't check the validity
561 * of file names and thus, here, szPath can be invalid !! We only
562 * see its validity when we call DoSaveFile()... */
564 if (DoSaveFile())
565 {
568 return TRUE;
569 }
570 else
571 {
572 SetFileName(_T(""));
573 return FALSE;
574 }
575 }
576 else
577 {
578 return FALSE;
579 }
580}
static VOID SetFileName(PCONSOLE_CHILDFRM_WND Info, PWSTR pFileName)
Definition: console.c:180
static UINT_PTR CALLBACK DIALOG_FileSaveAs_Hook(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: dialog.c:475
#define OFN_OVERWRITEPROMPT
Definition: commdlg.h:116
#define GetSaveFileName
Definition: commdlg.h:666
#define OFN_ENABLEHOOK
Definition: commdlg.h:99
#define OFN_ENABLETEMPLATE
Definition: commdlg.h:102
OPENFILENAMEA OPENFILENAME
Definition: commdlg.h:657
#define DIALOG_ENCODING
Definition: notepad_res.h:14
LPCSTR lpTemplateName
Definition: commdlg.h:348
LPOFNHOOKPROC lpfnHook
Definition: commdlg.h:347

Referenced by DIALOG_FileSave(), and NOTEPAD_MenuCommand().

◆ DIALOG_GoTo()

VOID DIALOG_GoTo ( VOID  )

Definition at line 893 of file dialog.c.

894{
895 GOTO_DATA GotoData;
896 DWORD dwStart = 0, dwEnd = 0;
897 INT ich, cch = GetWindowTextLength(Globals.hEdit);
898
899 /* Get the current line number and the total line number */
900 SendMessage(Globals.hEdit, EM_GETSEL, (WPARAM) &dwStart, (LPARAM) &dwEnd);
901 GotoData.iLine = (UINT)SendMessage(Globals.hEdit, EM_LINEFROMCHAR, dwStart, 0) + 1;
902 GotoData.cLines = (UINT)SendMessage(Globals.hEdit, EM_GETLINECOUNT, 0, 0);
903
904 /* Ask the user for line number */
909 (LPARAM)&GotoData) != IDOK)
910 {
911 return; /* Canceled */
912 }
913
914 --GotoData.iLine; /* Make it zero-based */
915
916 /* Get ich (the target character index) from line number */
917 if (GotoData.iLine <= 0)
918 ich = 0;
919 else if (GotoData.iLine >= GotoData.cLines)
920 ich = cch;
921 else
922 ich = (INT)SendMessage(Globals.hEdit, EM_LINEINDEX, GotoData.iLine, 0);
923
924 /* EM_LINEINDEX can return -1 on failure */
925 if (ich < 0)
926 ich = 0;
927
928 /* Move the caret */
929 SendMessage(Globals.hEdit, EM_SETSEL, ich, ich);
930 SendMessage(Globals.hEdit, EM_SCROLLCARET, 0, 0);
931}
static INT_PTR CALLBACK DIALOG_GoTo_DialogProc(HWND hwndDialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialog.c:851
unsigned long DWORD
Definition: ntddk_ex.h:95
UINT_PTR WPARAM
Definition: minwindef.h:174
unsigned int UINT
Definition: ndis.h:50
#define DIALOG_GOTO
Definition: notepad_res.h:17
#define INT
Definition: polytest.cpp:20
#define EM_SCROLLCARET
Definition: richedit.h:81
_In_ UINT _In_ UINT cch
Definition: shellapi.h:432
UINT iLine
Definition: dialog.c:845
UINT cLines
Definition: dialog.c:846
int32_t INT
Definition: typedefs.h:58
#define EM_LINEFROMCHAR
Definition: winuser.h:2030
#define GetWindowTextLength
Definition: winuser.h:5965
#define EM_GETSEL
Definition: winuser.h:2026
#define EM_LINEINDEX
Definition: winuser.h:2031
#define EM_GETLINECOUNT
Definition: winuser.h:2021

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_HelpAboutNotepad()

VOID DIALOG_HelpAboutNotepad ( VOID  )

Definition at line 961 of file dialog.c.

962{
963 TCHAR szNotepad[MAX_STRING_LEN];
964 TCHAR szNotepadAuthors[MAX_STRING_LEN];
965
966 LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, _countof(szNotepad));
967 LoadString(Globals.hInstance, STRING_NOTEPAD_AUTHORS, szNotepadAuthors, _countof(szNotepadAuthors));
968
969 ShellAbout(Globals.hMainWnd, szNotepad, szNotepadAuthors,
971}
#define STRING_NOTEPAD_AUTHORS
Definition: notepad_res.h:101
#define STRING_NOTEPAD
Definition: notepad_res.h:63
#define IDI_NPICON
Definition: notepad_res.h:19
#define ShellAbout
Definition: shellapi.h:737
#define LoadIcon
Definition: winuser.h:5979

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_HelpContents()

VOID DIALOG_HelpContents ( VOID  )

Definition at line 956 of file dialog.c.

957{
959}
static const TCHAR helpfile[]
Definition: dialog.c:19
#define WinHelp
Definition: winuser.h:6030
#define HELP_INDEX
Definition: winuser.h:2446

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_HelpLicense()

VOID DIALOG_HelpLicense ( VOID  )

◆ DIALOG_HelpNoWarranty()

VOID DIALOG_HelpNoWarranty ( VOID  )

◆ DIALOG_HelpSearch()

VOID DIALOG_HelpSearch ( VOID  )

◆ DIALOG_Replace()

VOID DIALOG_Replace ( VOID  )

Definition at line 838 of file dialog.c.

839{
841}
static VOID DIALOG_SearchDialog(FINDPROC pfnProc)
Definition: dialog.c:793
#define ReplaceText
Definition: commdlg.h:669

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_Search()

VOID DIALOG_Search ( VOID  )

Definition at line 820 of file dialog.c.

821{
823}
#define FindText
Definition: commdlg.h:663

Referenced by DIALOG_SearchNext(), and NOTEPAD_MenuCommand().

◆ DIALOG_SearchNext()

VOID DIALOG_SearchNext ( BOOL  bDown)

Definition at line 825 of file dialog.c.

826{
827 if (bDown)
828 Globals.find.Flags |= FR_DOWN;
829 else
830 Globals.find.Flags &= ~FR_DOWN;
831
832 if (Globals.find.lpstrFindWhat != NULL && *Globals.find.lpstrFindWhat)
834 else
836}
VOID DIALOG_Search(VOID)
Definition: dialog.c:820
BOOL NOTEPAD_FindNext(FINDREPLACE *pFindReplace, BOOL bReplace, BOOL bShowAlert)
Definition: main.c:132
#define FR_DOWN
Definition: commdlg.h:127

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_SelectFont()

VOID DIALOG_SelectFont ( VOID  )

Definition at line 768 of file dialog.c.

769{
771 LOGFONT lf = Globals.lfFont;
772
773 ZeroMemory( &cf, sizeof(cf) );
774 cf.lStructSize = sizeof(cf);
775 cf.hwndOwner = Globals.hMainWnd;
776 cf.lpLogFont = &lf;
778
779 if (ChooseFont(&cf))
780 {
781 HFONT currfont = Globals.hFont;
782
783 Globals.hFont = CreateFontIndirect(&lf);
784 Globals.lfFont = lf;
786 if (currfont != NULL)
787 DeleteObject(currfont);
788 }
789}
#define ChooseFont
Definition: commdlg.h:662
#define CF_INITTOLOGFONTSTRUCT
Definition: commdlg.h:66
#define CF_NOVERTFONTS
Definition: commdlg.h:86
#define CF_SCREENFONTS
Definition: commdlg.h:59
pKey DeleteObject()
#define CreateFontIndirect
Definition: wingdi.h:4890
#define WM_SETFONT
Definition: winuser.h:1678

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_StatusBarAlignParts()

VOID DIALOG_StatusBarAlignParts ( VOID  )

Definition at line 147 of file dialog.c.

148{
149 static const int defaultWidths[] = {120, 120, 120};
150 RECT rcStatusBar;
151 int parts[3];
152
153 GetClientRect(Globals.hStatusBar, &rcStatusBar);
154
155 parts[0] = rcStatusBar.right - (defaultWidths[1] + defaultWidths[2]);
156 parts[1] = rcStatusBar.right - defaultWidths[2];
157 parts[2] = -1; // the right edge of the status bar
158
159 parts[0] = max(parts[0], defaultWidths[0]);
160 parts[1] = max(parts[1], defaultWidths[0] + defaultWidths[1]);
161
163}
std::map< E_STRING, PART_TEST > parts
Definition: LocaleTests.cpp:69
#define SB_SETPARTS
Definition: commctrl.h:1959
LONG right
Definition: windef.h:108
#define max(a, b)
Definition: svc.c:63
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by NOTEPAD_WndProc().

◆ DIALOG_StatusBarUpdateCaretPos()

VOID DIALOG_StatusBarUpdateCaretPos ( VOID  )

Definition at line 933 of file dialog.c.

934{
935 int line, ich, col;
937 DWORD dwStart, dwSize;
938
939 SendMessage(Globals.hEdit, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwSize);
940 line = (int)SendMessage(Globals.hEdit, EM_LINEFROMCHAR, (WPARAM)dwStart, 0);
941 ich = (int)SendMessage(Globals.hEdit, EM_LINEINDEX, (WPARAM)line, 0);
942
943 /* EM_LINEINDEX can return -1 on failure */
944 col = ((ich < 0) ? 0 : (dwStart - ich));
945
946 StringCchPrintf(buff, _countof(buff), Globals.szStatusBarLineCol, line + 1, col + 1);
948}
#define SBPART_CURPOS
Definition: dialog.c:25
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
static unsigned char buff[32768]
Definition: fatten.c:17
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
#define SB_SETTEXT
Definition: commctrl.h:1954
#define StringCchPrintf
Definition: strsafe.h:517
Definition: parser.c:49

Referenced by DIALOG_StatusBarUpdateAll(), EDIT_WndProc(), and NOTEPAD_WndProc().

◆ DIALOG_StringMsgBox()

int DIALOG_StringMsgBox ( HWND  hParent,
int  formatId,
LPCTSTR  szString,
DWORD  dwFlags 
)

Definition at line 193 of file dialog.c.

194{
195 TCHAR szMessage[MAX_STRING_LEN];
196 TCHAR szResource[MAX_STRING_LEN];
197
198 /* Load and format szMessage */
199 LoadString(Globals.hInstance, formatId, szResource, _countof(szResource));
200 StringCchPrintf(szMessage, _countof(szMessage), szResource, szString);
201
202 /* Load szCaption */
204 LoadString(Globals.hInstance, STRING_ERROR, szResource, _countof(szResource));
205 else
206 LoadString(Globals.hInstance, STRING_NOTEPAD, szResource, _countof(szResource));
207
208 /* Display Modal Dialog */
209 // if (hParent == NULL)
210 // hParent = Globals.hMainWnd;
211 return MessageBox(hParent, szMessage, szResource, dwFlags);
212}
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define STRING_ERROR
Definition: notepad_res.h:64
#define MB_ICONMASK
Definition: winuser.h:830
#define MB_ICONEXCLAMATION
Definition: winuser.h:796
#define MessageBox
Definition: winuser.h:5988

Referenced by AlertFileDoesNotExist(), AlertFileNotFound(), AlertFileNotSaved(), and AlertPrintError().

◆ DIALOG_TimeDate()

VOID DIALOG_TimeDate ( VOID  )

◆ DIALOG_ViewStatusBar()

VOID DIALOG_ViewStatusBar ( VOID  )

Definition at line 950 of file dialog.c.

951{
952 Globals.bShowStatusBar = !Globals.bShowStatusBar;
954}

Referenced by NOTEPAD_MenuCommand().

◆ DoCloseFile()

BOOL DoCloseFile ( VOID  )

Returns: TRUE - User agreed to close (both save/don't save) FALSE - User cancelled close by selecting "Cancel"

Definition at line 311 of file dialog.c.

312{
313 int nResult;
314
315 if (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0))
316 {
317 /* prompt user to save changes */
318 nResult = AlertFileNotSaved(Globals.szFileName);
319 switch (nResult)
320 {
321 case IDYES:
322 if(!DIALOG_FileSave())
323 return FALSE;
324 break;
325
326 case IDNO:
327 break;
328
329 case IDCANCEL:
330 default:
331 return FALSE;
332 }
333 }
334
337
338 return TRUE;
339}
static const TCHAR empty_str[]
Definition: dialog.c:20
static int AlertFileNotSaved(LPCTSTR szFileName)
Definition: dialog.c:219
BOOL DIALOG_FileSave(VOID)
Definition: dialog.c:459
#define EM_GETMODIFY
Definition: winuser.h:2023
#define IDNO
Definition: winuser.h:847
#define IDYES
Definition: winuser.h:846

Referenced by DIALOG_FileNew(), DoOpenFile(), and NOTEPAD_WndProc().

◆ DoCreateEditWindow()

VOID DoCreateEditWindow ( VOID  )

Definition at line 667 of file dialog.c.

668{
669 DWORD dwStyle;
670 int iSize;
671 LPTSTR pTemp = NULL;
672 BOOL bModified = FALSE;
673
674 iSize = 0;
675
676 /* If the edit control already exists, try to save its content */
677 if (Globals.hEdit != NULL)
678 {
679 /* number of chars currently written into the editor. */
680 iSize = GetWindowTextLength(Globals.hEdit);
681 if (iSize)
682 {
683 /* Allocates temporary buffer. */
684 pTemp = HeapAlloc(GetProcessHeap(), 0, (iSize + 1) * sizeof(TCHAR));
685 if (!pTemp)
686 {
688 return;
689 }
690
691 /* Recover the text into the control. */
692 GetWindowText(Globals.hEdit, pTemp, iSize + 1);
693
694 if (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0))
695 bModified = TRUE;
696 }
697
698 /* Restore original window procedure */
700
701 /* Destroy the edit control */
702 DestroyWindow(Globals.hEdit);
703 }
704
705 /* Update wrap status into the main menu and recover style flags */
706 dwStyle = (Globals.bWrapLongLines ? EDIT_STYLE_WRAP : EDIT_STYLE);
707
708 /* Create the new edit control */
711 NULL,
712 dwStyle,
718 NULL,
720 NULL);
721 if (Globals.hEdit == NULL)
722 {
723 if (pTemp)
724 {
725 HeapFree(GetProcessHeap(), 0, pTemp);
726 }
727
729 return;
730 }
731
733 SendMessage(Globals.hEdit, EM_LIMITTEXT, 0, 0);
734
735 /* If some text was previously saved, restore it. */
736 if (iSize != 0)
737 {
738 SetWindowText(Globals.hEdit, pTemp);
739 HeapFree(GetProcessHeap(), 0, pTemp);
740
741 if (bModified)
743 }
744
745 /* Sub-class a new window callback for row/column detection. */
746 Globals.EditProc = (WNDPROC)SetWindowLongPtr(Globals.hEdit,
749
750 /* Finally shows new edit control and set focus into it. */
751 ShowWindow(Globals.hEdit, SW_SHOW);
752 SetFocus(Globals.hEdit);
753
754 /* Re-arrange controls */
756}
LRESULT CALLBACK EDIT_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: main.c:294
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
LPSTR LPTSTR
Definition: ms-dtyp.idl:131
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define EDIT_STYLE
Definition: notepad.h:33
#define EDIT_STYLE_WRAP
Definition: notepad.h:32
#define EDIT_CLASS
Definition: notepad.h:34
#define SetWindowLongPtr
Definition: treelist.c:70
#define GWLP_WNDPROC
Definition: treelist.c:66
#define CreateWindowEx
Definition: winuser.h:5921
#define EM_LIMITTEXT
Definition: winuser.h:2029
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_SIZE
Definition: winuser.h:1639
HWND WINAPI SetFocus(_In_opt_ HWND)
#define GetWindowText
Definition: winuser.h:5964
#define CW_USEDEFAULT
Definition: winuser.h:225
#define SW_SHOW
Definition: winuser.h:786
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:3014
BOOL WINAPI DestroyWindow(_In_ HWND)
#define EM_SETMODIFY
Definition: winuser.h:2042

Referenced by DIALOG_EditWrap(), and NOTEPAD_WndProc().

◆ DoOpenFile()

VOID DoOpenFile ( LPCTSTR  szFileName)

Definition at line 341 of file dialog.c.

342{
344 TCHAR log[5];
345 HLOCAL hOldLocal, hNewLocal;
346
347 /* Close any files and prompt to save changes */
348 if (!DoCloseFile())
349 return;
350
352 SetWindowText(Globals.hEdit, NULL);
353
357 {
359 goto done;
360 }
361
362 /* To make loading file quicker, we use the internal handle of EDIT control */
363 hOldLocal = (HLOCAL)SendMessageW(Globals.hEdit, EM_GETHANDLE, 0, 0);
364 hNewLocal = ReadText(hFile, &Globals.encFile, &Globals.iEoln);
365 if (!hNewLocal)
366 {
368 goto done;
369 }
370 SendMessageW(Globals.hEdit, EM_SETHANDLE, (WPARAM)hNewLocal, 0);
371 LocalFree(hOldLocal);
372 /* No need of EM_SETMODIFY and EM_EMPTYUNDOBUFFER here. EM_SETHANDLE does instead. */
373
374 SetFocus(Globals.hEdit);
375
376 /* If the file starts with .LOG, add a time/date at the end and set cursor after
377 * See http://web.archive.org/web/20090627165105/http://support.microsoft.com/kb/260563
378 */
379 if (GetWindowText(Globals.hEdit, log, _countof(log)) && !_tcscmp(log, _T(".LOG")))
380 {
381 static const TCHAR lf[] = _T("\r\n");
386 }
387
388 SetFileName(szFileName);
392
393done:
397}
VOID DIALOG_EditTimeDate(VOID)
Definition: dialog.c:617
#define CloseHandle
Definition: compat.h:739
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define GENERIC_READ
Definition: compat.h:135
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
#define FILE_SHARE_READ
Definition: compat.h:136
#define _tcscmp
Definition: tchar.h:1424
HANDLE HLOCAL
Definition: minwindef.h:199
#define OPEN_ALWAYS
Definition: disk.h:70
_In_ HANDLE hFile
Definition: mswsock.h:90
HLOCAL ReadText(HANDLE hFile, ENCODING *pencFile, EOLN *piEoln)
Definition: text.c:161
#define FILE_SHARE_WRITE
Definition: nt_native.h:681
#define log(outFile, fmt,...)
Definition: util.h:15
#define CreateFile
Definition: winbase.h:3498
#define EM_GETHANDLE
Definition: winuser.h:2018
#define EM_SETHANDLE
Definition: winuser.h:2038

Referenced by DIALOG_FileOpen().

◆ DoShowHideStatusBar()

VOID DoShowHideStatusBar ( VOID  )

Definition at line 633 of file dialog.c.

634{
635 /* Check if status bar object already exists. */
636 if (Globals.bShowStatusBar && Globals.hStatusBar == NULL)
637 {
638 /* Try to create the status bar */
640 NULL,
643
644 if (Globals.hStatusBar == NULL)
645 {
647 return;
648 }
649
650 /* Load the string for formatting column/row text output */
652 }
653
654 /* Update layout of controls */
656
657 if (Globals.hStatusBar == NULL)
658 return;
659
660 /* Update visibility of status bar */
661 ShowWindow(Globals.hStatusBar, (Globals.bShowStatusBar ? SW_SHOWNOACTIVATE : SW_HIDE));
662
663 /* Update status bar contents */
665}
#define CMD_STATUSBAR_WND_ID
Definition: notepad_res.h:54
#define STRING_LINE_COLUMN
Definition: notepad_res.h:89
#define WS_CHILD
Definition: pedump.c:617
#define CreateStatusWindow
Definition: commctrl.h:1938
#define CCS_BOTTOM
Definition: commctrl.h:2249
#define SBARS_SIZEGRIP
Definition: commctrl.h:1928
#define SW_HIDE
Definition: winuser.h:779
#define SW_SHOWNOACTIVATE
Definition: winuser.h:785

Referenced by DIALOG_EditWrap(), DIALOG_ViewStatusBar(), and NOTEPAD_WndProc().

◆ FileExists()

BOOL FileExists ( LPCTSTR  szFilename)

Returns: TRUE - if file exists FALSE - if file does not exist

Definition at line 235 of file dialog.c.

236{
237 return GetFileAttributes(szFilename) != INVALID_FILE_ATTRIBUTES;
238}
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
#define GetFileAttributes
Definition: winbase.h:3564

Referenced by DIALOG_FileOpen(), HandleCommandLine(), and ResourceToFile().

◆ HasFileExtension()

BOOL HasFileExtension ( LPCTSTR  szFilename)

Definition at line 240 of file dialog.c.

241{
242 LPCTSTR s;
243
244 s = _tcsrchr(szFilename, _T('\\'));
245 if (s)
246 szFilename = s;
247 return _tcsrchr(szFilename, _T('.')) != NULL;
248}
GLdouble s
Definition: gl.h:2039
#define _tcsrchr
Definition: tchar.h:1413
LPCSTR LPCTSTR
Definition: ms-dtyp.idl:130

Referenced by HandleCommandLine().

◆ ShowLastError()

VOID ShowLastError ( VOID  )

Definition at line 45 of file dialog.c.

46{
48 if (error != NO_ERROR)
49 {
50 LPTSTR lpMsgBuf = NULL;
52 TCHAR szFallback[42], *pszMessage = szFallback;
53
55
57 NULL,
58 error,
59 0,
60 (LPTSTR) &lpMsgBuf,
61 0,
62 NULL);
63
64 if (lpMsgBuf)
65 pszMessage = lpMsgBuf;
66 else
67 wsprintfW(szFallback, L"%d", error);
68
70 LocalFree(lpMsgBuf);
71 }
72}
#define NO_ERROR
Definition: dderror.h:5
#define L(x)
Definition: resources.c:13
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
#define error(str)
Definition: mkdosfs.c:1605
#define FormatMessage
Definition: winbase.h:3544
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:400
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:396
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define MB_ICONERROR
Definition: winuser.h:798
#define MB_OK
Definition: winuser.h:801

Referenced by _tWinMain(), DIALOG_FilePrint(), DoCreateEditWindow(), DoOpenFile(), DoSaveFile(), and DoShowHideStatusBar().

◆ UpdateWindowCaption()

void UpdateWindowCaption ( BOOL  clearModifyAlert)

Sets the caption of the main window according to Globals.szFileTitle: (untitled) - Notepad if no file is open [filename] - Notepad if a file is given

Definition at line 79 of file dialog.c.

80{
81 TCHAR szCaption[MAX_STRING_LEN];
82 TCHAR szNotepad[MAX_STRING_LEN];
83 TCHAR szFilename[MAX_STRING_LEN];
84 BOOL isModified;
85
86 if (clearModifyAlert)
87 {
88 /* When a file is being opened or created, there is no need to have
89 * the edited flag shown when the file has not been edited yet. */
90 isModified = FALSE;
91 }
92 else
93 {
94 /* Check whether the user has modified the file or not. If we are
95 * in the same state as before, don't change the caption. */
96 isModified = !!SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0);
97 if (isModified == Globals.bWasModified)
98 return;
99 }
100
101 /* Remember the state for later calls */
102 Globals.bWasModified = isModified;
103
104 /* Load the name of the application */
105 LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, _countof(szNotepad));
106
107 /* Determine if the file has been saved or if this is a new file */
108 if (Globals.szFileTitle[0] != 0)
109 StringCchCopy(szFilename, _countof(szFilename), Globals.szFileTitle);
110 else
111 LoadString(Globals.hInstance, STRING_UNTITLED, szFilename, _countof(szFilename));
112
113 /* Update the window caption based upon whether the user has modified the file or not */
114 StringCbPrintf(szCaption, sizeof(szCaption), _T("%s%s - %s"),
115 (isModified ? _T("*") : _T("")), szFilename, szNotepad);
116
117 SetWindowText(Globals.hMainWnd, szCaption);
118}
#define STRING_UNTITLED
Definition: notepad_res.h:67
#define StringCchCopy
Definition: strsafe.h:139
#define StringCbPrintf
Definition: strsafe.h:544

Referenced by DIALOG_FileSave(), DIALOG_FileSaveAs(), DoCloseFile(), and DoOpenFile().

◆ WaitCursor()

VOID WaitCursor ( BOOL  bBegin)

Definition at line 120 of file dialog.c.

121{
122 static HCURSOR s_hWaitCursor = NULL;
123 static HCURSOR s_hOldCursor = NULL;
124 static INT s_nLock = 0;
125
126 if (bBegin)
127 {
128 if (s_nLock++ == 0)
129 {
130 if (s_hWaitCursor == NULL)
131 s_hWaitCursor = LoadCursor(NULL, IDC_WAIT);
132 s_hOldCursor = SetCursor(s_hWaitCursor);
133 }
134 else
135 {
136 SetCursor(s_hWaitCursor);
137 }
138 }
139 else
140 {
141 if (--s_nLock == 0)
142 SetCursor(s_hOldCursor);
143 }
144}
HICON HCURSOR
Definition: windef.h:99
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
#define LoadCursor
Definition: winuser.h:5978
#define IDC_WAIT
Definition: winuser.h:697

Referenced by DIALOG_FileNew(), DIALOG_FileNewWindow(), DoOpenFile(), DoSaveFile(), and NOTEPAD_WndProc().