ReactOS  0.4.15-dev-3207-ga415bd4
dialog.c File Reference
#include "notepad.h"
#include <assert.h>
#include <commctrl.h>
#include <strsafe.h>
Include dependency graph for dialog.c:

Go to the source code of this file.

Typedefs

typedef HWND(WINAPIFINDPROC) (LPFINDREPLACE lpfr)
 

Functions

LRESULT CALLBACK EDIT_WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
static UINT_PTR CALLBACK DIALOG_PAGESETUP_Hook (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 
VOID ShowLastError (VOID)
 
void UpdateWindowCaption (BOOL clearModifyAlert)
 
int DIALOG_StringMsgBox (HWND hParent, int formatId, LPCTSTR szString, DWORD dwFlags)
 
static void AlertFileNotFound (LPCTSTR szFileName)
 
static int AlertFileNotSaved (LPCTSTR szFileName)
 
static void AlertPrintError (void)
 
BOOL FileExists (LPCTSTR szFilename)
 
BOOL HasFileExtension (LPCTSTR szFilename)
 
int GetSelectionTextLength (HWND hWnd)
 
int GetSelectionText (HWND hWnd, LPTSTR lpString, int nMaxCount)
 
static RECT GetPrintingRect (HDC hdc, RECT margins)
 
static BOOL DoSaveFile (VOID)
 
BOOL DoCloseFile (VOID)
 
VOID DoOpenFile (LPCTSTR szFileName)
 
VOID DIALOG_FileNew (VOID)
 
VOID DIALOG_FileNewWindow (VOID)
 
VOID DIALOG_FileOpen (VOID)
 
BOOL DIALOG_FileSave (VOID)
 
static UINT_PTR CALLBACK DIALOG_FileSaveAs_Hook (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 
BOOL DIALOG_FileSaveAs (VOID)
 
VOID DIALOG_FilePrint (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 DoCreateStatusBar (VOID)
 
VOID DoCreateEditWindow (VOID)
 
VOID DIALOG_EditWrap (VOID)
 
VOID DIALOG_SelectFont (VOID)
 
static VOID DIALOG_SearchDialog (FINDPROC pfnProc)
 
VOID DIALOG_Search (VOID)
 
VOID DIALOG_SearchNext (VOID)
 
VOID DIALOG_Replace (VOID)
 
static INT_PTR CALLBACK DIALOG_GoTo_DialogProc (HWND hwndDialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
VOID DIALOG_GoTo (VOID)
 
VOID DIALOG_StatusBarUpdateCaretPos (VOID)
 
VOID DIALOG_ViewStatusBar (VOID)
 
VOID DIALOG_HelpContents (VOID)
 
VOID DIALOG_HelpAboutNotepad (VOID)
 
VOID DIALOG_FilePageSetup (void)
 

Variables

static const TCHAR helpfile [] = _T("notepad.hlp")
 
static const TCHAR empty_str [] = _T("")
 
static const TCHAR szDefaultExt [] = _T("txt")
 
static const TCHAR txt_files [] = _T("*.txt")
 

Typedef Documentation

◆ FINDPROC

typedef HWND(WINAPI * FINDPROC) (LPFINDREPLACE lpfr)

Definition at line 1058 of file dialog.c.

Function Documentation

◆ AlertFileNotFound()

static void AlertFileNotFound ( LPCTSTR  szFileName)
static

Definition at line 122 of file dialog.c.

123 {
125 }
#define MB_ICONEXCLAMATION
Definition: winuser.h:779
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
int DIALOG_StringMsgBox(HWND hParent, int formatId, LPCTSTR szString, DWORD dwFlags)
Definition: dialog.c:101
#define MB_OK
Definition: winuser.h:784
#define STRING_NOTFOUND
Definition: notepad_res.h:87

Referenced by DIALOG_FileOpen().

◆ AlertFileNotSaved()

static int AlertFileNotSaved ( LPCTSTR  szFileName)
static

Definition at line 127 of file dialog.c.

128 {
129  TCHAR szUntitled[MAX_STRING_LEN];
130 
131  LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, ARRAY_SIZE(szUntitled));
132 
134  szFileName[0] ? szFileName : szUntitled,
136 }
#define MAX_STRING_LEN
Definition: precomp.h:36
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define STRING_NOTSAVED
Definition: notepad_res.h:85
#define MB_ICONQUESTION
Definition: winuser.h:783
#define MB_YESNOCANCEL
Definition: winuser.h:812
char TCHAR
Definition: xmlstorage.h:189
#define STRING_UNTITLED
Definition: notepad_res.h:79
int DIALOG_StringMsgBox(HWND hParent, int formatId, LPCTSTR szString, DWORD dwFlags)
Definition: dialog.c:101
#define ARRAY_SIZE(a)
Definition: main.h:24
HINSTANCE hInstance
Definition: precomp.h:43
#define LoadString
Definition: winuser.h:5795

Referenced by DoCloseFile().

◆ AlertPrintError()

static void AlertPrintError ( void  )
static

Definition at line 138 of file dialog.c.

139 {
140  TCHAR szUntitled[MAX_STRING_LEN];
141 
142  LoadString(Globals.hInstance, STRING_UNTITLED, szUntitled, ARRAY_SIZE(szUntitled));
143 
145  Globals.szFileName[0] ? Globals.szFileName : szUntitled,
147 }
#define MAX_STRING_LEN
Definition: precomp.h:36
#define MB_ICONEXCLAMATION
Definition: winuser.h:779
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define STRING_PRINTERROR
Definition: notepad_res.h:101
char TCHAR
Definition: xmlstorage.h:189
#define STRING_UNTITLED
Definition: notepad_res.h:79
int DIALOG_StringMsgBox(HWND hParent, int formatId, LPCTSTR szString, DWORD dwFlags)
Definition: dialog.c:101
#define ARRAY_SIZE(a)
Definition: main.h:24
#define MB_OK
Definition: winuser.h:784
HINSTANCE hInstance
Definition: precomp.h:43
#define LoadString
Definition: winuser.h:5795

Referenced by DIALOG_FilePrint().

◆ DIALOG_EditCopy()

VOID DIALOG_EditCopy ( VOID  )

Definition at line 803 of file dialog.c.

804 {
805  SendMessage(Globals.hEdit, WM_COPY, 0, 0);
806 }
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define WM_COPY
Definition: winuser.h:1845
#define SendMessage
Definition: winuser.h:5819

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditCut()

VOID DIALOG_EditCut ( VOID  )

Definition at line 798 of file dialog.c.

799 {
800  SendMessage(Globals.hEdit, WM_CUT, 0, 0);
801 }
#define WM_CUT
Definition: winuser.h:1844
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define SendMessage
Definition: winuser.h:5819

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditDelete()

VOID DIALOG_EditDelete ( VOID  )

Definition at line 813 of file dialog.c.

814 {
815  SendMessage(Globals.hEdit, WM_CLEAR, 0, 0);
816 }
#define WM_CLEAR
Definition: winuser.h:1847
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define SendMessage
Definition: winuser.h:5819

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditPaste()

VOID DIALOG_EditPaste ( VOID  )

Definition at line 808 of file dialog.c.

809 {
810  SendMessage(Globals.hEdit, WM_PASTE, 0, 0);
811 }
#define WM_PASTE
Definition: winuser.h:1846
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define SendMessage
Definition: winuser.h:5819

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditSelectAll()

VOID DIALOG_EditSelectAll ( VOID  )

Definition at line 818 of file dialog.c.

819 {
820  SendMessage(Globals.hEdit, EM_SETSEL, 0, (LPARAM)-1);
821 }
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
LONG_PTR LPARAM
Definition: windef.h:208
#define EM_SETSEL
Definition: winuser.h:2001
#define SendMessage
Definition: winuser.h:5819

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditTimeDate()

VOID DIALOG_EditTimeDate ( VOID  )

Definition at line 823 of file dialog.c.

824 {
825  SYSTEMTIME st;
826  TCHAR szDate[MAX_STRING_LEN];
827  TCHAR szText[MAX_STRING_LEN * 2 + 2];
828 
829  GetLocalTime(&st);
830 
832  _tcscpy(szText, szDate);
833  _tcscat(szText, _T(" "));
835  _tcscat(szText, szDate);
837 }
#define TRUE
Definition: types.h:120
#define LOCALE_USER_DEFAULT
_TCHAR * _tcscpy(_TCHAR *to, const _TCHAR *from)
Definition: tcscpy.h:8
#define MAX_STRING_LEN
Definition: precomp.h:36
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
static const WCHAR szText[]
Definition: dialog.c:139
LONG_PTR LPARAM
Definition: windef.h:208
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:286
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
#define GetTimeFormat
Definition: winnls.h:1189
#define GetDateFormat
Definition: winnls.h:1184
#define DATE_LONGDATE
Definition: winnls.h:197
#define NULL
Definition: types.h:112
#define SendMessage
Definition: winuser.h:5819
_TCHAR * _tcscat(_TCHAR *s, const _TCHAR *append)
Definition: tcscat.h:8
#define EM_REPLACESEL
Definition: winuser.h:1989

Referenced by DoOpenFile(), and NOTEPAD_MenuCommand().

◆ DIALOG_EditUndo()

VOID DIALOG_EditUndo ( VOID  )

Definition at line 793 of file dialog.c.

794 {
795  SendMessage(Globals.hEdit, EM_UNDO, 0, 0);
796 }
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define EM_UNDO
Definition: winuser.h:2004
#define SendMessage
Definition: winuser.h:5819

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_EditWrap()

VOID DIALOG_EditWrap ( VOID  )

Definition at line 1019 of file dialog.c.

1020 {
1021  Globals.bWrapLongLines = !Globals.bWrapLongLines;
1022 
1023  if (Globals.bWrapLongLines)
1024  {
1026  }
1027  else
1028  {
1030  }
1031 
1033 }
#define MF_DISABLED
Definition: winuser.h:130
#define MF_BYCOMMAND
Definition: winuser.h:202
#define CMD_GOTO
Definition: notepad_res.h:56
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
VOID DoCreateEditWindow(VOID)
Definition: dialog.c:917
#define MF_ENABLED
Definition: winuser.h:128
#define MF_GRAYED
Definition: winuser.h:129

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FileExit()

VOID DIALOG_FileExit ( VOID  )

Definition at line 788 of file dialog.c.

789 {
791 }
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define PostMessage
Definition: winuser.h:5808
r l[0]
Definition: byte_order.h:167
#define WM_CLOSE
Definition: winuser.h:1604

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FileNew()

VOID DIALOG_FileNew ( VOID  )

Definition at line 407 of file dialog.c.

408 {
409  /* Close any files and prompt to save changes */
410  if (DoCloseFile()) {
412  SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
413  SetFocus(Globals.hEdit);
415  }
416 }
static const TCHAR empty_str[]
Definition: dialog.c:32
HWND WINAPI SetFocus(_In_opt_ HWND)
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
BOOL DoCloseFile(VOID)
Definition: dialog.c:322
#define EM_EMPTYUNDOBUFFER
Definition: winuser.h:1968
#define SetWindowText
Definition: winuser.h:5833
VOID NOTEPAD_EnableSearchMenu()
Definition: main.c:34
#define SendMessage
Definition: winuser.h:5819

Referenced by _tWinMain(), and NOTEPAD_MenuCommand().

◆ DIALOG_FileNewWindow()

VOID DIALOG_FileNewWindow ( VOID  )

Definition at line 418 of file dialog.c.

419 {
420  TCHAR pszNotepadExe[MAX_PATH];
421  GetModuleFileName(NULL, pszNotepadExe, ARRAYSIZE(pszNotepadExe));
422  ShellExecute(NULL, NULL, pszNotepadExe, NULL, NULL, SW_SHOWNORMAL);
423 }
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define ShellExecute
Definition: shellapi.h:691
char TCHAR
Definition: xmlstorage.h:189
#define MAX_PATH
Definition: compat.h:34
#define GetModuleFileName
Definition: winbase.h:3687
#define SW_SHOWNORMAL
Definition: winuser.h:764
#define NULL
Definition: types.h:112

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FileOpen()

VOID DIALOG_FileOpen ( VOID  )

Definition at line 425 of file dialog.c.

426 {
427  OPENFILENAME openfilename;
429 
430  ZeroMemory(&openfilename, sizeof(openfilename));
431 
432  if (Globals.szFileName[0] == 0)
434  else
435  _tcscpy(szPath, Globals.szFileName);
436 
437  openfilename.lStructSize = sizeof(openfilename);
438  openfilename.hwndOwner = Globals.hMainWnd;
439  openfilename.hInstance = Globals.hInstance;
440  openfilename.lpstrFilter = Globals.szFilter;
441  openfilename.lpstrFile = szPath;
442  openfilename.nMaxFile = ARRAY_SIZE(szPath);
444  openfilename.lpstrDefExt = szDefaultExt;
445 
446  if (GetOpenFileName(&openfilename)) {
447  if (FileExists(openfilename.lpstrFile))
448  DoOpenFile(openfilename.lpstrFile);
449  else
450  AlertFileNotFound(openfilename.lpstrFile);
451  }
452 }
#define OFN_FILEMUSTEXIST
Definition: commdlg.h:106
#define OFN_EXPLORER
Definition: commdlg.h:104
VOID DoOpenFile(LPCTSTR szFileName)
Definition: dialog.c:354
HWND hwndOwner
Definition: commdlg.h:330
_TCHAR * _tcscpy(_TCHAR *to, const _TCHAR *from)
Definition: tcscpy.h:8
#define ZeroMemory
Definition: winbase.h:1664
LPCSTR lpstrDefExt
Definition: commdlg.h:345
static void AlertFileNotFound(LPCTSTR szFileName)
Definition: dialog.c:122
#define GetOpenFileName
Definition: commdlg.h:665
DWORD nMaxFile
Definition: commdlg.h:337
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
BOOL FileExists(LPCTSTR szFilename)
Definition: dialog.c:154
HINSTANCE hInstance
Definition: commdlg.h:331
static const TCHAR szDefaultExt[]
Definition: dialog.c:33
#define OFN_PATHMUSTEXIST
Definition: commdlg.h:117
char TCHAR
Definition: xmlstorage.h:189
#define MAX_PATH
Definition: compat.h:34
DWORD lStructSize
Definition: commdlg.h:329
static const TCHAR txt_files[]
Definition: dialog.c:34
#define OFN_HIDEREADONLY
Definition: commdlg.h:107
LPSTR lpstrFile
Definition: commdlg.h:336
LPCWSTR szPath
Definition: env.c:37
#define ARRAY_SIZE(a)
Definition: main.h:24
LPCSTR lpstrFilter
Definition: commdlg.h:332
HINSTANCE hInstance
Definition: precomp.h:43
DWORD Flags
Definition: commdlg.h:342

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FilePageSetup()

VOID DIALOG_FilePageSetup ( void  )

Definition at line 1225 of file dialog.c.

1226 {
1228 
1229  ZeroMemory(&page, sizeof(page));
1230  page.lStructSize = sizeof(page);
1231  page.hwndOwner = Globals.hMainWnd;
1233  page.hInstance = Globals.hInstance;
1234  page.rtMargin = Globals.lMargins;
1235  page.hDevMode = Globals.hDevMode;
1236  page.hDevNames = Globals.hDevNames;
1237  page.lpPageSetupTemplateName = MAKEINTRESOURCE(DIALOG_PAGESETUP);
1238  page.lpfnPageSetupHook = DIALOG_PAGESETUP_Hook;
1239 
1240  PageSetupDlg(&page);
1241 
1242  Globals.hDevMode = page.hDevMode;
1243  Globals.hDevNames = page.hDevNames;
1244  Globals.lMargins = page.rtMargin;
1245 }
static UINT_PTR CALLBACK DIALOG_PAGESETUP_Hook(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: dialog.c:1252
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define PSD_ENABLEPAGESETUPTEMPLATE
Definition: commdlg.h:184
#define PageSetupDlg
Definition: commdlg.h:667
#define PSD_MARGINS
Definition: commdlg.h:173
#define ZeroMemory
Definition: winbase.h:1664
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define DIALOG_PAGESETUP
Definition: notepad_res.h:25
Definition: module.h:566
#define PSD_ENABLEPAGESETUPHOOK
Definition: commdlg.h:183
HINSTANCE hInstance
Definition: precomp.h:43

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_FilePrint()

VOID DIALOG_FilePrint ( VOID  )

Definition at line 573 of file dialog.c.

574 {
575  DOCINFO di;
576  TEXTMETRIC tm;
577  PRINTDLG printer;
578  SIZE szMetric;
579  int border;
580  int xLeft, yTop, pagecount, dopage, copycount;
581  unsigned int i;
582  LOGFONT hdrFont;
583  HFONT font, old_font=0;
584  DWORD size;
585  LPTSTR pTemp;
586  static const TCHAR times_new_roman[] = _T("Times New Roman");
587  RECT rcPrintRect;
588 
589  /* Get a small font and print some header info on each page */
590  ZeroMemory(&hdrFont, sizeof(hdrFont));
591  hdrFont.lfHeight = 100;
592  hdrFont.lfWeight = FW_BOLD;
593  hdrFont.lfCharSet = ANSI_CHARSET;
596  hdrFont.lfQuality = PROOF_QUALITY;
598  _tcscpy(hdrFont.lfFaceName, times_new_roman);
599 
600  font = CreateFontIndirect(&hdrFont);
601 
602  /* Get Current Settings */
603  ZeroMemory(&printer, sizeof(printer));
604  printer.lStructSize = sizeof(printer);
605  printer.hwndOwner = Globals.hMainWnd;
606  printer.hInstance = Globals.hInstance;
607 
608  /* Set some default flags */
609  printer.Flags = PD_RETURNDC | PD_SELECTION;
610 
611  /* Disable the selection radio button if there is no text selected */
612  if (!GetSelectionTextLength(Globals.hEdit))
613  {
614  printer.Flags = printer.Flags | PD_NOSELECTION;
615  }
616 
617  printer.nFromPage = 0;
618  printer.nMinPage = 1;
619  /* we really need to calculate number of pages to set nMaxPage and nToPage */
620  printer.nToPage = (WORD)-1;
621  printer.nMaxPage = (WORD)-1;
622 
623  /* Let commdlg manage copy settings */
624  printer.nCopies = (WORD)PD_USEDEVMODECOPIES;
625 
626  printer.hDevMode = Globals.hDevMode;
627  printer.hDevNames = Globals.hDevNames;
628 
629  if (!PrintDlg(&printer))
630  {
632  return;
633  }
634 
635  Globals.hDevMode = printer.hDevMode;
636  Globals.hDevNames = printer.hDevNames;
637 
638  assert(printer.hDC != 0);
639 
640  /* initialize DOCINFO */
641  di.cbSize = sizeof(DOCINFO);
642  di.lpszDocName = Globals.szFileTitle;
643  di.lpszOutput = NULL;
644  di.lpszDatatype = NULL;
645  di.fwType = 0;
646 
647  if (StartDoc(printer.hDC, &di) <= 0)
648  {
650  return;
651  }
652 
653 
654  /* Get the file text */
655  if (printer.Flags & PD_SELECTION)
656  {
657  size = GetSelectionTextLength(Globals.hEdit) + 1;
658  }
659  else
660  {
661  size = GetWindowTextLength(Globals.hEdit) + 1;
662  }
663 
664  pTemp = HeapAlloc(GetProcessHeap(), 0, size * sizeof(TCHAR));
665  if (!pTemp)
666  {
667  EndDoc(printer.hDC);
669  ShowLastError();
670  return;
671  }
672 
673  if (printer.Flags & PD_SELECTION)
674  {
675  size = GetSelectionText(Globals.hEdit, pTemp, size);
676  }
677  else
678  {
679  size = GetWindowText(Globals.hEdit, pTemp, size);
680  }
681 
682  /* Get the current printing area */
683  rcPrintRect = GetPrintingRect(printer.hDC, Globals.lMargins);
684 
685  /* Ensure that each logical unit maps to one pixel */
686  SetMapMode(printer.hDC, MM_TEXT);
687 
688  /* Needed to get the correct height of a text line */
689  GetTextMetrics(printer.hDC, &tm);
690 
691  border = 15;
692  for (copycount=1; copycount <= printer.nCopies; copycount++) {
693  i = 0;
694  pagecount = 1;
695  do {
696  /* Don't start a page if none of the conditions below are true */
697  dopage = 0;
698 
699  /* The user wants to print the current selection */
700  if (printer.Flags & PD_SELECTION)
701  {
702  dopage = 1;
703  }
704 
705  /* The user wants to print the entire document */
706  if (!(printer.Flags & PD_PAGENUMS) && !(printer.Flags & PD_SELECTION))
707  {
708  dopage = 1;
709  }
710 
711  /* The user wants to print a specified range of pages */
712  if ((pagecount >= printer.nFromPage && pagecount <= printer.nToPage))
713  {
714  dopage = 1;
715  }
716 
717  old_font = SelectObject(printer.hDC, font);
718 
719  if (dopage) {
720  if (StartPage(printer.hDC) <= 0) {
721  SelectObject(printer.hDC, old_font);
722  EndDoc(printer.hDC);
723  DeleteDC(printer.hDC);
724  HeapFree(GetProcessHeap(), 0, pTemp);
726  AlertPrintError();
727  return;
728  }
729 
730  SetViewportOrgEx(printer.hDC, rcPrintRect.left, rcPrintRect.top, NULL);
731 
732  /* Write a rectangle and header at the top of each page */
733  Rectangle(printer.hDC, border, border, rcPrintRect.right - border, border + tm.tmHeight * 2);
734  /* I don't know what's up with this TextOut command. This comes out
735  kind of mangled.
736  */
737  TextOut(printer.hDC,
738  border * 2,
739  border + tm.tmHeight / 2,
740  Globals.szFileTitle,
741  lstrlen(Globals.szFileTitle));
742  }
743 
744  /* The starting point for the main text */
745  xLeft = 0;
746  yTop = border + tm.tmHeight * 4;
747 
748  SelectObject(printer.hDC, old_font);
749 
750  /* Since outputting strings is giving me problems, output the main
751  * text one character at a time. */
752  do {
753  if (pTemp[i] == '\n') {
754  xLeft = 0;
755  yTop += tm.tmHeight;
756  }
757  else if (pTemp[i] != '\r') {
758  if (dopage)
759  TextOut(printer.hDC, xLeft, yTop, &pTemp[i], 1);
760 
761  /* We need to get the width for each individual char, since a proportional font may be used */
762  GetTextExtentPoint32(printer.hDC, &pTemp[i], 1, &szMetric);
763  xLeft += szMetric.cx;
764 
765  /* Insert a line break if the current line does not fit into the printing area */
766  if (xLeft > rcPrintRect.right)
767  {
768  xLeft = 0;
769  yTop = yTop + tm.tmHeight;
770  }
771  }
772  } while (i++ < size && yTop < rcPrintRect.bottom);
773 
774  if (dopage)
775  EndPage(printer.hDC);
776  pagecount++;
777  } while (i < size);
778  }
779 
780  if (old_font != 0)
781  SelectObject(printer.hDC, old_font);
782  EndDoc(printer.hDC);
783  DeleteDC(printer.hDC);
784  HeapFree(GetProcessHeap(), 0, pTemp);
786 }
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
Definition: coord.c:655
#define PD_NOSELECTION
Definition: commdlg.h:149
WORD nMaxPage
Definition: commdlg.h:474
#define VARIABLE_PITCH
Definition: wingdi.h:444
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
Definition: mk_font.cpp:20
LONG top
Definition: windef.h:307
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1499
_TCHAR * _tcscpy(_TCHAR *to, const _TCHAR *from)
Definition: tcscpy.h:8
#define assert(x)
Definition: debug.h:53
#define ZeroMemory
Definition: winbase.h:1664
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
BYTE lfCharSet
Definition: dimm.idl:50
WORD nCopies
Definition: commdlg.h:475
LONG left
Definition: windef.h:306
#define GetTextMetrics
Definition: wingdi.h:4473
LONG right
Definition: windef.h:308
#define PROOF_QUALITY
Definition: wingdi.h:437
CHAR * LPTSTR
Definition: xmlstorage.h:192
int WINAPI EndPage(_In_ HDC)
static RECT GetPrintingRect(HDC hdc, RECT margins)
Definition: dialog.c:243
BYTE lfOutPrecision
Definition: dimm.idl:51
WORD nMinPage
Definition: commdlg.h:473
#define GetWindowText
Definition: winuser.h:5774
int WINAPI StartPage(_In_ HDC)
#define PrintDlg
Definition: commdlg.h:668
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
int WINAPI SetMapMode(_In_ HDC, _In_ int)
LONG lfHeight
Definition: dimm.idl:42
#define CLIP_DEFAULT_PRECIS
Definition: wingdi.h:425
LONG lfWeight
Definition: dimm.idl:46
WORD nFromPage
Definition: commdlg.h:471
int GetSelectionText(HWND hWnd, LPTSTR lpString, int nMaxCount)
Definition: dialog.c:185
LONG cx
Definition: windef.h:334
#define PD_SELECTION
Definition: commdlg.h:147
#define PD_RETURNDC
Definition: commdlg.h:155
BYTE lfPitchAndFamily
Definition: dimm.idl:54
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
DWORD fwType
Definition: wingdi.h:1679
VOID ShowLastError(VOID)
Definition: dialog.c:38
GLsizeiptr size
Definition: glext.h:5919
LPCSTR lpszOutput
Definition: wingdi.h:1677
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
GLint GLint GLsizei GLsizei GLsizei GLint border
Definition: gl.h:1546
unsigned short WORD
Definition: ntddk_ex.h:93
#define OUT_DEFAULT_PRECIS
Definition: wingdi.h:414
unsigned long DWORD
Definition: ntddk_ex.h:95
HGLOBAL hDevMode
Definition: commdlg.h:467
#define PD_PAGENUMS
Definition: commdlg.h:148
LPCSTR lpszDatatype
Definition: wingdi.h:1678
#define PD_USEDEVMODECOPIES
Definition: commdlg.h:165
Definition: time.h:68
#define FF_ROMAN
Definition: wingdi.h:449
int cbSize
Definition: wingdi.h:1675
BYTE lfQuality
Definition: dimm.idl:53
HWND hwndOwner
Definition: commdlg.h:466
#define lstrlen
Definition: winbase.h:3732
#define FW_BOLD
Definition: wingdi.h:377
HINSTANCE hInstance
Definition: commdlg.h:476
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
BOOL WINAPI DeleteDC(_In_ HDC)
LPCSTR lpszDocName
Definition: wingdi.h:1676
BYTE lfClipPrecision
Definition: dimm.idl:52
HGLOBAL hDevNames
Definition: commdlg.h:468
#define CreateFontIndirect
Definition: wingdi.h:4443
#define NULL
Definition: types.h:112
DWORD lStructSize
Definition: commdlg.h:465
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
WORD nToPage
Definition: commdlg.h:472
#define MM_TEXT
Definition: wingdi.h:872
#define GetTextExtentPoint32
Definition: wingdi.h:4471
#define TextOut
Definition: wingdi.h:4482
#define GetWindowTextLength
Definition: winuser.h:5775
CHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:55
LONG bottom
Definition: windef.h:309
DWORD Flags
Definition: commdlg.h:470
#define StartDoc
Definition: wingdi.h:4481
static void AlertPrintError(void)
Definition: dialog.c:138
int GetSelectionTextLength(HWND hWnd)
Definition: dialog.c:175
#define ANSI_CHARSET
Definition: wingdi.h:382
HINSTANCE hInstance
Definition: precomp.h:43
HDC hDC
Definition: commdlg.h:469
#define HeapFree(x, y, z)
Definition: compat.h:594
DOCINFOA DOCINFO
Definition: wingdi.h:4413
int WINAPI EndDoc(_In_ HDC)

Referenced by HandleCommandLine(), and NOTEPAD_MenuCommand().

◆ DIALOG_FileSave()

BOOL DIALOG_FileSave ( VOID  )

Definition at line 454 of file dialog.c.

455 {
456  if (Globals.szFileName[0] == 0)
457  {
458  return DIALOG_FileSaveAs();
459  }
460  else if (DoSaveFile())
461  {
463  return TRUE;
464  }
465  return FALSE;
466 }
void UpdateWindowCaption(BOOL clearModifyAlert)
Definition: dialog.c:66
static BOOL DoSaveFile(VOID)
Definition: dialog.c:267
#define TRUE
Definition: types.h:120
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FALSE
Definition: types.h:117
BOOL DIALOG_FileSaveAs(VOID)
Definition: dialog.c:526

Referenced by DoCloseFile(), and NOTEPAD_MenuCommand().

◆ DIALOG_FileSaveAs()

BOOL DIALOG_FileSaveAs ( VOID  )

Definition at line 526 of file dialog.c.

527 {
528  OPENFILENAME saveas;
530 
531  ZeroMemory(&saveas, sizeof(saveas));
532 
533  if (Globals.szFileName[0] == 0)
535  else
536  _tcscpy(szPath, Globals.szFileName);
537 
538  saveas.lStructSize = sizeof(OPENFILENAME);
539  saveas.hwndOwner = Globals.hMainWnd;
540  saveas.hInstance = Globals.hInstance;
541  saveas.lpstrFilter = Globals.szFilter;
542  saveas.lpstrFile = szPath;
543  saveas.nMaxFile = ARRAY_SIZE(szPath);
546  saveas.lpstrDefExt = szDefaultExt;
549 
550  if (GetSaveFileName(&saveas))
551  {
552  /* HACK: Because in ROS, Save-As boxes don't check the validity
553  * of file names and thus, here, szPath can be invalid !! We only
554  * see its validity when we call DoSaveFile()... */
556  if (DoSaveFile())
557  {
559  return TRUE;
560  }
561  else
562  {
563  SetFileName(_T(""));
564  return FALSE;
565  }
566  }
567  else
568  {
569  return FALSE;
570  }
571 }
void UpdateWindowCaption(BOOL clearModifyAlert)
Definition: dialog.c:66
#define OFN_EXPLORER
Definition: commdlg.h:104
#define MAKEINTRESOURCE
Definition: winuser.h:591
static UINT_PTR CALLBACK DIALOG_FileSaveAs_Hook(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: dialog.c:470
HWND hwndOwner
Definition: commdlg.h:330
static BOOL DoSaveFile(VOID)
Definition: dialog.c:267
#define TRUE
Definition: types.h:120
_TCHAR * _tcscpy(_TCHAR *to, const _TCHAR *from)
Definition: tcscpy.h:8
#define ZeroMemory
Definition: winbase.h:1664
LPCSTR lpstrDefExt
Definition: commdlg.h:345
LPCSTR lpTemplateName
Definition: commdlg.h:348
DWORD nMaxFile
Definition: commdlg.h:337
#define GetSaveFileName
Definition: commdlg.h:666
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
LPOFNHOOKPROC lpfnHook
Definition: commdlg.h:347
#define FALSE
Definition: types.h:117
#define OFN_ENABLEHOOK
Definition: commdlg.h:99
#define OFN_ENABLETEMPLATE
Definition: commdlg.h:102
HINSTANCE hInstance
Definition: commdlg.h:331
static const TCHAR szDefaultExt[]
Definition: dialog.c:33
OPENFILENAMEA OPENFILENAME
Definition: commdlg.h:657
#define OFN_PATHMUSTEXIST
Definition: commdlg.h:117
static VOID SetFileName(PCONSOLE_CHILDFRM_WND Info, PWSTR pFileName)
Definition: console.c:179
#define DIALOG_ENCODING
Definition: notepad_res.h:27
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
#define MAX_PATH
Definition: compat.h:34
DWORD lStructSize
Definition: commdlg.h:329
static const TCHAR txt_files[]
Definition: dialog.c:34
#define OFN_HIDEREADONLY
Definition: commdlg.h:107
LPSTR lpstrFile
Definition: commdlg.h:336
LPCWSTR szPath
Definition: env.c:37
#define ARRAY_SIZE(a)
Definition: main.h:24
#define OFN_OVERWRITEPROMPT
Definition: commdlg.h:116
LPCSTR lpstrFilter
Definition: commdlg.h:332
HINSTANCE hInstance
Definition: precomp.h:43
DWORD Flags
Definition: commdlg.h:342

Referenced by DIALOG_FileSave(), and NOTEPAD_MenuCommand().

◆ DIALOG_FileSaveAs_Hook()

static UINT_PTR CALLBACK DIALOG_FileSaveAs_Hook ( HWND  hDlg,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 470 of file dialog.c.

471 {
472  TCHAR szText[128];
473  HWND hCombo;
474 
476 
477  switch(msg)
478  {
479  case WM_INITDIALOG:
480  hCombo = GetDlgItem(hDlg, ID_ENCODING);
481 
483  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
484 
486  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
487 
489  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
490 
492  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
493 
494  SendMessage(hCombo, CB_SETCURSEL, Globals.encFile, 0);
495 
496  hCombo = GetDlgItem(hDlg, ID_EOLN);
497 
499  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
500 
502  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
503 
505  SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM) szText);
506 
507  SendMessage(hCombo, CB_SETCURSEL, Globals.iEoln, 0);
508  break;
509 
510  case WM_NOTIFY:
511  if (((NMHDR *) lParam)->code == CDN_FILEOK)
512  {
513  hCombo = GetDlgItem(hDlg, ID_ENCODING);
514  if (hCombo)
515  Globals.encFile = (ENCODING) SendMessage(hCombo, CB_GETCURSEL, 0, 0);
516 
517  hCombo = GetDlgItem(hDlg, ID_EOLN);
518  if (hCombo)
519  Globals.iEoln = (int) SendMessage(hCombo, CB_GETCURSEL, 0, 0);
520  }
521  break;
522  }
523  return 0;
524 }
#define STRING_LF
Definition: notepad_res.h:97
#define STRING_ANSI
Definition: notepad_res.h:91
#define STRING_UTF8
Definition: notepad_res.h:94
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define CB_GETCURSEL
Definition: winuser.h:1926
WPARAM wParam
Definition: combotst.c:138
#define ID_ENCODING
Definition: notepad_res.h:28
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
static const WCHAR szText[]
Definition: dialog.c:139
#define CB_ADDSTRING
Definition: winuser.h:1919
LONG_PTR LPARAM
Definition: windef.h:208
#define STRING_UNICODE_BE
Definition: notepad_res.h:93
#define STRING_CRLF
Definition: notepad_res.h:96
char TCHAR
Definition: xmlstorage.h:189
#define CDN_FILEOK
Definition: commdlg.h:38
#define ID_EOLN
Definition: notepad_res.h:29
#define CB_SETCURSEL
Definition: winuser.h:1944
Definition: inflate.c:139
ENCODING
Definition: more.c:491
#define ARRAY_SIZE(a)
Definition: main.h:24
#define msg(x)
Definition: auth_time.c:54
#define STRING_UNICODE
Definition: notepad_res.h:92
#define SendMessage
Definition: winuser.h:5819
HWND WINAPI GetDlgItem(HWND hDlg, int nIDDlgItem)
Definition: dialog.c:2181
HINSTANCE hInstance
Definition: precomp.h:43
#define WM_INITDIALOG
Definition: winuser.h:1722
LPARAM lParam
Definition: combotst.c:139
#define STRING_CR
Definition: notepad_res.h:98
#define LoadString
Definition: winuser.h:5795
#define WM_NOTIFY
Definition: richedit.h:61
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31

Referenced by DIALOG_FileSaveAs().

◆ DIALOG_GoTo()

VOID DIALOG_GoTo ( VOID  )

Definition at line 1139 of file dialog.c.

1140 {
1141  INT_PTR nLine;
1142  LPTSTR pszText;
1143  int nLength, i;
1144  DWORD dwStart, dwEnd;
1145 
1147  pszText = (LPTSTR) HeapAlloc(GetProcessHeap(), 0, (nLength + 1) * sizeof(*pszText));
1148  if (!pszText)
1149  return;
1150 
1151  /* Retrieve current text */
1152  GetWindowText(Globals.hEdit, pszText, nLength + 1);
1153  SendMessage(Globals.hEdit, EM_GETSEL, (WPARAM) &dwStart, (LPARAM) &dwEnd);
1154 
1155  nLine = 1;
1156  for (i = 0; (i < (int) dwStart) && pszText[i]; i++)
1157  {
1158  if (pszText[i] == '\n')
1159  nLine++;
1160  }
1161 
1164  Globals.hMainWnd,
1166  nLine);
1167 
1168  if (nLine >= 1)
1169  {
1170  for (i = 0; pszText[i] && (nLine > 1) && (i < nLength - 1); i++)
1171  {
1172  if (pszText[i] == '\n')
1173  nLine--;
1174  }
1175  SendMessage(Globals.hEdit, EM_SETSEL, i, i);
1176  SendMessage(Globals.hEdit, EM_SCROLLCARET, 0, 0);
1177  }
1178  HeapFree(GetProcessHeap(), 0, pszText);
1179 }
#define MAKEINTRESOURCE
Definition: winuser.h:591
_In_ DWORD nLength
Definition: wincon.h:473
UINT_PTR WPARAM
Definition: windef.h:207
int32_t INT_PTR
Definition: typedefs.h:64
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define GetWindowText
Definition: winuser.h:5774
#define EM_GETSEL
Definition: winuser.h:1980
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
LONG_PTR LPARAM
Definition: windef.h:208
#define DIALOG_GOTO
Definition: notepad_res.h:30
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define EM_SETSEL
Definition: winuser.h:2001
unsigned long DWORD
Definition: ntddk_ex.h:95
#define DialogBoxParam
Definition: winuser.h:5740
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define SendMessage
Definition: winuser.h:5819
#define GetWindowTextLength
Definition: winuser.h:5775
HINSTANCE hInstance
Definition: precomp.h:43
#define HeapFree(x, y, z)
Definition: compat.h:594
#define EM_SCROLLCARET
Definition: richedit.h:81
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
static INT_PTR CALLBACK DIALOG_GoTo_DialogProc(HWND hwndDialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialog.c:1105

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_GoTo_DialogProc()

static INT_PTR CALLBACK DIALOG_GoTo_DialogProc ( HWND  hwndDialog,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 1105 of file dialog.c.

1106 {
1107  BOOL bResult = FALSE;
1108  HWND hTextBox;
1109  TCHAR szText[32];
1110 
1111  switch(uMsg) {
1112  case WM_INITDIALOG:
1113  hTextBox = GetDlgItem(hwndDialog, ID_LINENUMBER);
1115  SetWindowText(hTextBox, szText);
1116  break;
1117  case WM_COMMAND:
1118  if (HIWORD(wParam) == BN_CLICKED)
1119  {
1120  if (LOWORD(wParam) == IDOK)
1121  {
1122  hTextBox = GetDlgItem(hwndDialog, ID_LINENUMBER);
1123  GetWindowText(hTextBox, szText, ARRAY_SIZE(szText));
1124  EndDialog(hwndDialog, _ttoi(szText));
1125  bResult = TRUE;
1126  }
1127  else if (LOWORD(wParam) == IDCANCEL)
1128  {
1129  EndDialog(hwndDialog, 0);
1130  bResult = TRUE;
1131  }
1132  }
1133  break;
1134  }
1135 
1136  return bResult;
1137 }
#define IDOK
Definition: winuser.h:824
#define TRUE
Definition: types.h:120
WPARAM wParam
Definition: combotst.c:138
#define GetWindowText
Definition: winuser.h:5774
#define FALSE
Definition: types.h:117
static const WCHAR szText[]
Definition: dialog.c:139
unsigned int BOOL
Definition: ntddk_ex.h:94
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
#define BN_CLICKED
Definition: winuser.h:1908
#define _sntprintf
Definition: xmlstorage.h:201
#define WM_COMMAND
Definition: winuser.h:1723
BOOL WINAPI EndDialog(HWND hwnd, INT_PTR retval)
Definition: dialog.c:2083
#define ARRAY_SIZE(a)
Definition: main.h:24
int CDECL _ttoi(const _TCHAR *str)
Definition: atoi.c:10
#define SetWindowText
Definition: winuser.h:5833
#define ID_LINENUMBER
Definition: notepad_res.h:31
HWND WINAPI GetDlgItem(HWND hDlg, int nIDDlgItem)
Definition: dialog.c:2181
#define HIWORD(l)
Definition: typedefs.h:247
#define IDCANCEL
Definition: winuser.h:825
#define WM_INITDIALOG
Definition: winuser.h:1722
LPARAM lParam
Definition: combotst.c:139
#define LOWORD(l)
Definition: pedump.c:82

Referenced by DIALOG_GoTo().

◆ DIALOG_HelpAboutNotepad()

VOID DIALOG_HelpAboutNotepad ( VOID  )

Definition at line 1207 of file dialog.c.

1208 {
1209  TCHAR szNotepad[MAX_STRING_LEN];
1210  TCHAR szNotepadAuthors[MAX_STRING_LEN];
1211 
1213 
1214  LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, ARRAY_SIZE(szNotepad));
1215  LoadString(Globals.hInstance, STRING_NOTEPAD_AUTHORS, szNotepadAuthors, ARRAY_SIZE(szNotepadAuthors));
1216 
1217  ShellAbout(Globals.hMainWnd, szNotepad, szNotepadAuthors, notepadIcon);
1218  DeleteObject(notepadIcon);
1219 }
#define MAKEINTRESOURCE
Definition: winuser.h:591
static HICON
Definition: imagelist.c:84
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
#define MAX_STRING_LEN
Definition: precomp.h:36
#define STRING_NOTEPAD_AUTHORS
Definition: notepad_res.h:105
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define STRING_NOTEPAD
Definition: notepad_res.h:75
char TCHAR
Definition: xmlstorage.h:189
#define ShellAbout
Definition: shellapi.h:690
#define ARRAY_SIZE(a)
Definition: main.h:24
#define IDI_NPICON
Definition: notepad_res.h:32
#define LoadIcon
Definition: winuser.h:5789
HINSTANCE hInstance
Definition: precomp.h:43
#define LoadString
Definition: winuser.h:5795

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_HelpContents()

VOID DIALOG_HelpContents ( VOID  )

Definition at line 1202 of file dialog.c.

1203 {
1205 }
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define HELP_INDEX
Definition: winuser.h:2386
static const TCHAR helpfile[]
Definition: dialog.c:31
#define WinHelp
Definition: winuser.h:5840

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_PAGESETUP_Hook()

static UINT_PTR CALLBACK DIALOG_PAGESETUP_Hook ( HWND  hDlg,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 1252 of file dialog.c.

1253 {
1254  switch (msg)
1255  {
1256  case WM_COMMAND:
1257  if (HIWORD(wParam) == BN_CLICKED)
1258  {
1259  switch (LOWORD(wParam))
1260  {
1261  case IDOK:
1262  /* save user input and close dialog */
1263  GetDlgItemText(hDlg, 0x141, Globals.szHeader, ARRAY_SIZE(Globals.szHeader));
1264  GetDlgItemText(hDlg, 0x143, Globals.szFooter, ARRAY_SIZE(Globals.szFooter));
1265  return FALSE;
1266 
1267  case IDCANCEL:
1268  /* discard user input and close dialog */
1269  return FALSE;
1270 
1271  case IDHELP:
1272  {
1273  /* FIXME: Bring this to work */
1274  static const TCHAR sorry[] = _T("Sorry, no help available");
1275  static const TCHAR help[] = _T("Help");
1277  return TRUE;
1278  }
1279 
1280  default:
1281  break;
1282  }
1283  }
1284  break;
1285 
1286  case WM_INITDIALOG:
1287  /* fetch last user input prior to display dialog */
1288  SetDlgItemText(hDlg, 0x141, Globals.szHeader);
1289  SetDlgItemText(hDlg, 0x143, Globals.szFooter);
1290  break;
1291  }
1292 
1293  return FALSE;
1294 }
#define IDOK
Definition: winuser.h:824
#define TRUE
Definition: types.h:120
WPARAM wParam
Definition: combotst.c:138
#define IDHELP
Definition: resource_2.h:8
#define MB_ICONEXCLAMATION
Definition: winuser.h:779
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FALSE
Definition: types.h:117
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
#define GetDlgItemText
Definition: winuser.h:5761
#define BN_CLICKED
Definition: winuser.h:1908
#define SetDlgItemText
Definition: winuser.h:5825
#define MessageBox
Definition: winuser.h:5798
#define WM_COMMAND
Definition: winuser.h:1723
#define ARRAY_SIZE(a)
Definition: main.h:24
#define msg(x)
Definition: auth_time.c:54
#define HIWORD(l)
Definition: typedefs.h:247
#define IDCANCEL
Definition: winuser.h:825
int help
Definition: sort.c:20
#define WM_INITDIALOG
Definition: winuser.h:1722
#define LOWORD(l)
Definition: pedump.c:82

Referenced by DIALOG_FilePageSetup().

◆ DIALOG_Replace()

VOID DIALOG_Replace ( VOID  )

Definition at line 1098 of file dialog.c.

1099 {
1101 }
#define ReplaceText
Definition: commdlg.h:669
static VOID DIALOG_SearchDialog(FINDPROC pfnProc)
Definition: dialog.c:1060

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_Search()

VOID DIALOG_Search ( VOID  )

Definition at line 1085 of file dialog.c.

1086 {
1088 }
static VOID DIALOG_SearchDialog(FINDPROC pfnProc)
Definition: dialog.c:1060
#define FindText
Definition: commdlg.h:663

Referenced by DIALOG_SearchNext(), and NOTEPAD_MenuCommand().

◆ DIALOG_SearchDialog()

static VOID DIALOG_SearchDialog ( FINDPROC  pfnProc)
static

Definition at line 1060 of file dialog.c.

1061 {
1062  if (Globals.hFindReplaceDlg != NULL)
1063  {
1064  SetFocus(Globals.hFindReplaceDlg);
1065  return;
1066  }
1067 
1068  ZeroMemory(&Globals.find, sizeof(Globals.find));
1069  Globals.find.lStructSize = sizeof(Globals.find);
1070  Globals.find.hwndOwner = Globals.hMainWnd;
1072  Globals.find.lpstrFindWhat = Globals.szFindText;
1073  Globals.find.wFindWhatLen = ARRAY_SIZE(Globals.szFindText);
1074  Globals.find.lpstrReplaceWith = Globals.szReplaceText;
1075  Globals.find.wReplaceWithLen = ARRAY_SIZE(Globals.szReplaceText);
1076  Globals.find.Flags = FR_DOWN;
1077 
1078  /* We only need to create the modal FindReplace dialog which will */
1079  /* notify us of incoming events using hMainWnd Window Messages */
1080 
1081  Globals.hFindReplaceDlg = pfnProc(&Globals.find);
1082  assert(Globals.hFindReplaceDlg != NULL);
1083 }
#define assert(x)
Definition: debug.h:53
#define ZeroMemory
Definition: winbase.h:1664
HWND WINAPI SetFocus(_In_opt_ HWND)
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define ARRAY_SIZE(a)
Definition: main.h:24
#define NULL
Definition: types.h:112
#define FR_DOWN
Definition: commdlg.h:127
HINSTANCE hInstance
Definition: precomp.h:43

Referenced by DIALOG_Replace(), and DIALOG_Search().

◆ DIALOG_SearchNext()

VOID DIALOG_SearchNext ( VOID  )

Definition at line 1090 of file dialog.c.

1091 {
1092  if (Globals.find.lpstrFindWhat != NULL)
1094  else
1095  DIALOG_Search();
1096 }
VOID DIALOG_Search(VOID)
Definition: dialog.c:1085
#define TRUE
Definition: types.h:120
BOOL NOTEPAD_FindNext(FINDREPLACE *pFindReplace, BOOL bReplace, BOOL bShowAlert)
Definition: main.c:144
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FALSE
Definition: types.h:117
#define NULL
Definition: types.h:112

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_SelectFont()

VOID DIALOG_SelectFont ( VOID  )

Definition at line 1035 of file dialog.c.

1036 {
1037  CHOOSEFONT cf;
1038  LOGFONT lf = Globals.lfFont;
1039 
1040  ZeroMemory( &cf, sizeof(cf) );
1041  cf.lStructSize = sizeof(cf);
1042  cf.hwndOwner = Globals.hMainWnd;
1043  cf.lpLogFont = &lf;
1045 
1046  if (ChooseFont(&cf))
1047  {
1048  HFONT currfont = Globals.hFont;
1049 
1050  Globals.hFont = CreateFontIndirect(&lf);
1051  Globals.lfFont = lf;
1053  if (currfont != NULL)
1054  DeleteObject(currfont);
1055  }
1056 }
static IClassFactory * cf
#define TRUE
Definition: types.h:120
#define ZeroMemory
Definition: winbase.h:1664
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
UINT_PTR WPARAM
Definition: windef.h:207
#define ChooseFont
Definition: commdlg.h:662
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define CF_SCREENFONTS
Definition: commdlg.h:59
LONG_PTR LPARAM
Definition: windef.h:208
#define CreateFontIndirect
Definition: wingdi.h:4443
#define NULL
Definition: types.h:112
#define WM_SETFONT
Definition: winuser.h:1633
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
#define SendMessage
Definition: winuser.h:5819
#define CF_NOVERTFONTS
Definition: commdlg.h:86
#define CF_INITTOLOGFONTSTRUCT
Definition: commdlg.h:66

Referenced by NOTEPAD_MenuCommand().

◆ DIALOG_StatusBarUpdateCaretPos()

VOID DIALOG_StatusBarUpdateCaretPos ( VOID  )

Definition at line 1181 of file dialog.c.

1182 {
1183  int line, col;
1184  TCHAR buff[MAX_PATH];
1185  DWORD dwStart, dwSize;
1186 
1187  SendMessage(Globals.hEdit, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwSize);
1188  line = SendMessage(Globals.hEdit, EM_LINEFROMCHAR, (WPARAM)dwStart, 0);
1189  col = dwStart - SendMessage(Globals.hEdit, EM_LINEINDEX, (WPARAM)line, 0);
1190 
1191  _stprintf(buff, Globals.szStatusBarLineCol, line + 1, col + 1);
1193 }
UINT_PTR WPARAM
Definition: windef.h:207
#define EM_GETSEL
Definition: winuser.h:1980
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define SB_SIMPLEID
Definition: precomp.h:15
LONG_PTR LPARAM
Definition: windef.h:208
Definition: parser.c:48
char TCHAR
Definition: xmlstorage.h:189
#define MAX_PATH
Definition: compat.h:34
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SB_SETTEXT
Definition: commctrl.h:1949
IN PCTCH line
Definition: pager.h:36
#define _stprintf
Definition: utility.h:124
#define EM_LINEFROMCHAR
Definition: winuser.h:1984
#define SendMessage
Definition: winuser.h:5819
#define EM_LINEINDEX
Definition: winuser.h:1985
static unsigned char buff[32768]
Definition: fatten.c:17
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56

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

◆ DIALOG_StringMsgBox()

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

Definition at line 101 of file dialog.c.

102 {
103  TCHAR szMessage[MAX_STRING_LEN];
104  TCHAR szResource[MAX_STRING_LEN];
105 
106  /* Load and format szMessage */
107  LoadString(Globals.hInstance, formatId, szResource, ARRAY_SIZE(szResource));
108  _sntprintf(szMessage, ARRAY_SIZE(szMessage), szResource, szString);
109 
110  /* Load szCaption */
112  LoadString(Globals.hInstance, STRING_ERROR, szResource, ARRAY_SIZE(szResource));
113  else
114  LoadString(Globals.hInstance, STRING_NOTEPAD, szResource, ARRAY_SIZE(szResource));
115 
116  /* Display Modal Dialog */
117  // if (hParent == NULL)
118  // hParent = Globals.hMainWnd;
119  return MessageBox(hParent, szMessage, szResource, dwFlags);
120 }
#define MB_ICONMASK
Definition: winuser.h:813
#define MAX_STRING_LEN
Definition: precomp.h:36
#define MB_ICONEXCLAMATION
Definition: winuser.h:779
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define STRING_NOTEPAD
Definition: notepad_res.h:75
char TCHAR
Definition: xmlstorage.h:189
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
const DOCKBAR PVOID HWND hParent
Definition: tooldock.h:22
#define _sntprintf
Definition: xmlstorage.h:201
#define MessageBox
Definition: winuser.h:5798
#define ARRAY_SIZE(a)
Definition: main.h:24
#define STRING_ERROR
Definition: notepad_res.h:76
HINSTANCE hInstance
Definition: precomp.h:43
#define LoadString
Definition: winuser.h:5795

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

◆ DIALOG_ViewStatusBar()

VOID DIALOG_ViewStatusBar ( VOID  )

Definition at line 1195 of file dialog.c.

1196 {
1197  Globals.bShowStatusBar = !Globals.bShowStatusBar;
1198 
1200 }
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
VOID DoCreateStatusBar(VOID)
Definition: dialog.c:839

Referenced by _tWinMain(), and 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 322 of file dialog.c.

323 {
324  int nResult;
325 
326  if (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0))
327  {
328  /* prompt user to save changes */
329  nResult = AlertFileNotSaved(Globals.szFileName);
330  switch (nResult)
331  {
332  case IDYES:
333  if(!DIALOG_FileSave())
334  return FALSE;
335  break;
336 
337  case IDNO:
338  break;
339 
340  case IDCANCEL:
341  return FALSE;
342 
343  default:
344  return FALSE;
345  }
346  }
347 
350 
351  return TRUE;
352 }
void UpdateWindowCaption(BOOL clearModifyAlert)
Definition: dialog.c:66
static const TCHAR empty_str[]
Definition: dialog.c:32
#define IDYES
Definition: winuser.h:829
#define TRUE
Definition: types.h:120
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FALSE
Definition: types.h:117
static VOID SetFileName(PCONSOLE_CHILDFRM_WND Info, PWSTR pFileName)
Definition: console.c:179
#define EM_GETMODIFY
Definition: winuser.h:1977
#define SendMessage
Definition: winuser.h:5819
#define IDNO
Definition: winuser.h:830
#define IDCANCEL
Definition: winuser.h:825
static int AlertFileNotSaved(LPCTSTR szFileName)
Definition: dialog.c:127
BOOL DIALOG_FileSave(VOID)
Definition: dialog.c:454

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

◆ DoCreateEditWindow()

VOID DoCreateEditWindow ( VOID  )

Definition at line 917 of file dialog.c.

918 {
919  DWORD dwStyle;
920  int iSize;
921  LPTSTR pTemp = NULL;
922  BOOL bModified = FALSE;
923 
924  iSize = 0;
925 
926  /* If the edit control already exists, try to save its content */
927  if (Globals.hEdit != NULL)
928  {
929  /* number of chars currently written into the editor. */
930  iSize = GetWindowTextLength(Globals.hEdit);
931  if (iSize)
932  {
933  /* Allocates temporary buffer. */
934  pTemp = HeapAlloc(GetProcessHeap(), 0, (iSize + 1) * sizeof(TCHAR));
935  if (!pTemp)
936  {
937  ShowLastError();
938  return;
939  }
940 
941  /* Recover the text into the control. */
942  GetWindowText(Globals.hEdit, pTemp, iSize + 1);
943 
944  if (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0))
945  bModified = TRUE;
946  }
947 
948  /* Restore original window procedure */
950 
951  /* Destroy the edit control */
952  DestroyWindow(Globals.hEdit);
953  }
954 
955  /* Update wrap status into the main menu and recover style flags */
956  if (Globals.bWrapLongLines)
957  {
958  dwStyle = EDIT_STYLE_WRAP;
960  } else {
961  dwStyle = EDIT_STYLE;
963  }
964 
965  /* Update previous changes */
967 
968  /* Create the new edit control */
970  EDIT_CLASS,
971  NULL,
972  dwStyle,
978  NULL,
980  NULL);
981 
982  if (Globals.hEdit == NULL)
983  {
984  if (pTemp)
985  {
986  HeapFree(GetProcessHeap(), 0, pTemp);
987  }
988 
989  ShowLastError();
990  return;
991  }
992 
994  SendMessage(Globals.hEdit, EM_LIMITTEXT, 0, 0);
995 
996  /* If some text was previously saved, restore it. */
997  if (iSize != 0)
998  {
999  SetWindowText(Globals.hEdit, pTemp);
1000  HeapFree(GetProcessHeap(), 0, pTemp);
1001 
1002  if (bModified)
1003  SendMessage(Globals.hEdit, EM_SETMODIFY, TRUE, 0);
1004  }
1005 
1006  /* Sub-class a new window callback for row/column detection. */
1007  Globals.EditProc = (WNDPROC)SetWindowLongPtr(Globals.hEdit,
1008  GWLP_WNDPROC,
1010 
1011  /* Create/update status bar */
1013 
1014  /* Finally shows new edit control and set focus into it. */
1015  ShowWindow(Globals.hEdit, SW_SHOW);
1016  SetFocus(Globals.hEdit);
1017 }
#define EM_LIMITTEXT
Definition: winuser.h:1983
#define MF_DISABLED
Definition: winuser.h:130
BOOL WINAPI DrawMenuBar(_In_ HWND)
#define MF_BYCOMMAND
Definition: winuser.h:202
#define TRUE
Definition: types.h:120
HWND WINAPI SetFocus(_In_opt_ HWND)
UINT_PTR WPARAM
Definition: windef.h:207
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define SetWindowLongPtr
Definition: treelist.c:70
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define GetWindowText
Definition: winuser.h:5774
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define CMD_STATUSBAR
Definition: notepad_res.h:61
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define CreateWindowEx
Definition: winuser.h:5731
#define CW_USEDEFAULT
Definition: winuser.h:225
VOID DoCreateStatusBar(VOID)
Definition: dialog.c:839
#define SW_SHOW
Definition: winuser.h:769
char TCHAR
Definition: xmlstorage.h:189
VOID ShowLastError(VOID)
Definition: dialog.c:38
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define EDIT_CLASS
Definition: main.h:32
#define MF_ENABLED
Definition: winuser.h:128
#define EM_GETMODIFY
Definition: winuser.h:1977
unsigned long DWORD
Definition: ntddk_ex.h:95
#define EM_SETMODIFY
Definition: winuser.h:1996
#define GWLP_WNDPROC
Definition: treelist.c:66
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2882
LRESULT CALLBACK EDIT_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: main.c:310
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define SetWindowText
Definition: winuser.h:5833
#define NULL
Definition: types.h:112
#define WM_SETFONT
Definition: winuser.h:1633
#define SendMessage
Definition: winuser.h:5819
#define EDIT_STYLE_WRAP
Definition: main.h:28
#define EDIT_STYLE
Definition: main.h:30
#define GetWindowTextLength
Definition: winuser.h:5775
#define MF_GRAYED
Definition: winuser.h:129
HINSTANCE hInstance
Definition: precomp.h:43
#define HeapFree(x, y, z)
Definition: compat.h:594

Referenced by _tWinMain(), and DIALOG_EditWrap().

◆ DoCreateStatusBar()

VOID DoCreateStatusBar ( VOID  )

Definition at line 839 of file dialog.c.

840 {
841  RECT rc;
842  RECT rcstatus;
843  BOOL bStatusBarVisible;
844 
845  /* Check if status bar object already exists. */
846  if (Globals.hStatusBar == NULL)
847  {
848  /* Try to create the status bar */
850  NULL,
853 
854  if (Globals.hStatusBar == NULL)
855  {
856  ShowLastError();
857  return;
858  }
859 
860  /* Load the string for formatting column/row text output */
861  LoadString(Globals.hInstance, STRING_LINE_COLUMN, Globals.szStatusBarLineCol, MAX_PATH - 1);
862 
863  /* Set the status bar for single-text output */
864  SendMessage(Globals.hStatusBar, SB_SIMPLE, (WPARAM)TRUE, (LPARAM)0);
865  }
866 
867  /* Set status bar visiblity according to the settings. */
868  if ((Globals.bWrapLongLines != FALSE) || (Globals.bShowStatusBar == FALSE))
869  {
870  bStatusBarVisible = FALSE;
871  ShowWindow(Globals.hStatusBar, SW_HIDE);
872  }
873  else
874  {
875  bStatusBarVisible = TRUE;
876  ShowWindow(Globals.hStatusBar, SW_SHOW);
877  SendMessage(Globals.hStatusBar, WM_SIZE, 0, 0);
878  }
879 
880  /* Set check state in show status bar item. */
881  if (bStatusBarVisible)
882  {
884  }
885  else
886  {
888  }
889 
890  /* Update menu mar with the previous changes */
892 
893  /* Sefety test is edit control exists */
894  if (Globals.hEdit != NULL)
895  {
896  /* Retrieve the sizes of the controls */
898  GetClientRect(Globals.hStatusBar, &rcstatus);
899 
900  /* If status bar is currently visible, update dimensions of edit control */
901  if (bStatusBarVisible)
902  rc.bottom -= (rcstatus.bottom - rcstatus.top);
903 
904  /* Resize edit control to right size. */
905  MoveWindow(Globals.hEdit,
906  rc.left,
907  rc.top,
908  rc.right - rc.left,
909  rc.bottom - rc.top,
910  TRUE);
911  }
912 
913  /* Update content with current row/column text */
915 }
#define STRING_LINE_COLUMN
Definition: notepad_res.h:100
BOOL WINAPI DrawMenuBar(_In_ HWND)
#define MF_BYCOMMAND
Definition: winuser.h:202
#define TRUE
Definition: types.h:120
#define SW_HIDE
Definition: winuser.h:762
LONG top
Definition: windef.h:307
UINT_PTR WPARAM
Definition: windef.h:207
#define WS_CHILD
Definition: pedump.c:617
LONG left
Definition: windef.h:306
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
LONG right
Definition: windef.h:308
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define CMD_STATUSBAR
Definition: notepad_res.h:61
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define CreateStatusWindow
Definition: commctrl.h:1933
#define SB_SIMPLE
Definition: commctrl.h:1958
LONG_PTR LPARAM
Definition: windef.h:208
#define SW_SHOW
Definition: winuser.h:769
#define MF_CHECKED
Definition: winuser.h:132
VOID ShowLastError(VOID)
Definition: dialog.c:38
#define WM_SIZE
Definition: winuser.h:1594
#define MAX_PATH
Definition: compat.h:34
VOID DIALOG_StatusBarUpdateCaretPos(VOID)
Definition: dialog.c:1181
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_UNCHECKED
Definition: winuser.h:204
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define NULL
Definition: types.h:112
#define SendMessage
Definition: winuser.h:5819
LONG bottom
Definition: windef.h:309
HINSTANCE hInstance
Definition: precomp.h:43
#define WS_VISIBLE
Definition: pedump.c:620
#define CMD_STATUSBAR_WND_ID
Definition: notepad_res.h:62
#define WS_EX_STATICEDGE
Definition: winuser.h:403
#define LoadString
Definition: winuser.h:5795

Referenced by DIALOG_ViewStatusBar(), and DoCreateEditWindow().

◆ DoOpenFile()

VOID DoOpenFile ( LPCTSTR  szFileName)

Definition at line 354 of file dialog.c.

355 {
356  static const TCHAR dotlog[] = _T(".LOG");
357  HANDLE hFile;
358  LPTSTR pszText = NULL;
359  DWORD dwTextLen;
360  TCHAR log[5];
361 
362  /* Close any files and prompt to save changes */
363  if (!DoCloseFile())
364  return;
365 
369  {
370  ShowLastError();
371  goto done;
372  }
373 
374  if (!ReadText(hFile, (LPWSTR *)&pszText, &dwTextLen, &Globals.encFile, &Globals.iEoln))
375  {
376  ShowLastError();
377  goto done;
378  }
379  SetWindowText(Globals.hEdit, pszText);
380 
382  SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
383  SetFocus(Globals.hEdit);
384 
385  /* If the file starts with .LOG, add a time/date at the end and set cursor after
386  * See http://support.microsoft.com/?kbid=260563
387  */
388  if (GetWindowText(Globals.hEdit, log, ARRAY_SIZE(log)) && !_tcscmp(log, dotlog))
389  {
390  static const TCHAR lf[] = _T("\r\n");
395  }
396 
397  SetFileName(szFileName);
400 done:
403  if (pszText)
404  HeapFree(GetProcessHeap(), 0, pszText);
405 }
void UpdateWindowCaption(BOOL clearModifyAlert)
Definition: dialog.c:66
#define CloseHandle
Definition: compat.h:598
int _tcscmp(const _TCHAR *s1, const _TCHAR *s2)
Definition: tcscmp.h:8
#define TRUE
Definition: types.h:120
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
HWND WINAPI SetFocus(_In_opt_ HWND)
#define FILE_SHARE_WRITE
Definition: nt_native.h:681
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define FILE_SHARE_READ
Definition: compat.h:136
#define GetWindowText
Definition: winuser.h:5774
BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, ENCODING *pencFile, int *piEoln)
Definition: text.c:96
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FALSE
Definition: types.h:117
BOOL DoCloseFile(VOID)
Definition: dialog.c:322
LONG_PTR LPARAM
Definition: windef.h:208
static VOID SetFileName(PCONSOLE_CHILDFRM_WND Info, PWSTR pFileName)
Definition: console.c:179
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
VOID ShowLastError(VOID)
Definition: dialog.c:38
#define GetProcessHeap()
Definition: compat.h:595
#define EM_SETSEL
Definition: winuser.h:2001
unsigned long DWORD
Definition: ntddk_ex.h:95
#define OPEN_ALWAYS
Definition: disk.h:70
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
#define EM_EMPTYUNDOBUFFER
Definition: winuser.h:1968
#define GENERIC_READ
Definition: compat.h:135
#define EM_SETMODIFY
Definition: winuser.h:1996
_In_ HANDLE hFile
Definition: mswsock.h:90
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
Definition: fatprocs.h:913
#define ARRAY_SIZE(a)
Definition: main.h:24
#define SetWindowText
Definition: winuser.h:5833
#define NULL
Definition: types.h:112
VOID NOTEPAD_EnableSearchMenu()
Definition: main.c:34
#define SendMessage
Definition: winuser.h:5819
#define GetWindowTextLength
Definition: winuser.h:5775
WCHAR * LPWSTR
Definition: xmlstorage.h:184
VOID DIALOG_EditTimeDate(VOID)
Definition: dialog.c:823
#define HeapFree(x, y, z)
Definition: compat.h:594
#define log(outFile, fmt,...)
Definition: util.h:15
#define EM_REPLACESEL
Definition: winuser.h:1989

Referenced by DIALOG_FileOpen().

◆ DoSaveFile()

static BOOL DoSaveFile ( VOID  )
static

Definition at line 267 of file dialog.c.

268 {
269  BOOL bRet = TRUE;
270  HANDLE hFile;
271  LPTSTR pTemp;
272  DWORD size;
273 
277  {
278  ShowLastError();
279  return FALSE;
280  }
281 
282  size = GetWindowTextLength(Globals.hEdit) + 1;
283  pTemp = HeapAlloc(GetProcessHeap(), 0, size * sizeof(*pTemp));
284  if (!pTemp)
285  {
287  ShowLastError();
288  return FALSE;
289  }
290  size = GetWindowText(Globals.hEdit, pTemp, size);
291 
292  if (size)
293  {
294  if (!WriteText(hFile, (LPWSTR)pTemp, size, Globals.encFile, Globals.iEoln))
295  {
296  ShowLastError();
297  bRet = FALSE;
298  }
299  else
300  {
302  bRet = TRUE;
303  }
304  }
305 
307  HeapFree(GetProcessHeap(), 0, pTemp);
308 
309  if (bRet)
310  {
311  SetFileName(Globals.szFileName);
312  }
313 
314  return bRet;
315 }
#define CloseHandle
Definition: compat.h:598
#define TRUE
Definition: types.h:120
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
BOOL WriteText(HANDLE hFile, LPCWSTR pszText, DWORD dwTextLen, ENCODING encFile, int iEoln)
Definition: text.c:368
#define FILE_SHARE_WRITE
Definition: nt_native.h:681
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define GetWindowText
Definition: winuser.h:5774
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define GENERIC_WRITE
Definition: nt_native.h:90
static VOID SetFileName(PCONSOLE_CHILDFRM_WND Info, PWSTR pFileName)
Definition: console.c:179
VOID ShowLastError(VOID)
Definition: dialog.c:38
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
unsigned long DWORD
Definition: ntddk_ex.h:95
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
#define EM_SETMODIFY
Definition: winuser.h:1996
_In_ HANDLE hFile
Definition: mswsock.h:90
#define CREATE_ALWAYS
Definition: disk.h:72
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
Definition: fatprocs.h:913
#define NULL
Definition: types.h:112
#define SendMessage
Definition: winuser.h:5819
#define GetWindowTextLength
Definition: winuser.h:5775
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define HeapFree(x, y, z)
Definition: compat.h:594

Referenced by DIALOG_FileSave(), and DIALOG_FileSaveAs().

◆ EDIT_WndProc()

LRESULT CALLBACK EDIT_WndProc ( HWND  hWnd,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 310 of file main.c.

311 {
312  switch (msg)
313  {
314  case WM_KEYDOWN:
315  case WM_KEYUP:
316  {
317  switch (wParam)
318  {
319  case VK_UP:
320  case VK_DOWN:
321  case VK_LEFT:
322  case VK_RIGHT:
324  break;
325  default:
326  {
328  break;
329  }
330  }
331  }
332  case WM_LBUTTONUP:
333  {
335  break;
336  }
337  }
339 }
#define CallWindowProc
Definition: winuser.h:5711
NOTEPAD_GLOBALS Globals
Definition: main.c:31
HWND hWnd
Definition: settings.c:17
#define VK_LEFT
Definition: winuser.h:2200
#define VK_DOWN
Definition: winuser.h:2203
WNDPROC EditProc
Definition: main.h:81
WPARAM wParam
Definition: combotst.c:138
#define VK_UP
Definition: winuser.h:2201
#define FALSE
Definition: types.h:117
#define WM_KEYDOWN
Definition: winuser.h:1698
VOID DIALOG_StatusBarUpdateCaretPos(VOID)
Definition: dialog.c:1181
#define WM_KEYUP
Definition: winuser.h:1699
#define VK_RIGHT
Definition: winuser.h:2202
#define WM_LBUTTONUP
Definition: winuser.h:1760
#define msg(x)
Definition: auth_time.c:54
LPARAM lParam
Definition: combotst.c:139
void UpdateWindowCaption(HWND hwnd)
Definition: mplay32.c:102

Referenced by DoCreateEditWindow().

◆ FileExists()

BOOL FileExists ( LPCTSTR  szFilename)

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

Definition at line 154 of file dialog.c.

155 {
157  HANDLE hFile;
158 
159  hFile = FindFirstFile(szFilename, &entry);
160  FindClose(hFile);
161 
162  return (hFile != INVALID_HANDLE_VALUE);
163 }
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
#define FindFirstFile
Definition: winbase.h:3638
uint32_t entry
Definition: isohybrid.c:63
_In_ HANDLE hFile
Definition: mswsock.h:90
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502

Referenced by DIALOG_FileOpen(), and HandleCommandLine().

◆ GetPrintingRect()

static RECT GetPrintingRect ( HDC  hdc,
RECT  margins 
)
static

Definition at line 243 of file dialog.c.

244 {
245  int iLogPixelsX, iLogPixelsY;
246  int iHorzRes, iVertRes;
247  int iPhysPageX, iPhysPageY, iPhysPageW, iPhysPageH;
248  RECT rcPrintRect;
249 
250  iPhysPageX = GetDeviceCaps(hdc, PHYSICALOFFSETX);
251  iPhysPageY = GetDeviceCaps(hdc, PHYSICALOFFSETY);
252  iPhysPageW = GetDeviceCaps(hdc, PHYSICALWIDTH);
253  iPhysPageH = GetDeviceCaps(hdc, PHYSICALHEIGHT);
254  iLogPixelsX = GetDeviceCaps(hdc, LOGPIXELSX);
255  iLogPixelsY = GetDeviceCaps(hdc, LOGPIXELSY);
256  iHorzRes = GetDeviceCaps(hdc, HORZRES);
257  iVertRes = GetDeviceCaps(hdc, VERTRES);
258 
259  rcPrintRect.left = (margins.left * iLogPixelsX / 2540) - iPhysPageX;
260  rcPrintRect.top = (margins.top * iLogPixelsY / 2540) - iPhysPageY;
261  rcPrintRect.right = iHorzRes - (((margins.left * iLogPixelsX / 2540) - iPhysPageX) + ((margins.right * iLogPixelsX / 2540) - (iPhysPageW - iPhysPageX - iHorzRes)));
262  rcPrintRect.bottom = iVertRes - (((margins.top * iLogPixelsY / 2540) - iPhysPageY) + ((margins.bottom * iLogPixelsY / 2540) - (iPhysPageH - iPhysPageY - iVertRes)));
263 
264  return rcPrintRect;
265 }
#define HORZRES
Definition: wingdi.h:715
#define LOGPIXELSX
Definition: wingdi.h:717
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
LONG right
Definition: windef.h:308
#define PHYSICALHEIGHT
Definition: wingdi.h:735
#define PHYSICALOFFSETY
Definition: wingdi.h:737
HDC hdc
Definition: main.c:9
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
static RECT margins
Definition: print.c:55
#define PHYSICALOFFSETX
Definition: wingdi.h:736
#define PHYSICALWIDTH
Definition: wingdi.h:734
#define VERTRES
Definition: wingdi.h:716
LONG bottom
Definition: windef.h:309
#define LOGPIXELSY
Definition: wingdi.h:718

Referenced by DIALOG_FilePrint().

◆ GetSelectionText()

int GetSelectionText ( HWND  hWnd,
LPTSTR  lpString,
int  nMaxCount 
)

Definition at line 185 of file dialog.c.

186 {
187  DWORD dwStart = 0;
188  DWORD dwEnd = 0;
189  DWORD dwSize;
190  HRESULT hResult;
191  LPTSTR lpTemp;
192 
193  if (!lpString)
194  {
195  return 0;
196  }
197 
198  SendMessage(hWnd, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwEnd);
199 
200  if (dwStart == dwEnd)
201  {
202  return 0;
203  }
204 
206  lpTemp = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(TCHAR));
207  if (!lpTemp)
208  {
209  return 0;
210  }
211 
212  dwSize = GetWindowText(hWnd, lpTemp, dwSize);
213 
214  if (!dwSize)
215  {
216  HeapFree(GetProcessHeap(), 0, lpTemp);
217  return 0;
218  }
219 
220  hResult = StringCchCopyN(lpString, nMaxCount, lpTemp + dwStart, dwEnd - dwStart);
221  HeapFree(GetProcessHeap(), 0, lpTemp);
222 
223  switch (hResult)
224  {
225  case S_OK:
226  {
227  return dwEnd - dwStart;
228  }
229 
231  {
232  return nMaxCount - 1;
233  }
234 
235  default:
236  {
237  return 0;
238  }
239  }
240 }
HWND hWnd
Definition: settings.c:17
#define StringCchCopyN
Definition: strsafe.h:227
UINT_PTR WPARAM
Definition: windef.h:207
#define STRSAFE_E_INSUFFICIENT_BUFFER
Definition: strsafe.h:103
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define GetWindowText
Definition: winuser.h:5774
#define EM_GETSEL
Definition: winuser.h:1980
LONG_PTR LPARAM
Definition: windef.h:208
char TCHAR
Definition: xmlstorage.h:189
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:79
unsigned long DWORD
Definition: ntddk_ex.h:95
#define S_OK
Definition: intsafe.h:52
#define SendMessage
Definition: winuser.h:5819
#define GetWindowTextLength
Definition: winuser.h:5775
_In_ int nMaxCount
Definition: winuser.h:4853
#define HeapFree(x, y, z)
Definition: compat.h:594
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56

Referenced by DIALOG_FilePrint().

◆ GetSelectionTextLength()

int GetSelectionTextLength ( HWND  hWnd)

Definition at line 175 of file dialog.c.

176 {
177  DWORD dwStart = 0;
178  DWORD dwEnd = 0;
179 
180  SendMessage(hWnd, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwEnd);
181 
182  return dwEnd - dwStart;
183 }
HWND hWnd
Definition: settings.c:17
UINT_PTR WPARAM
Definition: windef.h:207
#define EM_GETSEL
Definition: winuser.h:1980
LONG_PTR LPARAM
Definition: windef.h:208
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SendMessage
Definition: winuser.h:5819

Referenced by DIALOG_FilePrint().

◆ HasFileExtension()

BOOL HasFileExtension ( LPCTSTR  szFilename)

Definition at line 165 of file dialog.c.

166 {
167  LPCTSTR s;
168 
169  s = _tcsrchr(szFilename, _T('\\'));
170  if (s)
171  szFilename = s;
172  return _tcsrchr(szFilename, _T('.')) != NULL;
173 }
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
#define _T(x)
Definition: vfdio.h:22
GLdouble s
Definition: gl.h:2039
#define NULL
Definition: types.h:112
_TCHAR * _tcsrchr(const _TCHAR *s, _XINT c)
Definition: tcsrchr.h:4

Referenced by HandleCommandLine().

◆ ShowLastError()

VOID ShowLastError ( VOID  )

Definition at line 38 of file dialog.c.

39 {
41  if (error != NO_ERROR)
42  {
43  LPTSTR lpMsgBuf = NULL;
45 
47 
49  NULL,
50  error,
51  0,
52  (LPTSTR) &lpMsgBuf,
53  0,
54  NULL);
55 
56  MessageBox(NULL, lpMsgBuf, szTitle, MB_OK | MB_ICONERROR);
57  LocalFree(lpMsgBuf);
58  }
59 }
#define error(str)
Definition: mkdosfs.c:1605
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
#define MAX_STRING_LEN
Definition: precomp.h:36
#define NO_ERROR
Definition: dderror.h:5
CHAR * LPTSTR
Definition: xmlstorage.h:192
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:416
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:420
char TCHAR
Definition: xmlstorage.h:189
unsigned long DWORD
Definition: ntddk_ex.h:95
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
#define FormatMessage
Definition: winbase.h:3651
#define MB_ICONERROR
Definition: winuser.h:781
#define MessageBox
Definition: winuser.h:5798
#define ARRAY_SIZE(a)
Definition: main.h:24
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1577
#define STRING_ERROR
Definition: notepad_res.h:76
#define NULL
Definition: types.h:112
#define MB_OK
Definition: winuser.h:784
HINSTANCE hInstance
Definition: precomp.h:43
#define LoadString
Definition: winuser.h:5795

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

◆ 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 66 of file dialog.c.

67 {
68  TCHAR szCaption[MAX_STRING_LEN];
69  TCHAR szNotepad[MAX_STRING_LEN];
70  TCHAR szFilename[MAX_STRING_LEN];
71 
72  /* Load the name of the application */
73  LoadString(Globals.hInstance, STRING_NOTEPAD, szNotepad, ARRAY_SIZE(szNotepad));
74 
75  /* Determine if the file has been saved or if this is a new file */
76  if (Globals.szFileTitle[0] != 0)
77  StringCchCopy(szFilename, ARRAY_SIZE(szFilename), Globals.szFileTitle);
78  else
79  LoadString(Globals.hInstance, STRING_UNTITLED, szFilename, ARRAY_SIZE(szFilename));
80 
81  /* When a file is being opened or created, there is no need to have the edited flag shown
82  when the new or opened file has not been edited yet */
83  if (clearModifyAlert)
84  {
85  StringCbPrintf(szCaption, sizeof(szCaption), _T("%s - %s"),
86  szFilename, szNotepad);
87  }
88  else
89  {
90  BOOL isModified = (SendMessage(Globals.hEdit, EM_GETMODIFY, 0, 0) ? TRUE : FALSE);
91 
92  /* Update the caption based upon if the user has modified the contents of the file or not */
93  StringCbPrintf(szCaption, sizeof(szCaption), _T("%s%s - %s"),
94  (isModified ? _T("*") : _T("")), szFilename, szNotepad);
95  }
96 
97  /* Update the window caption */
98  SetWindowText(Globals.hMainWnd, szCaption);
99 }
#define TRUE
Definition: types.h:120
#define MAX_STRING_LEN
Definition: precomp.h:36
CLIPBOARD_GLOBALS Globals
Definition: clipbrd.c:13
#define STRING_NOTEPAD
Definition: notepad_res.h:75
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
#define STRING_UNTITLED
Definition: notepad_res.h:79
#define StringCbPrintf
Definition: strsafe.h:544
#define EM_GETMODIFY
Definition: winuser.h:1977
#define StringCchCopy
Definition: strsafe.h:139
#define ARRAY_SIZE(a)
Definition: main.h:24
#define SetWindowText
Definition: winuser.h:5833
#define SendMessage
Definition: winuser.h:5819
HINSTANCE hInstance
Definition: precomp.h:43
#define LoadString
Definition: winuser.h:5795

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

Variable Documentation

◆ empty_str

◆ helpfile

const TCHAR helpfile[] = _T("notepad.hlp")
static

◆ szDefaultExt

const TCHAR szDefaultExt[] = _T("txt")
static

Definition at line 33 of file dialog.c.

Referenced by DIALOG_FileOpen(), and DIALOG_FileSaveAs().

◆ txt_files

const TCHAR txt_files[] = _T("*.txt")
static

Definition at line 34 of file dialog.c.

Referenced by DIALOG_FileOpen(), DIALOG_FileSaveAs(), and NOTEPAD_InitData().