/*********************************************************************** * * NOTEPAD_MenuCommand * * All handling of main menu events */ static int NOTEPAD_MenuCommand(WPARAM wParam) { switch (wParam) { case CMD_NEW: DIALOG_FileNew(); break; case CMD_OPEN: DIALOG_FileOpen(); break; case CMD_SAVE: DIALOG_FileSave(); break; case CMD_SAVE_AS: DIALOG_FileSaveAs(); break; case CMD_PRINT: DIALOG_FilePrint(); break; case CMD_PAGE_SETUP: DIALOG_FilePageSetup(); break; case CMD_EXIT: DIALOG_FileExit(); break; case CMD_UNDO: DIALOG_EditUndo(); break; case CMD_CUT: DIALOG_EditCut(); break; case CMD_COPY: DIALOG_EditCopy(); break; case CMD_PASTE: DIALOG_EditPaste(); break; case CMD_DELETE: DIALOG_EditDelete(); break; case CMD_SELECT_ALL: DIALOG_EditSelectAll(); break; case CMD_TIME_DATE: DIALOG_EditTimeDate(); break; case CMD_SEARCH: DIALOG_Search(); break; case CMD_SEARCH_NEXT: DIALOG_SearchNext(); break; case CMD_REPLACE: DIALOG_Replace(); break; case CMD_GOTO: DIALOG_GoTo(); break; case CMD_WRAP: DIALOG_EditWrap(); break; case CMD_FONT: DIALOG_SelectFont(); break; case CMD_STATUSBAR: DIALOG_ViewStatusBar(); break; case CMD_HELP_CONTENTS: DIALOG_HelpContents(); break; case CMD_HELP_SEARCH: DIALOG_HelpSearch(); break; case CMD_HELP_ON_HELP: DIALOG_HelpHelp(); break; case CMD_ABOUT: DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUTBOX), Globals.hMainWnd, AboutDialogProc); break; case CMD_ABOUT_WINE: DIALOG_HelpAboutWine(); break; default: break; } return 0; }
/*********************************************************************** * NOTEPAD_OnMenuCommand * * All handling of main menu events * * ARGUMENTS: * - handle of window: * HWND hWnd * - menu command id: * int Id * - (not used): * HWND hwndCtl * - (not used): * uint codeNotify * RETURNS: none */ static void NOTEPAD_OnMenuCommand(HWND hwnd, int Id, HWND hwndCtl, uint codeNotify) { switch (Id) { case CMD_NEW: DIALOG_FileNew(); break; case CMD_OPEN: DIALOG_FileOpen(); break; case CMD_SAVE: DIALOG_FileSave(); break; case CMD_SAVE_AS: DIALOG_FileSaveAs(); break; case CMD_EXIT: DIALOG_FileExit(); break; case CMD_WRAP: DIALOG_EditWrap(); break; case CMD_TEXT_HOME: EDIT_MoveCaret(DIR_TEXT_HOME); UpdateStuff(true); break; case CMD_TEXT_END: EDIT_MoveCaret(DIR_TEXT_END); UpdateStuff(true); break; default: break; } }
/*********************************************************************** * * WinMain */ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE prev, LPTSTR cmdline, int show) { MSG msg; HACCEL hAccel; WNDCLASSEX wndclass; HMONITOR monitor; MONITORINFO info; INT x, y; static const TCHAR className[] = _T("NPClass"); static const TCHAR winName[] = _T("Notepad"); UNREFERENCED_PARAMETER(prev); aFINDMSGSTRING = (ATOM) RegisterWindowMessage(FINDMSGSTRING); ZeroMemory(&Globals, sizeof(Globals)); Globals.hInstance = hInstance; LoadSettings(); ZeroMemory(&wndclass, sizeof(wndclass)); wndclass.cbSize = sizeof(wndclass); wndclass.lpfnWndProc = NOTEPAD_WndProc; wndclass.hInstance = Globals.hInstance; wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_NPICON)); wndclass.hCursor = LoadCursor(0, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wndclass.lpszMenuName = MAKEINTRESOURCE(MAIN_MENU); wndclass.lpszClassName = className; wndclass.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_NPICON), IMAGE_ICON, 16, 16, 0); if (!RegisterClassEx(&wndclass)) return FALSE; /* Setup windows */ monitor = MonitorFromRect( &Globals.main_rect, MONITOR_DEFAULTTOPRIMARY ); info.cbSize = sizeof(info); GetMonitorInfoW( monitor, &info ); x = Globals.main_rect.left; y = Globals.main_rect.top; if (Globals.main_rect.left >= info.rcWork.right || Globals.main_rect.top >= info.rcWork.bottom || Globals.main_rect.right < info.rcWork.left || Globals.main_rect.bottom < info.rcWork.top) x = y = CW_USEDEFAULT; Globals.hMainWnd = CreateWindow(className, winName, WS_OVERLAPPEDWINDOW, x, y, Globals.main_rect.right - Globals.main_rect.left, Globals.main_rect.bottom - Globals.main_rect.top, NULL, NULL, Globals.hInstance, NULL); if (!Globals.hMainWnd) { ShowLastError(); ExitProcess(1); } DoCreateEditWindow(); NOTEPAD_InitData(); DIALOG_FileNew(); ShowWindow(Globals.hMainWnd, show); UpdateWindow(Globals.hMainWnd); DragAcceptFiles(Globals.hMainWnd, TRUE); DIALOG_ViewStatusBar(); HandleCommandLine(cmdline); hAccel = LoadAccelerators( hInstance, MAKEINTRESOURCE(ID_ACCEL) ); while (GetMessage(&msg, 0, 0, 0)) { if (!IsDialogMessage(Globals.hFindReplaceDlg, &msg) && !TranslateAccelerator(Globals.hMainWnd, hAccel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return (int) msg.wParam; }
/*********************************************************************** * WinMain */ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE prev, char *cmdline, int show) { MSG msg; HACCEL accel; WNDCLASSEX wc; HMONITOR monitor; MONITORINFO info; int x, y; static const char className[] = {'N','o','t','e','p','a','d',0}; static const char winName[] = {'N','o','t','e','p','a','d',0}; ZeroMemory(&Globals, sizeof(Globals)); Globals.hInstance = hInstance; NOTEPAD_SetParams(); ZeroMemory(&wc, sizeof(wc)); wc.cbSize = sizeof(wc); wc.lpfnWndProc = NOTEPAD_WndProc; wc.hInstance = Globals.hInstance; wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); wc.hIconSm = LoadIcon(NULL, IDI_WINLOGO); wc.hCursor = LoadCursor(0, IDC_ARROW); wc.hbrBackground = (HBRUSH)BLACK_BRUSH;//(HBRUSH)(COLOR_WINDOW + 1); wc.lpszMenuName = MAKEINTRESOURCE(MAIN_MENU); wc.lpszClassName = className; if (!RegisterClassEx(&wc)) return false; /* Setup windows */ monitor = MonitorFromRect(&main_rect, MONITOR_DEFAULTTOPRIMARY); info.cbSize = sizeof(info); GetMonitorInfo(monitor, &info); x = main_rect.left; y = main_rect.top; if (main_rect.left >= info.rcWork.right || main_rect.top >= info.rcWork.bottom || main_rect.right < info.rcWork.left || main_rect.bottom < info.rcWork.top) x = y = CW_USEDEFAULT; Globals.hMainWnd = CreateWindow(className, winName, WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL, x, y, main_rect.right - main_rect.left, main_rect.bottom - main_rect.top, NULL, NULL, Globals.hInstance, NULL); if (!Globals.hMainWnd) { ShowLastError(); ExitProcess(1); } NOTEPAD_InitData(); DIALOG_FileNew(); //ShowWindow(Globals.hMainWnd, SW_HIDE); ShowWindow(Globals.hMainWnd, SW_SHOW); UpdateWindow(Globals.hMainWnd); DragAcceptFiles(Globals.hMainWnd, true); HandleCommandLine(cmdline); accel = LoadAccelerators(hInstance, MAKEINTRESOURCE(ID_ACCEL)); while (GetMessage(&msg, 0, 0, 0)) { if (!TranslateAccelerator(Globals.hMainWnd, accel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; }