4 * Copyright 1997 Marcel Baur <mbaur@g26.ethz.ch>
12 NOTEPAD_GLOBALS Globals
;
14 CHAR STRING_MENU_Xx
[] = "MENU_En";
15 CHAR STRING_PAGESETUP_Xx
[] = "DIALOG_PAGESETUP_En";
17 /***********************************************************************
19 * NOTEPAD_RegisterLanguages
21 * Handle language stuff at startup
24 void NOTEPAD_RegisterLanguages(void) {
26 LPCSTR opt_lang
= "En";
30 /* Find language specific string table */
31 for (langnum
= 0; langnum
<= MAX_LANGUAGE_NUMBER
; langnum
++)
33 Globals
.wStringTableOffset
= langnum
* 0x100;
34 if (LoadString(Globals
.hInstance
, IDS_LANGUAGE_ID
, lang
,
35 sizeof(lang
)) && !lstrcmp(opt_lang
, lang
))
38 if (langnum
> MAX_LANGUAGE_NUMBER
)
40 /* Find fallback language */
41 for (langnum
= 0; langnum
<= MAX_LANGUAGE_NUMBER
; langnum
++)
43 Globals
.wStringTableOffset
= langnum
* 0x100;
44 if (LoadString(Globals
.hInstance
, IDS_LANGUAGE_ID
, lang
, sizeof(lang
)))
47 if (langnum
> MAX_LANGUAGE_NUMBER
)
49 MessageBox(0, "No language found", "FATAL ERROR", MB_OK
);
54 /* Change Resource names */
55 lstrcpyn(STRING_MENU_Xx
+ lstrlen(STRING_MENU_Xx
) - 2, lang
, 3);
59 /***********************************************************************
63 * All handling of main menu events
66 int NOTEPAD_MenuCommand (WPARAM wParam
)
68 printf("NOTEPAD_MenuCommand()\n");
71 case NP_FILE_NEW
: break;
72 case NP_FILE_SAVE
: break;
73 case NP_FILE_SAVEAS
: break;
74 case NP_FILE_PRINT
: break;
75 case NP_FILE_PAGESETUP
: break;
76 case NP_FILE_PRINTSETUP
: break;
82 case NP_EDIT_UNDO
: break;
83 case NP_EDIT_CUT
: break;
84 case NP_EDIT_COPY
: break;
85 case NP_EDIT_PASTE
: break;
86 case NP_EDIT_DELETE
: break;
87 case NP_EDIT_TIMEDATE
: break;
89 Globals
.bWrapLongLines
= !Globals
.bWrapLongLines
;
90 CheckMenuItem(Globals
.hEditMenu
, NP_EDIT_WRAP
, MF_BYCOMMAND
|
91 (Globals
.bWrapLongLines
? MF_CHECKED
: MF_UNCHECKED
));
94 case NP_SEARCH_SEARCH
: break;
95 case NP_SEARCH_NEXT
: break;
97 case NP_HELP_CONTENTS
:
98 printf("NP_HELP_CONTENTS\n");
99 WinHelp(Globals
.hMainWnd
, HELPFILE
, HELP_INDEX
, 0);
102 case NP_HELP_SEARCH
: break;
104 case NP_HELP_ON_HELP
:
105 printf("NP_HELP_ON_HELP\n");
106 WinHelp(Globals
.hMainWnd
, HELPFILE
, HELP_HELPONHELP
, 0);
109 case NP_HELP_LICENSE
:
110 WineLicense(Globals
.hMainWnd
, Globals
.lpszLanguage
);
113 case NP_HELP_NO_WARRANTY
:
114 printf("NP_ABOUT_NO_WARRANTY\n");
115 WineWarranty(Globals
.hMainWnd
, Globals
.lpszLanguage
);
118 case NP_HELP_ABOUT_WINE
:
119 printf("NP_ABOUT_WINE\n");
120 ShellAbout(Globals
.hMainWnd
, "WINE", "Notepad", 0);
129 /***********************************************************************
134 LRESULT
NOTEPAD_WndProc (HWND hWnd
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
141 printf("WM_CREATE\n");
145 printf("WM_PAINT\n");
146 BeginPaint(hWnd
, &ps
);
151 printf("WM_COMMAND\n");
152 NOTEPAD_MenuCommand(wParam
);
156 printf("WM_DESTROY\n");
161 return DefWindowProc (hWnd
, msg
, wParam
, lParam
);
168 /***********************************************************************
173 void DumpGlobals(void) {
175 printf("DumpGlobals()");
176 printf(" Globals.lpszIniFile: %s\n", Globals
.lpszIniFile
);
177 printf(" Globals.lpszIcoFile: %s\n", Globals
.lpszIcoFile
);
178 printf("Globals.lpszLanguage: %s\n", Globals
.lpszLanguage
);
179 printf(" Globals.hInstance: %i\n", Globals
.hInstance
);
180 printf(" Globals.hMainMenu: %i\n", Globals
.hMainMenu
);
184 int PASCAL
WinMain (HANDLE hInstance
, HANDLE prev
, LPSTR cmdline
, int show
)
188 char className
[] = "NPClass"; /* To make sure className >= 0x10000 */
189 char winName
[] = "Notepad";
191 printf("WinMain()\n");
195 Globals
.lpszIniFile
= "notepad.ini";
196 Globals
.lpszIcoFile
= "notepad.ico";
197 Globals
.lpszLanguage
= "En";
198 Globals
.hInstance
= hInstance
;
199 Globals
.hMainMenu
= LoadMenu(Globals
.hInstance
, STRING_MENU_Xx
);
200 Globals
.hFileMenu
= GetSubMenu(Globals
.hMainMenu
, 0);
201 Globals
.hEditMenu
= GetSubMenu(Globals
.hMainMenu
, 1);
202 Globals
.hSearchMenu
= GetSubMenu(Globals
.hMainMenu
, 2);
203 Globals
.hLanguageMenu
= GetSubMenu(Globals
.hMainMenu
, 3);
204 Globals
.hHelpMenu
= GetSubMenu(Globals
.hMainMenu
, 4);
205 Globals
.hMainIcon
= ExtractIcon(Globals
.hInstance
,
206 Globals
.lpszIcoFile
, 0);
207 if (!Globals
.hMainIcon
) Globals
.hMainIcon
=
208 LoadIcon(0, MAKEINTRESOURCE(DEFAULTICON
));
213 class.style
= CS_HREDRAW
| CS_VREDRAW
;
214 class.lpfnWndProc
= NOTEPAD_WndProc
;
215 class.cbClsExtra
= 0;
216 class.cbWndExtra
= 0;
217 class.hInstance
= Globals
.hInstance
;
218 class.hIcon
= LoadIcon (0, IDI_APPLICATION
);
219 class.hCursor
= LoadCursor (0, IDC_ARROW
);
220 class.hbrBackground
= GetStockObject (WHITE_BRUSH
);
221 class.lpszMenuName
= "bla\0";
222 class.lpszClassName
= (SEGPTR
)className
;
224 if (!RegisterClass (&class))
227 Globals
.hMainWnd
= CreateWindow (className
, winName
, WS_OVERLAPPEDWINDOW
,
228 CW_USEDEFAULT
, 0, CW_USEDEFAULT
, 0, 0,
229 LoadMenu(Globals
.hInstance
, STRING_MENU_Xx
),
230 Globals
.hInstance
, 0);
232 SetMenu(Globals
.hMainWnd
, Globals
.hMainMenu
);
234 ShowWindow (Globals
.hMainWnd
, show
);
235 UpdateWindow (Globals
.hMainWnd
);
237 while (GetMessage (&msg
, 0, 0, 0)) {
238 TranslateMessage (&msg
);
239 DispatchMessage (&msg
);
247 /* Local Variables: */
248 /* c-file-style: "GNU" */