Release 980503
[wine/hacks.git] / programs / notepad / main.c
blob8cd5fcd678b89b305f7fd571c6a6286e312261c3
1 /*
2 * Notepad
4 * Copyright 1997 Marcel Baur <mbaur@g26.ethz.ch>
5 */
7 #include <stdio.h>
8 #include "windows.h"
9 #include "main.h"
10 #include "license.h"
11 #include "dialog.h"
12 #include "language.h"
13 #ifdef WINELIB
14 #include "options.h"
15 #include "resource.h"
16 #include "shell.h"
17 void LIBWINE_Register_De();
18 void LIBWINE_Register_En();
19 void LIBWINE_Register_Sw();
20 #endif
22 NOTEPAD_GLOBALS Globals;
24 /***********************************************************************
26 * NOTEPAD_MenuCommand
28 * All handling of main menu events
31 int NOTEPAD_MenuCommand (WPARAM wParam)
33 switch (wParam) {
34 case NP_FILE_NEW: DIALOG_FileNew(); break;
35 case NP_FILE_OPEN: DIALOG_FileOpen(); break;
36 case NP_FILE_SAVE: DIALOG_FileSave(); break;
37 case NP_FILE_SAVEAS: DIALOG_FileSaveAs(); break;
38 case NP_FILE_PRINT: DIALOG_FilePrint(); break;
39 case NP_FILE_PAGESETUP: DIALOG_FilePageSetup(); break;
40 case NP_FILE_PRINTSETUP: DIALOG_FilePrinterSetup();break;
41 case NP_FILE_EXIT: DIALOG_FileExit(); break;
43 case NP_EDIT_UNDO: DIALOG_EditUndo(); break;
44 case NP_EDIT_CUT: DIALOG_EditCut(); break;
45 case NP_EDIT_COPY: DIALOG_EditCopy(); break;
46 case NP_EDIT_PASTE: DIALOG_EditPaste(); break;
47 case NP_EDIT_DELETE: DIALOG_EditDelete(); break;
48 case NP_EDIT_SELECTALL: DIALOG_EditSelectAll(); break;
49 case NP_EDIT_TIMEDATE: DIALOG_EditTimeDate();break;
50 case NP_EDIT_WRAP: DIALOG_EditWrap(); break;
52 case NP_SEARCH_SEARCH: DIALOG_Search(); break;
53 case NP_SEARCH_NEXT: DIALOG_SearchNext(); break;
55 case NP_HELP_CONTENTS: DIALOG_HelpContents(); break;
56 case NP_HELP_SEARCH: DIALOG_HelpSearch(); break;
57 case NP_HELP_ON_HELP: DIALOG_HelpHelp(); break;
58 case NP_HELP_LICENSE: DIALOG_HelpLicense(); break;
59 case NP_HELP_NO_WARRANTY: DIALOG_HelpNoWarranty(); break;
60 case NP_HELP_ABOUT_WINE: DIALOG_HelpAboutWine(); break;
62 // Handle languages
63 default:
64 LANGUAGE_DefaultHandle(wParam);
66 return 0;
71 /***********************************************************************
73 * NOTEPAD_WndProc
76 LRESULT NOTEPAD_WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
78 PAINTSTRUCT ps;
80 switch (msg) {
82 case WM_CREATE:
83 break;
85 case WM_PAINT:
86 BeginPaint(hWnd, &ps);
87 EndPaint(hWnd, &ps);
88 break;
90 case WM_COMMAND:
91 NOTEPAD_MenuCommand(wParam);
92 break;
94 case WM_DESTROY:
95 PostQuitMessage (0);
96 break;
98 default:
99 return DefWindowProc (hWnd, msg, wParam, lParam);
101 return 0l;
106 /***********************************************************************
108 * WinMain
111 int PASCAL WinMain (HANDLE hInstance, HANDLE prev, LPSTR cmdline, int show)
113 MSG msg;
114 WNDCLASS class;
115 char className[] = "NPClass"; /* To make sure className >= 0x10000 */
116 char winName[] = "Notepad";
118 #if defined(WINELIB) && !defined(HAVE_WINE_CONSTRUCTOR)
119 /* Register resources */
120 LIBWINE_Register_De();
121 LIBWINE_Register_En();
122 LIBWINE_Register_Sw();
123 #endif
125 /* Setup Globals */
127 Globals.lpszIniFile = "notepad.ini";
128 Globals.lpszIcoFile = "notepad.ico";
130 /* Select Language */
131 LANGUAGE_Init();
133 Globals.hInstance = hInstance;
134 Globals.hMainIcon = ExtractIcon(Globals.hInstance,
135 Globals.lpszIcoFile, 0);
136 if (!Globals.hMainIcon) Globals.hMainIcon =
137 LoadIcon(0, MAKEINTRESOURCE(DEFAULTICON));
139 lstrcpyn(Globals.szFindText, "\0", 1);
140 lstrcpyn(Globals.szFileName, "\0", 1);
142 if (!prev){
143 class.style = CS_HREDRAW | CS_VREDRAW;
144 class.lpfnWndProc = NOTEPAD_WndProc;
145 class.cbClsExtra = 0;
146 class.cbWndExtra = 0;
147 class.hInstance = Globals.hInstance;
148 class.hIcon = LoadIcon (0, IDI_APPLICATION);
149 class.hCursor = LoadCursor (0, IDC_ARROW);
150 class.hbrBackground = GetStockObject (WHITE_BRUSH);
151 class.lpszMenuName = 0;
152 class.lpszClassName = className;
155 if (!RegisterClass (&class))
156 return FALSE;
158 Globals.hMainWnd = CreateWindow (className, winName, WS_OVERLAPPEDWINDOW,
159 CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0,
160 LoadMenu(Globals.hInstance, STRING_MENU_Xx),
161 Globals.hInstance, 0);
163 LANGUAGE_SelectByName(Globals.lpszLanguage);
165 SetMenu(Globals.hMainWnd, Globals.hMainMenu);
167 ShowWindow (Globals.hMainWnd, show);
168 UpdateWindow (Globals.hMainWnd);
171 while (GetMessage (&msg, 0, 0, 0)) {
172 TranslateMessage (&msg);
173 DispatchMessage (&msg);
175 return 0;
178 /* Local Variables: */
179 /* c-file-style: "GNU" */
180 /* End: */