mirror of
https://github.com/reactos/reactos.git
synced 2025-03-27 15:40:45 +00:00
[NOTEPAD] Refactor around _tWinMain (#5135)
- Add hInstance parameter to NOTEPAD_InitData. - Move some code in _tWinMain into NOTEPAD_InitData. - Move some code in _tWinMain into WM_CREATE handling. - Move some code in WM_CLOSE handling into WM_DESTROY handling. - Fix the exit code of _tWinMain. CORE-18837
This commit is contained in:
parent
3b0791547f
commit
d0ab35e9da
1 changed files with 44 additions and 42 deletions
|
@ -253,12 +253,17 @@ static VOID NOTEPAD_FindTerm(VOID)
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Data Initialization
|
* Data Initialization
|
||||||
*/
|
*/
|
||||||
static VOID NOTEPAD_InitData(VOID)
|
static VOID NOTEPAD_InitData(HINSTANCE hInstance)
|
||||||
{
|
{
|
||||||
LPTSTR p = Globals.szFilter;
|
LPTSTR p;
|
||||||
static const TCHAR txt_files[] = _T("*.txt");
|
static const TCHAR txt_files[] = _T("*.txt");
|
||||||
static const TCHAR all_files[] = _T("*.*");
|
static const TCHAR all_files[] = _T("*.*");
|
||||||
|
|
||||||
|
ZeroMemory(&Globals, sizeof(Globals));
|
||||||
|
Globals.hInstance = hInstance;
|
||||||
|
Globals.encFile = ENCODING_DEFAULT;
|
||||||
|
|
||||||
|
p = Globals.szFilter;
|
||||||
p += LoadString(Globals.hInstance, STRING_TEXT_FILES_TXT, p, MAX_STRING_LEN) + 1;
|
p += LoadString(Globals.hInstance, STRING_TEXT_FILES_TXT, p, MAX_STRING_LEN) + 1;
|
||||||
_tcscpy(p, txt_files);
|
_tcscpy(p, txt_files);
|
||||||
p += ARRAY_SIZE(txt_files);
|
p += ARRAY_SIZE(txt_files);
|
||||||
|
@ -340,8 +345,17 @@ NOTEPAD_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
|
Globals.hMainWnd = hWnd;
|
||||||
Globals.hMenu = GetMenu(hWnd);
|
Globals.hMenu = GetMenu(hWnd);
|
||||||
|
|
||||||
|
DragAcceptFiles(hWnd, TRUE); /* Accept Drag & Drop */
|
||||||
|
|
||||||
|
/* Create controls */
|
||||||
|
DoCreateEditWindow();
|
||||||
|
DoShowHideStatusBar();
|
||||||
|
|
||||||
|
DIALOG_FileNew(); /* Initialize file info */
|
||||||
|
|
||||||
// For now, the "Help" dialog is disabled due to the lack of HTML Help support
|
// For now, the "Help" dialog is disabled due to the lack of HTML Help support
|
||||||
EnableMenuItem(Globals.hMenu, CMD_HELP_CONTENTS, MF_BYCOMMAND | MF_GRAYED);
|
EnableMenuItem(Globals.hMenu, CMD_HELP_CONTENTS, MF_BYCOMMAND | MF_GRAYED);
|
||||||
break;
|
break;
|
||||||
|
@ -354,20 +368,9 @@ NOTEPAD_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
NOTEPAD_MenuCommand(LOWORD(wParam));
|
NOTEPAD_MenuCommand(LOWORD(wParam));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_DESTROYCLIPBOARD:
|
|
||||||
/*MessageBox(Globals.hMainWnd, "Empty clipboard", "Debug", MB_ICONEXCLAMATION);*/
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
if (DoCloseFile()) {
|
if (DoCloseFile())
|
||||||
if (Globals.hFont)
|
|
||||||
DeleteObject(Globals.hFont);
|
|
||||||
if (Globals.hDevMode)
|
|
||||||
GlobalFree(Globals.hDevMode);
|
|
||||||
if (Globals.hDevNames)
|
|
||||||
GlobalFree(Globals.hDevNames);
|
|
||||||
DestroyWindow(hWnd);
|
DestroyWindow(hWnd);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_QUERYENDSESSION:
|
case WM_QUERYENDSESSION:
|
||||||
|
@ -377,6 +380,12 @@ NOTEPAD_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
|
if (Globals.hFont)
|
||||||
|
DeleteObject(Globals.hFont);
|
||||||
|
if (Globals.hDevMode)
|
||||||
|
GlobalFree(Globals.hDevMode);
|
||||||
|
if (Globals.hDevNames)
|
||||||
|
GlobalFree(Globals.hDevNames);
|
||||||
SetWindowLongPtr(Globals.hEdit, GWLP_WNDPROC, (LONG_PTR)Globals.EditProc);
|
SetWindowLongPtr(Globals.hEdit, GWLP_WNDPROC, (LONG_PTR)Globals.EditProc);
|
||||||
NOTEPAD_SaveSettingsToRegistry();
|
NOTEPAD_SaveSettingsToRegistry();
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
|
@ -574,9 +583,7 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE prev, LPTSTR cmdline, int sh
|
||||||
|
|
||||||
aFINDMSGSTRING = (ATOM)RegisterWindowMessage(FINDMSGSTRING);
|
aFINDMSGSTRING = (ATOM)RegisterWindowMessage(FINDMSGSTRING);
|
||||||
|
|
||||||
ZeroMemory(&Globals, sizeof(Globals));
|
NOTEPAD_InitData(hInstance);
|
||||||
Globals.hInstance = hInstance;
|
|
||||||
Globals.encFile = ENCODING_DEFAULT;
|
|
||||||
NOTEPAD_LoadSettingsFromRegistry();
|
NOTEPAD_LoadSettingsFromRegistry();
|
||||||
|
|
||||||
ZeroMemory(&wndclass, sizeof(wndclass));
|
ZeroMemory(&wndclass, sizeof(wndclass));
|
||||||
|
@ -591,11 +598,14 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE prev, LPTSTR cmdline, int sh
|
||||||
wndclass.hIconSm = (HICON)LoadImage(hInstance,
|
wndclass.hIconSm = (HICON)LoadImage(hInstance,
|
||||||
MAKEINTRESOURCE(IDI_NPICON),
|
MAKEINTRESOURCE(IDI_NPICON),
|
||||||
IMAGE_ICON,
|
IMAGE_ICON,
|
||||||
16,
|
GetSystemMetrics(SM_CXSMICON),
|
||||||
16,
|
GetSystemMetrics(SM_CYSMICON),
|
||||||
0);
|
0);
|
||||||
|
if (!RegisterClassEx(&wndclass))
|
||||||
if (!RegisterClassEx(&wndclass)) return FALSE;
|
{
|
||||||
|
ShowLastError();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Setup windows */
|
/* Setup windows */
|
||||||
|
|
||||||
|
@ -608,37 +618,29 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE prev, LPTSTR cmdline, int sh
|
||||||
if (!IntersectRect(&rcIntersect, &Globals.main_rect, &info.rcWork))
|
if (!IntersectRect(&rcIntersect, &Globals.main_rect, &info.rcWork))
|
||||||
x = y = CW_USEDEFAULT;
|
x = y = CW_USEDEFAULT;
|
||||||
|
|
||||||
Globals.hMainWnd = CreateWindow(className,
|
/* Globals.hMainWnd will be set in WM_CREATE handling */
|
||||||
winName,
|
CreateWindow(className,
|
||||||
WS_OVERLAPPEDWINDOW,
|
winName,
|
||||||
x,
|
WS_OVERLAPPEDWINDOW,
|
||||||
y,
|
x,
|
||||||
Globals.main_rect.right - Globals.main_rect.left,
|
y,
|
||||||
Globals.main_rect.bottom - Globals.main_rect.top,
|
Globals.main_rect.right - Globals.main_rect.left,
|
||||||
NULL,
|
Globals.main_rect.bottom - Globals.main_rect.top,
|
||||||
NULL,
|
NULL,
|
||||||
Globals.hInstance,
|
NULL,
|
||||||
NULL);
|
Globals.hInstance,
|
||||||
|
NULL);
|
||||||
if (!Globals.hMainWnd)
|
if (!Globals.hMainWnd)
|
||||||
{
|
{
|
||||||
ShowLastError();
|
ShowLastError();
|
||||||
ExitProcess(1);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
DoCreateEditWindow();
|
|
||||||
DoShowHideStatusBar();
|
|
||||||
|
|
||||||
NOTEPAD_InitData();
|
|
||||||
DIALOG_FileNew();
|
|
||||||
|
|
||||||
ShowWindow(Globals.hMainWnd, show);
|
ShowWindow(Globals.hMainWnd, show);
|
||||||
UpdateWindow(Globals.hMainWnd);
|
UpdateWindow(Globals.hMainWnd);
|
||||||
DragAcceptFiles(Globals.hMainWnd, TRUE);
|
|
||||||
|
|
||||||
if (!HandleCommandLine(cmdline))
|
if (!HandleCommandLine(cmdline))
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(ID_ACCEL));
|
hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(ID_ACCEL));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue