source: trunk/dll/notebook.c@ 756

Last change on this file since 756 was 756, checked in by Gregg Young, 18 years ago

Cleanup for ticket 138 & 24

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 90.4 KB
Line 
1
2/***********************************************************************
3
4 $Id: notebook.c 756 2007-08-03 23:33:52Z gyoung $
5
6 Configuration notebook
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2004, 2006 Steven H. Levine
10
11 01 Aug 04 SHL Rework lstrip/rstrip usage
12 23 May 05 SHL Use QWL_USER
13 04 Jun 05 SHL Support Cancel button; make Esc key more consistent
14 29 May 06 SHL Comments
15 17 Jul 06 SHL Use Runtime_Error
16 15 Aug 06 SHL Rework SetMask args
17 03 Aug 07 GKY Enlarged and made setable everywhere Findbuf (speed file loading)
18
19***********************************************************************/
20
21#define INCL_DOS
22#define INCL_WIN
23#include <os2.h>
24
25#include <stdio.h>
26#include <stdlib.h>
27#include <string.h>
28
29#include "fm3dll.h"
30#include "fm3dlg.h"
31#include "fm3str.h"
32
33#pragma data_seg(DATA2)
34
35static PSZ pszSrcFile = __FILE__;
36
37#pragma alloc_text(NOTEBOOK,CfgTDlgProc,CfgTSDlgProc,CfgMDlgProc)
38#pragma alloc_text(NOTEBOOK2,CfgADlgProc,CfgSDlgProc,CfgVDlgProc)
39#pragma alloc_text(NOTEBOOK3,CfgDDlgProc,Cfg5DlgProc,Cfg6DlgProc)
40#pragma alloc_text(NOTEBOOK4,Cfg7DlgProc,Cfg8DlgProc,CfgCDlgProc)
41#pragma alloc_text(NOTEBOOK5,CfgGDlgProc,CfgDlgProc,CfgBDlgProc)
42
43typedef struct
44{
45 USHORT frameid;
46 ULONG title;
47 PFNWP proc;
48 HWND hwnd;
49 ULONG helpid;
50 ULONG pageID;
51}
52NOTEPAGES;
53
54static HWND hwndNotebook;
55
56MRESULT EXPENTRY CfgADlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
57{
58 switch (msg) {
59 case WM_INITDLG:
60 WinSendDlgItemMsg(hwnd, CFGA_VIRUS, EM_SETTEXTLIMIT,
61 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
62 WinSendDlgItemMsg(hwnd, CFGA_EXTRACTPATH, EM_SETTEXTLIMIT,
63 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
64 WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), FALSE);
65 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
66 break;
67
68 case UM_UNDO:
69 WinCheckButton(hwnd, CFGA_ARCSTUFFVISIBLE, fArcStuffVisible);
70 WinCheckButton(hwnd, CFGA_FOLDERAFTEREXTRACT, fFolderAfterExtract);
71 WinCheckButton(hwnd, CFGA_QUICKARCFIND, fQuickArcFind);
72 WinCheckButton(hwnd, CFGA_DEFARC, (*szDefArc != 0));
73 WinSetDlgItemText(hwnd, CFGA_DEFARCNAME, szDefArc);
74 WinSetDlgItemText(hwnd, CFGA_VIRUS, virus);
75 WinSetDlgItemText(hwnd, CFGA_EXTRACTPATH, extractpath);
76 break;
77
78 case WM_CONTROL:
79 switch (SHORT1FROMMP(mp1)) {
80 case CFGA_VIRUS:
81 case CFGA_EXTRACTPATH:
82 switch (SHORT2FROMMP(mp1)) {
83 case EN_KILLFOCUS:
84 WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), FALSE);
85 break;
86 case EN_SETFOCUS:
87 WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), TRUE);
88 break;
89 }
90 break;
91 case CFGA_DEFARC:
92 switch (SHORT2FROMMP(mp1)) {
93 case BN_CLICKED:
94 if (WinQueryButtonCheckstate(hwnd, CFGA_DEFARC)) {
95
96 ARC_TYPE *pat = arcsighead; // Hide dups
97
98 if (!WinDlgBox(HWND_DESKTOP, hwnd,
99 SBoxDlgProc, FM3ModHandle, ASEL_FRAME,
100 (PVOID) & pat) || !pat || !pat->id || !*pat->id) {
101 DosBeep(250, 100); // Complain
102 WinCheckButton(hwnd, CFGA_DEFARC, FALSE);
103 }
104 else
105 WinSetDlgItemText(hwnd, CFGA_DEFARCNAME, pat->id);
106 }
107 break;
108 default:
109 break;
110 }
111 break;
112
113 default:
114 break;
115 }
116 return 0;
117
118 case WM_COMMAND:
119 switch (SHORT1FROMMP(mp1)) {
120 case IDM_UNDO:
121 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
122 break;
123
124 case DID_CANCEL:
125 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
126
127 case DID_OK:
128 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
129 break;
130
131 case IDM_HELP:
132 if (hwndHelp)
133 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
134 MPFROM2SHORT(HELP_CFGA, 0), MPFROMSHORT(HM_RESOURCEID));
135 break;
136
137 case CFGA_FIND:
138 {
139 CHAR filename[CCHMAXPATH + 9];
140 USHORT id;
141 HWND hwndFocus;
142
143 strcpy(filename, "*.EXE");
144 hwndFocus = WinQueryFocus(HWND_DESKTOP);
145 if (hwndFocus) {
146 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
147 switch (id) {
148 case CFGA_VIRUS:
149 if (insert_filename(hwnd, filename, 2, FALSE) && *filename)
150 WinSetDlgItemText(hwnd, id, filename);
151 break;
152 case CFGA_EXTRACTPATH:
153 strcpy(filename, extractpath);
154 if (WinDlgBox(HWND_DESKTOP, hwndNotebook,
155 WalkExtractDlgProc, FM3ModHandle, WALK_FRAME,
156 MPFROMP(filename)) && *filename)
157 WinSetDlgItemText(hwnd, id, filename);
158 break;
159 default:
160 Runtime_Error(pszSrcFile, __LINE__, "bad case");
161 break;
162 }
163 }
164 }
165 break;
166 }
167 return 0;
168
169 case WM_CLOSE:
170 fQuickArcFind = WinQueryButtonCheckstate(hwnd, CFGA_QUICKARCFIND);
171 PrfWriteProfileData(fmprof,
172 appname,
173 "QuickArcFind", &fQuickArcFind, sizeof(BOOL));
174 fArcStuffVisible = WinQueryButtonCheckstate(hwnd, CFGA_ARCSTUFFVISIBLE);
175 PrfWriteProfileData(fmprof,
176 appname,
177 "ArcStuffVisible", &fArcStuffVisible, sizeof(BOOL));
178 fFolderAfterExtract = WinQueryButtonCheckstate(hwnd,
179 CFGA_FOLDERAFTEREXTRACT);
180 PrfWriteProfileData(fmprof,
181 appname,
182 "FolderAfterExtract",
183 &fFolderAfterExtract, sizeof(BOOL));
184 if (WinQueryButtonCheckstate(hwnd, CFGA_DEFARC)) {
185
186 CHAR temp[CCHMAXPATH];
187
188 *temp = 0;
189 WinQueryDlgItemText(hwnd, CFGA_DEFARCNAME, CCHMAXPATH, temp);
190 strcpy(szDefArc, temp);
191 }
192 else
193 *szDefArc = 0;
194 PrfWriteProfileString(fmprof, appname, "DefArc", szDefArc);
195 WinQueryDlgItemText(hwnd, CFGA_VIRUS, CCHMAXPATH, virus);
196 virus[CCHMAXPATH - 1] = 0;
197 bstrip(virus);
198 if (!*virus)
199 strcpy(virus, "OS2SCAN.EXE %p /SUB /A");
200 WinQueryDlgItemText(hwnd, CFGA_EXTRACTPATH, CCHMAXPATH, extractpath);
201 extractpath[CCHMAXPATH - 1] = 0;
202 bstrip(extractpath);
203 if (*extractpath) {
204 if (strcmp(extractpath, "*")) {
205
206 MakeFullName(extractpath);
207 if (IsFile(extractpath)) {
208 Runtime_Error(pszSrcFile, __LINE__, "%s not a directory",
209 extractpath);
210 *extractpath = 0;
211 }
212 }
213 }
214 PrfWriteProfileString(fmprof, appname, "Virus", virus);
215 PrfWriteProfileString(fmprof, appname, "ExtractPath", extractpath);
216 break;
217 }
218 return WinDefDlgProc(hwnd, msg, mp1, mp2);
219}
220
221MRESULT EXPENTRY CfgSDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
222{
223 switch (msg) {
224 case WM_INITDLG:
225 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_SETTEXTLIMIT,
226 MPFROMSHORT(8), MPVOID);
227 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_OVERRIDESETLIMITS,
228 MPFROMLONG(102400), MPFROMLONG(2048));
229 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
230 break;
231
232 case UM_UNDO:
233 WinCheckButton(hwnd, CFGS_NOICONSFILES, (fNoIconsFiles == FALSE));
234 WinCheckButton(hwnd, CFGS_NOICONSDIRS, (fNoIconsDirs == FALSE));
235 WinCheckButton(hwnd, CFGS_LOADSUBJECTS, fLoadSubject);
236 WinCheckButton(hwnd, CFGS_LOADLONGNAMES, fLoadLongnames);
237 WinCheckButton(hwnd, CFGS_FORCELOWER, fForceLower);
238 WinCheckButton(hwnd, CFGS_FORCEUPPER, fForceUpper);
239 WinCheckButton(hwnd, CFGS_NOREMOVABLESCAN, fNoRemovableScan);
240 WinCheckButton(hwnd, CFGS_REMOTEBUG, fRemoteBug);
241 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_SETCURRENTVALUE,
242 MPFROMLONG(FilesToGet), MPVOID);
243 return 0;
244
245 case WM_CONTROL:
246 switch (SHORT1FROMMP(mp1)) {
247 case CFGS_FORCEUPPER:
248 case CFGS_FORCELOWER:
249 {
250 BOOL temp;
251
252 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
253 if (temp) {
254 switch (SHORT1FROMMP(mp1)) {
255 case CFGS_FORCEUPPER:
256 WinCheckButton(hwnd, CFGS_FORCELOWER, FALSE);
257 break;
258 case CFGS_FORCELOWER:
259 WinCheckButton(hwnd, CFGS_FORCEUPPER, FALSE);
260 break;
261 }
262 }
263 }
264 break;
265 }
266 return 0;
267
268 case WM_COMMAND:
269 switch (SHORT1FROMMP(mp1)) {
270 case IDM_UNDO:
271 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
272 break;
273
274 case DID_CANCEL:
275 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
276
277 case DID_OK:
278 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
279 break;
280
281 case IDM_HELP:
282 if (hwndHelp)
283 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
284 MPFROM2SHORT(HELP_CFGS, 0), MPFROMSHORT(HM_RESOURCEID));
285 break;
286 }
287 return 0;
288
289 case WM_CLOSE:
290 fLoadLongnames = WinQueryButtonCheckstate(hwnd, CFGS_LOADLONGNAMES);
291 PrfWriteProfileData(fmprof, appname, "LoadLongname", &fLoadLongnames,
292 sizeof(BOOL));
293 fLoadSubject = WinQueryButtonCheckstate(hwnd, CFGS_LOADSUBJECTS);
294 PrfWriteProfileData(fmprof, appname, "LoadSubject", &fLoadSubject,
295 sizeof(BOOL));
296 fRemoteBug = WinQueryButtonCheckstate(hwnd, CFGS_REMOTEBUG);
297 PrfWriteProfileData(fmprof, appname, "RemoteBug", &fRemoteBug,
298 sizeof(BOOL));
299 fNoRemovableScan = WinQueryButtonCheckstate(hwnd, CFGS_NOREMOVABLESCAN);
300 PrfWriteProfileData(fmprof, FM3Str, "NoRemovableScan", &fNoRemovableScan,
301 sizeof(BOOL));
302 fNoIconsFiles = WinQueryButtonCheckstate(hwnd, CFGS_NOICONSFILES);
303 fNoIconsFiles = (fNoIconsFiles) ? FALSE : TRUE;
304 PrfWriteProfileData(fmprof, appname, "NoIconsFiles",
305 &fNoIconsFiles, sizeof(BOOL));
306 fNoIconsDirs = WinQueryButtonCheckstate(hwnd, CFGS_NOICONSDIRS);
307 fNoIconsDirs = (fNoIconsDirs) ? FALSE : TRUE;
308 PrfWriteProfileData(fmprof, appname, "NoIconsDirs",
309 &fNoIconsDirs, sizeof(BOOL));
310 fForceUpper = WinQueryButtonCheckstate(hwnd, CFGS_FORCEUPPER);
311 PrfWriteProfileData(fmprof, appname, "ForceUpper",
312 &fForceUpper, sizeof(BOOL));
313 fForceLower = WinQueryButtonCheckstate(hwnd, CFGS_FORCELOWER);
314 PrfWriteProfileData(fmprof, appname, "ForceLower",
315 &fForceLower, sizeof(BOOL));
316 {
317 ULONG temp = 0;
318
319 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_QUERYVALUE,
320 MPFROMP(&temp), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
321 if (temp < 2048)
322 temp = 2048;
323 else if (temp > 102400)
324 temp = 102400;
325 FilesToGet = temp;
326 PrfWriteProfileData(fmprof,
327 appname, "FilesToGet", &FilesToGet, sizeof(ULONG));
328 }
329 break;
330 }
331 return WinDefDlgProc(hwnd, msg, mp1, mp2);
332}
333
334MRESULT EXPENTRY CfgVDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
335{
336 switch (msg) {
337 case WM_INITDLG:
338 WinSendDlgItemMsg(hwnd, CFGV_VIEWER, EM_SETTEXTLIMIT,
339 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
340 WinSendDlgItemMsg(hwnd, CFGV_EDITOR, EM_SETTEXTLIMIT,
341 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
342 WinSendDlgItemMsg(hwnd, CFGV_BINVIEW, EM_SETTEXTLIMIT,
343 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
344 WinSendDlgItemMsg(hwnd, CFGV_BINED, EM_SETTEXTLIMIT,
345 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
346 WinSendDlgItemMsg(hwnd, CFGV_FTPRUN, EM_SETTEXTLIMIT,
347 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
348 WinSendDlgItemMsg(hwnd, CFGV_HTTPRUN, EM_SETTEXTLIMIT,
349 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
350 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE);
351 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
352 break;
353
354 case UM_UNDO:
355 WinSetDlgItemText(hwnd, CFGV_VIEWER, viewer);
356 WinSetDlgItemText(hwnd, CFGV_EDITOR, editor);
357 WinSetDlgItemText(hwnd, CFGV_BINVIEW, binview);
358 WinSetDlgItemText(hwnd, CFGV_BINED, bined);
359 WinSetDlgItemText(hwnd, CFGV_FTPRUN, ftprun);
360 WinSetDlgItemText(hwnd, CFGV_HTTPRUN, httprun);
361 WinCheckButton(hwnd, CFGV_USENEWVIEWER, fUseNewViewer);
362 WinCheckButton(hwnd, CFGV_GUESSTYPE, fGuessType);
363 WinCheckButton(hwnd, CFGV_VIEWCHILD, fViewChild);
364 WinCheckButton(hwnd, CFGV_CHECKMM, fCheckMM);
365 return 0;
366
367 case WM_CONTROL:
368 switch (SHORT1FROMMP(mp1)) {
369 case CFGV_VIEWER:
370 case CFGV_EDITOR:
371 case CFGV_BINVIEW:
372 case CFGV_BINED:
373 case CFGV_HTTPRUN:
374 case CFGV_FTPRUN:
375 switch (SHORT2FROMMP(mp1)) {
376 case EN_KILLFOCUS:
377 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE);
378 break;
379 case EN_SETFOCUS:
380 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), TRUE);
381 break;
382 }
383 break;
384 }
385 return 0;
386
387 case WM_COMMAND:
388 switch (SHORT1FROMMP(mp1)) {
389 case IDM_UNDO:
390 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
391 break;
392
393 case DID_CANCEL:
394 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
395
396 case DID_OK:
397 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
398 break;
399
400 case IDM_HELP:
401 if (hwndHelp)
402 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
403 MPFROM2SHORT(HELP_CFGV, 0), MPFROMSHORT(HM_RESOURCEID));
404 break;
405
406 case CFGV_FIND:
407 {
408 CHAR filename[CCHMAXPATH + 9];
409 USHORT id;
410 HWND hwndFocus;
411
412 strcpy(filename, "*.EXE");
413 hwndFocus = WinQueryFocus(HWND_DESKTOP);
414 if (hwndFocus) {
415 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
416 switch (id) {
417 case CFGV_BINVIEW:
418 case CFGV_BINED:
419 case CFGV_VIEWER:
420 case CFGV_EDITOR:
421 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
422 strcat(filename, " %a");
423 WinSetDlgItemText(hwnd, id, filename);
424 }
425 break;
426 case CFGV_HTTPRUN:
427 case CFGV_FTPRUN:
428 if (insert_filename(hwnd, filename, 2, FALSE) && *filename)
429 WinSetDlgItemText(hwnd, id, filename);
430 break;
431 default:
432 Runtime_Error(pszSrcFile, __LINE__, "bad case %d", id);
433 break;
434 }
435 }
436 }
437 break;
438 }
439 return 0;
440
441 case WM_CLOSE:
442 WinQueryDlgItemText(hwnd, CFGV_VIEWER, CCHMAXPATH, viewer);
443 viewer[CCHMAXPATH - 1] = 0;
444 bstrip(viewer);
445 WinQueryDlgItemText(hwnd, CFGV_EDITOR, CCHMAXPATH, editor);
446 editor[CCHMAXPATH - 1] = 0;
447 bstrip(editor);
448 WinQueryDlgItemText(hwnd, CFGV_BINVIEW, CCHMAXPATH, binview);
449 binview[CCHMAXPATH - 1] = 0;
450 bstrip(binview);
451 WinQueryDlgItemText(hwnd, CFGV_BINED, CCHMAXPATH, bined);
452 bined[CCHMAXPATH - 1] = 0;
453 bstrip(bined);
454 WinQueryDlgItemText(hwnd, CFGV_FTPRUN, CCHMAXPATH, ftprun);
455 ftprun[CCHMAXPATH - 1] = 0;
456 bstrip(ftprun);
457 WinQueryDlgItemText(hwnd, CFGV_HTTPRUN, CCHMAXPATH, httprun);
458 httprun[CCHMAXPATH - 1] = 0;
459 bstrip(httprun);
460 PrfWriteProfileString(fmprof, appname, "Viewer", viewer);
461 PrfWriteProfileString(fmprof, appname, "Editor", editor);
462 PrfWriteProfileString(fmprof, appname, "BinView", binview);
463 PrfWriteProfileString(fmprof, appname, "BinEd", bined);
464 PrfWriteProfileString(fmprof, appname, "FTPRun", ftprun);
465 PrfWriteProfileString(fmprof, appname, "HTTPRun", httprun);
466 fUseNewViewer = WinQueryButtonCheckstate(hwnd, CFGV_USENEWVIEWER);
467 PrfWriteProfileData(fmprof, appname, "UseNewViewer", &fUseNewViewer,
468 sizeof(BOOL));
469 fGuessType = WinQueryButtonCheckstate(hwnd, CFGV_GUESSTYPE);
470 PrfWriteProfileData(fmprof, appname, "GuessType", &fGuessType,
471 sizeof(BOOL));
472 fViewChild = WinQueryButtonCheckstate(hwnd, CFGV_VIEWCHILD);
473 PrfWriteProfileData(fmprof, appname, "ViewChild", &fViewChild,
474 sizeof(BOOL));
475 fCheckMM = WinQueryButtonCheckstate(hwnd, CFGV_CHECKMM);
476 PrfWriteProfileData(fmprof, appname, "CheckMM", &fCheckMM, sizeof(BOOL));
477 break;
478 }
479 return WinDefDlgProc(hwnd, msg, mp1, mp2);
480}
481
482MRESULT EXPENTRY CfgBDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
483{
484 switch (msg) {
485 case WM_INITDLG:
486 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
487 break;
488
489 case UM_UNDO:
490 WinCheckButton(hwnd, CFGB_TOOLBARHELP, fToolbarHelp);
491 WinCheckButton(hwnd, CFGB_DRIVEBARHELP, fDrivebarHelp);
492 WinCheckButton(hwnd, CFGB_OTHERHELP, fOtherHelp);
493 return 0;
494
495 case WM_COMMAND:
496 switch (SHORT1FROMMP(mp1)) {
497 case IDM_UNDO:
498 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
499 break;
500
501 case DID_CANCEL:
502 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
503
504 case DID_OK:
505 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
506 break;
507
508 case IDM_HELP:
509 if (hwndHelp)
510 WinSendMsg(hwndHelp,
511 HM_DISPLAY_HELP,
512 MPFROM2SHORT(HELP_CFGB, 0), MPFROMSHORT(HM_RESOURCEID));
513 break;
514 }
515 return 0;
516
517 case WM_CLOSE:
518 fToolbarHelp = WinQueryButtonCheckstate(hwnd, CFGB_TOOLBARHELP);
519 PrfWriteProfileData(fmprof,
520 FM3Str, "ToolbarHelp", &fToolbarHelp, sizeof(BOOL));
521 fDrivebarHelp = WinQueryButtonCheckstate(hwnd, CFGB_DRIVEBARHELP);
522 PrfWriteProfileData(fmprof,
523 FM3Str, "DrivebarHelp", &fDrivebarHelp, sizeof(BOOL));
524 fOtherHelp = WinQueryButtonCheckstate(hwnd, CFGB_OTHERHELP);
525 PrfWriteProfileData(fmprof,
526 FM3Str, "OtherHelp", &fOtherHelp, sizeof(BOOL));
527 break;
528 }
529 return WinDefDlgProc(hwnd, msg, mp1, mp2);
530}
531
532MRESULT EXPENTRY CfgTSDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
533{
534 static MASK mask;
535
536 switch (msg) {
537 case WM_INITDLG:
538 WinSendDlgItemMsg(hwnd,
539 CFG5_FILTER,
540 EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
541 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
542 break;
543
544 case UM_FOCUSME:
545 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, IDM_HELP));
546 return 0;
547
548 case UM_UNDO:
549 {
550 ULONG flWindowAttr = 0, size = sizeof(ULONG);
551
552 if (!PrfQueryProfileData(fmprof,
553 appname,
554 "TreeflWindowAttr",
555 (PVOID) & flWindowAttr, &size))
556 flWindowAttr |= (CV_TREE | CA_TREELINE | CV_ICON | CV_MINI | CV_FLOW);
557 WinCheckButton(hwnd, CFG5_ICON, ((flWindowAttr & CV_ICON) != FALSE));
558 WinCheckButton(hwnd, CFG5_MINIICONS,
559 ((flWindowAttr & CV_MINI) != FALSE));
560 memset(&mask, 0, sizeof(mask));
561 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
562 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
563 mask.fIsTree = TRUE;
564 size = sizeof(MASK);
565 if (PrfQueryProfileData(fmprof, appname, "TreeFilter", &mask, &size)) {
566 SetMask(NULL, &mask);
567 }
568 if (!mask.attrFile)
569 mask.attrFile = (FILE_READONLY | FILE_NORMAL |
570 FILE_ARCHIVED | FILE_DIRECTORY |
571 FILE_HIDDEN | FILE_SYSTEM);
572 strcpy(mask.prompt, GetPString(IDS_TREEFILTERTITLETEXT));
573 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
574 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
575 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
576 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
577 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
578 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
579 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
580 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
581 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
582 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
583 if (TreesortFlags & SORT_FIRSTEXTENSION)
584 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
585 else if (TreesortFlags & SORT_LASTEXTENSION)
586 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
587 else if (TreesortFlags & SORT_SIZE)
588 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
589 else if (TreesortFlags & SORT_EASIZE)
590 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
591 else if (TreesortFlags & SORT_LWDATE)
592 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
593 else if (TreesortFlags & SORT_LADATE)
594 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
595 else if (TreesortFlags & SORT_CRDATE)
596 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
597 else if (TreesortFlags & SORT_FILENAME)
598 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
599 else
600 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
601 if (TreesortFlags & SORT_REVERSE)
602 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
603 }
604 return 0;
605
606 case UM_SETUP5:
607 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
608 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
609 SetMask(NULL, &mask);
610 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
611 }
612 return 0;
613
614 case WM_CONTROL:
615 switch (SHORT1FROMMP(mp1)) {
616 case CFG5_FILTER:
617 switch (SHORT2FROMMP(mp1)) {
618 case EN_SETFOCUS:
619 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
620 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
621 break;
622 }
623 break;
624 }
625 return 0;
626
627 case WM_COMMAND:
628 switch (SHORT1FROMMP(mp1)) {
629 case IDM_UNDO:
630 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
631 break;
632
633 case DID_CANCEL:
634 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
635
636 case DID_OK:
637 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
638 break;
639
640 case IDM_HELP:
641 if (hwndHelp)
642 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
643 MPFROM2SHORT(HELP_TREEVIEW, 0),
644 MPFROMSHORT(HM_RESOURCEID));
645 break;
646 }
647 return 0;
648
649 case WM_CLOSE:
650 {
651 ULONG flWindowAttr = 0;
652
653 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
654 flWindowAttr |= CV_ICON;
655 else
656 flWindowAttr |= CV_TEXT;
657 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
658 flWindowAttr |= CV_MINI;
659 flWindowAttr |= (CV_TREE | CV_FLOW | CA_TREELINE);
660 PrfWriteProfileData(fmprof,
661 appname,
662 "TreeflWindowAttr", &flWindowAttr, sizeof(ULONG));
663 if (hwndTree) {
664
665 CNRINFO cnri;
666
667 memset(&cnri, 0, sizeof(cnri));
668 cnri.cb = sizeof(cnri);
669 WinSendMsg(WinWindowFromID
670 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
671 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
672 cnri.flWindowAttr = flWindowAttr;
673 WinSendMsg(WinWindowFromID
674 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
675 CM_SETCNRINFO, MPFROMP(&cnri),
676 MPFROMLONG(CMA_FLWINDOWATTR));
677 }
678 }
679 TreesortFlags = 0;
680 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
681 TreesortFlags |= SORT_FILENAME;
682 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
683 TreesortFlags |= SORT_SIZE;
684 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
685 TreesortFlags |= SORT_EASIZE;
686 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
687 TreesortFlags |= SORT_FIRSTEXTENSION;
688 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
689 TreesortFlags |= SORT_LASTEXTENSION;
690 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
691 TreesortFlags |= SORT_LWDATE;
692 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
693 TreesortFlags |= SORT_LADATE;
694 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
695 TreesortFlags |= SORT_CRDATE;
696 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
697 TreesortFlags |= SORT_DIRSFIRST;
698 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
699 TreesortFlags |= SORT_DIRSLAST;
700 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
701 TreesortFlags |= SORT_REVERSE;
702 PrfWriteProfileData(fmprof, appname, "TreeSort", &TreesortFlags,
703 sizeof(INT));
704 if (hwndTree)
705 PostMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_RESORT, 0), MPVOID);
706 *mask.prompt = 0;
707 PrfWriteProfileData(fmprof, appname, "TreeFilter", &mask, sizeof(MASK));
708 if (hwndTree) {
709
710 DIRCNRDATA *dcd;
711
712 dcd = WinQueryWindowPtr(WinWindowFromID(WinWindowFromID(hwndTree,
713 FID_CLIENT),
714 TREE_CNR), QWL_USER);
715 if (dcd && dcd->size == sizeof(DIRCNRDATA)) {
716 dcd->mask = mask;
717 PostMsg(hwndTree, UM_FILTER, MPVOID, MPVOID);
718 }
719 }
720 break;
721 }
722 return WinDefDlgProc(hwnd, msg, mp1, mp2);
723}
724
725MRESULT EXPENTRY CfgTDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
726{
727 switch (msg) {
728 case WM_INITDLG:
729 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
730 break;
731
732 case UM_UNDO:
733 WinCheckButton(hwnd, CFGT_FOLLOWTREE, fFollowTree);
734 WinCheckButton(hwnd, CFGT_TOPDIR, fTopDir);
735 WinCheckButton(hwnd, CFGT_DCOPENS, fDCOpens);
736 WinCheckButton(hwnd, CFGT_VTREEOPENSWPS, fVTreeOpensWPS);
737 WinCheckButton(hwnd, CFGT_COLLAPSEFIRST, fCollapseFirst);
738 WinCheckButton(hwnd, CFGT_SWITCHTREEONFOCUS, fSwitchTreeOnFocus);
739 WinCheckButton(hwnd, CFGT_SWITCHTREE, fSwitchTree);
740 WinCheckButton(hwnd, CFGT_SWITCHTREEEXPAND, fSwitchTreeExpand);
741 WinCheckButton(hwnd, CFGT_SHOWENV, fShowEnv);
742 return 0;
743
744 case WM_COMMAND:
745 switch (SHORT1FROMMP(mp1)) {
746 case IDM_UNDO:
747 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
748 break;
749
750 case DID_CANCEL:
751 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
752
753 case DID_OK:
754 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
755 break;
756
757 case IDM_HELP:
758 if (hwndHelp)
759 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
760 MPFROM2SHORT(HELP_CFGT, 0), MPFROMSHORT(HM_RESOURCEID));
761 break;
762 }
763 return 0;
764
765 case WM_CLOSE:
766 fVTreeOpensWPS = WinQueryButtonCheckstate(hwnd, CFGT_VTREEOPENSWPS);
767 PrfWriteProfileData(fmprof, FM3Str, "VTreeOpensWPS", &fVTreeOpensWPS,
768 sizeof(BOOL));
769 fCollapseFirst = WinQueryButtonCheckstate(hwnd, CFGT_COLLAPSEFIRST);
770 PrfWriteProfileData(fmprof, appname, "CollapseFirst", &fCollapseFirst,
771 sizeof(BOOL));
772 fSwitchTreeOnFocus = WinQueryButtonCheckstate(hwnd,
773 CFGT_SWITCHTREEONFOCUS);
774 PrfWriteProfileData(fmprof, appname, "SwitchTreeOnFocus",
775 &fSwitchTreeOnFocus, sizeof(BOOL));
776 fSwitchTreeExpand = WinQueryButtonCheckstate(hwnd, CFGT_SWITCHTREEEXPAND);
777 PrfWriteProfileData(fmprof, appname, "SwitchTreeExpand",
778 &fSwitchTreeExpand, sizeof(BOOL));
779 fSwitchTree = WinQueryButtonCheckstate(hwnd, CFGT_SWITCHTREE);
780 PrfWriteProfileData(fmprof, appname, "SwitchTree", &fSwitchTree,
781 sizeof(BOOL));
782 fFollowTree = WinQueryButtonCheckstate(hwnd, CFGT_FOLLOWTREE);
783 PrfWriteProfileData(fmprof, appname, "FollowTree", &fFollowTree,
784 sizeof(BOOL));
785 fTopDir = WinQueryButtonCheckstate(hwnd, CFGT_TOPDIR);
786 PrfWriteProfileData(fmprof, appname, "TopDir", (PVOID) & fTopDir,
787 sizeof(BOOL));
788 fDCOpens = WinQueryButtonCheckstate(hwnd, CFGT_DCOPENS);
789 PrfWriteProfileData(fmprof, FM3Str, "DoubleClickOpens", &fDCOpens,
790 sizeof(BOOL));
791 if (hwndTree && fShowEnv != WinQueryButtonCheckstate(hwnd, CFGT_SHOWENV))
792 PostMsg(WinWindowFromID
793 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR), WM_COMMAND,
794 MPFROM2SHORT(IDM_RESCAN, 0), MPVOID);
795 fShowEnv = WinQueryButtonCheckstate(hwnd, CFGT_SHOWENV);
796 PrfWriteProfileData(fmprof, appname, "ShowEnv", &fShowEnv, sizeof(BOOL));
797 break;
798 }
799 return WinDefDlgProc(hwnd, msg, mp1, mp2);
800}
801
802MRESULT EXPENTRY CfgGDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
803{
804 switch (msg) {
805 case WM_INITDLG:
806 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
807 break;
808
809 case UM_UNDO:
810 WinCheckButton(hwnd, CFGG_CONFIRMDELETE, fConfirmDelete);
811 WinCheckButton(hwnd, CFGG_VERIFYWRITES, fVerify);
812 WinCheckButton(hwnd, CFGG_LINKSETSICON, fLinkSetsIcon);
813 WinCheckButton(hwnd, CFGG_DONTMOVEMOUSE, fDontMoveMouse);
814 WinCheckButton(hwnd, CFGG_DEFAULTCOPY, fCopyDefault);
815 WinCheckButton(hwnd, CFGG_IDLECOPY, fRealIdle);
816 WinCheckButton(hwnd, CFGG_DNDDLG, fDragndropDlg);
817 WinCheckButton(hwnd, CFGG_DEFAULTDELETEPERM, fDefaultDeletePerm);
818 {
819 long th = fNoFinger ? 2 : (fNoDead ? 1 : 0);
820 WinCheckButton(hwnd, CFGG_NODEAD, th);
821 }
822 WinCheckButton(hwnd, CFGG_BORING, fDullMin);
823 WinCheckButton(hwnd, CFGG_CUSTOMFILEDLG, fCustomFileDlg);
824 WinCheckButton(hwnd, CFGG_FM2DELETES, fFM2Deletes);
825 WinCheckButton(hwnd, CFGG_CONFIRMTARGET, fConfirmTarget);
826 WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
827 return 0;
828
829 case UM_FOCUSME:
830 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, IDM_HELP));
831 return 0;
832
833 case UM_SETUP5:
834 SetTargetDir(hwnd, FALSE);
835 WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
836 return 0;
837
838 case WM_CONTROL:
839 switch (SHORT1FROMMP(mp1)) {
840 case CFGG_TARGETDIR:
841 switch (SHORT2FROMMP(mp1)) {
842 case EN_SETFOCUS:
843 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
844 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
845 break;
846 }
847 break;
848 }
849 return 0;
850
851 case WM_COMMAND:
852 switch (SHORT1FROMMP(mp1)) {
853 case IDM_UNDO:
854 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
855 break;
856
857 case DID_CANCEL:
858 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
859
860 case DID_OK:
861 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
862 break;
863
864 case IDM_HELP:
865 if (hwndHelp)
866 WinSendMsg(hwndHelp,
867 HM_DISPLAY_HELP,
868 MPFROM2SHORT(HELP_CFGG, 0), MPFROMSHORT(HM_RESOURCEID));
869 break;
870 }
871 return 0;
872
873 case WM_CLOSE:
874 {
875 long test;
876
877 test = WinQueryButtonCheckstate(hwnd, CFGG_NODEAD);
878 fNoDead = (test == 1);
879 fNoFinger = (test == 2);
880 PrfWriteProfileData(fmprof, FM3Str, "NoDead", &fNoDead, sizeof(BOOL));
881 PrfWriteProfileData(fmprof,
882 FM3Str, "NoFinger", &fNoFinger, sizeof(BOOL));
883 WinDestroyPointer(hptrFinger);
884 if (!fNoDead)
885 hptrFinger = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, FINGER_ICON);
886 else
887 hptrFinger = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, FINGER2_ICON);
888 }
889 fLinkSetsIcon = WinQueryButtonCheckstate(hwnd, CFGG_LINKSETSICON);
890 PrfWriteProfileData(fmprof,
891 appname,
892 "LinkSetsIcon", &fLinkSetsIcon, sizeof(BOOL));
893 fCustomFileDlg = WinQueryButtonCheckstate(hwnd, CFGG_CUSTOMFILEDLG);
894 PrfWriteProfileData(fmprof,
895 FM3Str,
896 "CustomFileDlg", &fCustomFileDlg, sizeof(BOOL));
897 fDullMin = WinQueryButtonCheckstate(hwnd, CFGG_BORING);
898 PrfWriteProfileData(fmprof,
899 FM3Str, "DullDatabar", &fDullMin, sizeof(BOOL));
900 fConfirmDelete = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMDELETE);
901 PrfWriteProfileData(fmprof,
902 appname,
903 "ConfirmDelete", &fConfirmDelete, sizeof(BOOL));
904 fDontMoveMouse = WinQueryButtonCheckstate(hwnd, CFGG_DONTMOVEMOUSE);
905 PrfWriteProfileData(fmprof,
906 appname,
907 "DontMoveMouse", &fDontMoveMouse, sizeof(BOOL));
908 fCopyDefault = WinQueryButtonCheckstate(hwnd, CFGG_DEFAULTCOPY);
909 PrfWriteProfileData(fmprof, appname, "DefaultCopy",
910 &fCopyDefault, sizeof(BOOL));
911 fRealIdle = WinQueryButtonCheckstate(hwnd, CFGG_IDLECOPY);
912 PrfWriteProfileData(fmprof, appname, "IdleCopy",
913 &fRealIdle, sizeof(BOOL));
914 fDragndropDlg = WinQueryButtonCheckstate(hwnd, CFGG_DNDDLG);
915 PrfWriteProfileData(fmprof, appname, "Drag&DropDlg",
916 &fDragndropDlg, sizeof(BOOL));
917 fVerify = WinQueryButtonCheckstate(hwnd, CFGG_VERIFYWRITES);
918 PrfWriteProfileData(fmprof, appname, "VerifyWrites",
919 &fVerify, sizeof(BOOL));
920 DosSetVerify(fVerify);
921 fDefaultDeletePerm = WinQueryButtonCheckstate(hwnd,
922 CFGG_DEFAULTDELETEPERM);
923 PrfWriteProfileData(fmprof, appname, "DefaultDeletePerm",
924 &fDefaultDeletePerm, sizeof(BOOL));
925 fFM2Deletes = WinQueryButtonCheckstate(hwnd, CFGG_FM2DELETES);
926 PrfWriteProfileData(fmprof, FM3Str, "FM2Deletes",
927 &fFM2Deletes, sizeof(BOOL));
928 fConfirmTarget = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMTARGET);
929 PrfWriteProfileData(fmprof, appname, "ConfirmTarget",
930 &fConfirmTarget, sizeof(BOOL));
931 break;
932 }
933 return WinDefDlgProc(hwnd, msg, mp1, mp2);
934}
935
936MRESULT EXPENTRY CfgCDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
937{
938 switch (msg) {
939 case WM_INITDLG:
940 WinSendDlgItemMsg(hwnd, CFGC_COMPARE, EM_SETTEXTLIMIT,
941 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
942 WinSendDlgItemMsg(hwnd, CFGC_DIRCOMPARE, EM_SETTEXTLIMIT,
943 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
944 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
945 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
946 break;
947
948 case UM_UNDO:
949 WinSetDlgItemText(hwnd, CFGC_COMPARE, compare);
950 WinSetDlgItemText(hwnd, CFGC_DIRCOMPARE, dircompare);
951 return 0;
952
953 case WM_CONTROL:
954 switch (SHORT1FROMMP(mp1)) {
955 case CFGC_COMPARE:
956 case CFGC_DIRCOMPARE:
957 switch (SHORT2FROMMP(mp1)) {
958 case EN_KILLFOCUS:
959 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
960 break;
961 case EN_SETFOCUS:
962 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), TRUE);
963 break;
964 }
965 break;
966 }
967 return 0;
968
969 case WM_COMMAND:
970 switch (SHORT1FROMMP(mp1)) {
971 case IDM_UNDO:
972 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
973 break;
974
975 case DID_CANCEL:
976 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
977
978 case DID_OK:
979 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
980 break;
981
982 case IDM_HELP:
983 if (hwndHelp)
984 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
985 MPFROM2SHORT(HELP_CFGC, 0), MPFROMSHORT(HM_RESOURCEID));
986 break;
987
988 case CFGC_FIND:
989 {
990 CHAR filename[CCHMAXPATH + 9];
991 USHORT id;
992 HWND hwndFocus;
993
994 strcpy(filename, "*.EXE");
995 hwndFocus = WinQueryFocus(HWND_DESKTOP);
996 if (hwndFocus) {
997 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
998 switch (id) {
999 case CFGC_COMPARE:
1000 case CFGC_DIRCOMPARE:
1001 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
1002 strcat(filename, " %a");
1003 WinSetDlgItemText(hwnd, id, filename);
1004 }
1005 break;
1006 default:
1007 Runtime_Error(pszSrcFile, __LINE__, "bad case %d", id);
1008 break;
1009 }
1010 }
1011 }
1012 break;
1013 }
1014 return 0;
1015
1016 case WM_CLOSE:
1017 WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, CCHMAXPATH, dircompare);
1018 dircompare[CCHMAXPATH - 1] = 0;
1019 bstrip(dircompare);
1020 PrfWriteProfileString(fmprof, appname, "DirCompare", dircompare);
1021 WinQueryDlgItemText(hwnd, CFGC_COMPARE, CCHMAXPATH, compare);
1022 compare[CCHMAXPATH - 1] = 0;
1023 bstrip(compare);
1024 PrfWriteProfileString(fmprof, appname, "Compare", compare);
1025 break;
1026 }
1027 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1028}
1029
1030MRESULT EXPENTRY CfgDDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1031{
1032 switch (msg) {
1033 case WM_INITDLG:
1034 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1035 break;
1036
1037 case UM_UNDO:
1038 WinCheckButton(hwnd, CFGD_UNHILITE, fUnHilite);
1039 WinCheckButton(hwnd, CFGD_SYNCUPDATES, fSyncUpdates);
1040 WinCheckButton(hwnd, CFGD_LOOKINDIR, fLookInDir);
1041 WinCheckButton(hwnd, CFGD_MINONOPEN, fMinOnOpen);
1042 WinCheckButton(hwnd, CFGD_SELECTEDALWAYS, fSelectedAlways);
1043 WinCheckButton(hwnd, CFGD_NOSEARCH, fNoSearch);
1044 WinCheckButton(hwnd, CFGD_EXTENDEDSEL,
1045 ((ulCnrType & CCS_EXTENDSEL) != 0));
1046 WinCheckButton(hwnd, CFGD_MULTIPLESEL,
1047 ((ulCnrType & CCS_MULTIPLESEL) != 0));
1048 WinCheckButton(hwnd, CFGD_LEAVETREE, fLeaveTree);
1049 WinCheckButton(hwnd, CFGD_NOFOLDMENU, fNoFoldMenu);
1050 return 0;
1051
1052 case WM_COMMAND:
1053 switch (SHORT1FROMMP(mp1)) {
1054 case IDM_UNDO:
1055 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1056 break;
1057
1058 case DID_CANCEL:
1059 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1060
1061 case DID_OK:
1062 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1063 break;
1064
1065 case IDM_HELP:
1066 if (hwndHelp)
1067 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1068 MPFROM2SHORT(HELP_CFGD, 0), MPFROMSHORT(HM_RESOURCEID));
1069 break;
1070 }
1071 return 0;
1072
1073 case WM_CLOSE:
1074 ulCnrType = 0;
1075 if (WinQueryButtonCheckstate(hwnd, CFGD_EXTENDEDSEL))
1076 ulCnrType |= CCS_EXTENDSEL;
1077 if (WinQueryButtonCheckstate(hwnd, CFGD_MULTIPLESEL))
1078 ulCnrType |= CCS_MULTIPLESEL;
1079 PrfWriteProfileData(fmprof, appname, "ContainerType",
1080 (PVOID) & ulCnrType, sizeof(BOOL));
1081 fMinOnOpen = WinQueryButtonCheckstate(hwnd, CFGD_MINONOPEN);
1082 PrfWriteProfileData(fmprof, FM3Str, "MinDirOnOpen", &fMinOnOpen,
1083 sizeof(BOOL));
1084 fLeaveTree = WinQueryButtonCheckstate(hwnd, CFGD_LEAVETREE);
1085 PrfWriteProfileData(fmprof, appname, "LeaveTree", &fLeaveTree,
1086 sizeof(BOOL));
1087 fNoFoldMenu = WinQueryButtonCheckstate(hwnd, CFGD_NOFOLDMENU);
1088 PrfWriteProfileData(fmprof, appname, "NoFoldMenu", &fNoFoldMenu,
1089 sizeof(BOOL));
1090 fSelectedAlways = WinQueryButtonCheckstate(hwnd, CFGD_SELECTEDALWAYS);
1091 PrfWriteProfileData(fmprof, appname, "SelectedAlways", &fSelectedAlways,
1092 sizeof(BOOL));
1093 fNoSearch = WinQueryButtonCheckstate(hwnd, CFGD_NOSEARCH);
1094 PrfWriteProfileData(fmprof, appname, "NoSearch", &fNoSearch,
1095 sizeof(BOOL));
1096 fLookInDir = WinQueryButtonCheckstate(hwnd, CFGD_LOOKINDIR);
1097 PrfWriteProfileData(fmprof, FM3Str, "LookInDir", (PVOID) & fLookInDir,
1098 sizeof(BOOL));
1099 fUnHilite = WinQueryButtonCheckstate(hwnd, CFGD_UNHILITE);
1100 PrfWriteProfileData(fmprof, appname, "UnHilite",
1101 &fUnHilite, sizeof(BOOL));
1102 {
1103 BOOL dummy = WinQueryButtonCheckstate(hwnd, CFGD_SYNCUPDATES);
1104
1105 if (dummy != fSyncUpdates) {
1106 fSyncUpdates = dummy;
1107 if (hwndMain && !strcmp(realappname, FM3Str)) {
1108 if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT))) {
1109 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
1110 PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
1111 }
1112 }
1113 }
1114 }
1115 PrfWriteProfileData(fmprof, appname, "SyncUpdates",
1116 &fSyncUpdates, sizeof(BOOL));
1117 if (!(ulCnrType & (CCS_EXTENDSEL | CCS_MULTIPLESEL)))
1118 saymsg(MB_ENTER | MB_ICONEXCLAMATION,
1119 HWND_DESKTOP,
1120 GetPString(IDS_WARNINGTEXT),
1121 GetPString(IDS_SELECTTYPEERRORTEXT));
1122 break;
1123 }
1124 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1125}
1126
1127MRESULT EXPENTRY CfgMDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1128{
1129 switch (msg) {
1130 case WM_INITDLG:
1131 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1132 break;
1133
1134 case UM_UNDO:
1135 WinCheckButton(hwnd, CFGM_EXTERNALINIS, fExternalINIs);
1136 WinCheckButton(hwnd, CFGM_EXTERNALARCBOXES, fExternalArcboxes);
1137 WinCheckButton(hwnd, CFGM_EXTERNALVIEWER, fExternalViewer);
1138 WinCheckButton(hwnd, CFGM_EXTERNALCOLLECTOR, fExternalCollector);
1139 WinCheckButton(hwnd, CFGM_SAVESTATE, fSaveState);
1140 WinCheckButton(hwnd, CFGM_AUTOTILE, (fAutoTile));
1141 WinCheckButton(hwnd, CFGM_FREETREE, (fFreeTree));
1142 WinCheckButton(hwnd, CFGM_SPLITSTATUS, (fSplitStatus));
1143 WinCheckButton(hwnd, CFGM_NOTREEGAP, (fNoTreeGap));
1144 WinCheckButton(hwnd, CFGM_STARTMIN, (fStartMinimized));
1145 WinCheckButton(hwnd, CFGM_STARTMAX, (fStartMaximized));
1146 WinCheckButton(hwnd, CFGM_DATAMIN, (fDataMin));
1147 WinCheckButton(hwnd, CFGM_TILEBACKWARDS, (fTileBackwards));
1148 {
1149 long th;
1150
1151 th = (fAutoAddDirs && fAutoAddAllDirs) ? 2 : (fAutoAddDirs) ? 1 : 0;
1152 WinCheckButton(hwnd, CFGM_RECENTDIRS, th);
1153 WinSendMsg(hwnd, UM_RESTORE, MPFROM2SHORT(CFGM_RECENTDIRS, 0), MPVOID);
1154 }
1155 WinCheckButton(hwnd, CFGM_USERLISTSWITCHES, fUserListSwitches);
1156 WinCheckButton(hwnd, CFGM_WSANIMATE, (fwsAnimate != 0));
1157 WinCheckButton(hwnd, CFGM_SEPARATEPARMS, fSeparateParms);
1158 WinCheckButton(hwnd, CFGM_BLUELED, fBlueLED);
1159 WinCheckButton(hwnd, CFGM_SHOWTARGET, fShowTarget);
1160 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), !(fStartMinimized));
1161 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), !(fStartMaximized));
1162 return 0;
1163
1164 case UM_RESTORE:
1165 {
1166 long test;
1167 BOOL th, oh;
1168 char s[80];
1169
1170 test = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
1171 th = (test != 0);
1172 oh = (test == 1);
1173 *s = 0;
1174 switch (SHORT1FROMMP(mp1)) {
1175 case CFGM_RECENTDIRS:
1176 sprintf(s,
1177 GetPString(IDS_RECENTHELPWHICHTEXT),
1178 (!oh && th) ?
1179 GetPString(IDS_RECENTONLYTEXT) :
1180 (oh && th) ?
1181 GetPString(IDS_ALLONLYTEXT) : GetPString(IDS_NONE));
1182 break;
1183 }
1184 if (*s)
1185 WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), s);
1186 }
1187 return 0;
1188
1189 case WM_CONTROL:
1190 switch (SHORT1FROMMP(mp1)) {
1191 case CFGM_RECENTDIRS:
1192 WinSendMsg(hwnd, UM_RESTORE, mp1, MPVOID);
1193 break;
1194 case CFGM_STARTMIN:
1195 if (WinQueryButtonCheckstate(hwnd, CFGM_STARTMIN)) {
1196 WinCheckButton(hwnd, CFGM_STARTMAX, FALSE);
1197 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), FALSE);
1198 }
1199 else
1200 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), TRUE);
1201 break;
1202 case CFGM_STARTMAX:
1203 if (WinQueryButtonCheckstate(hwnd, CFGM_STARTMAX)) {
1204 WinCheckButton(hwnd, CFGM_STARTMIN, FALSE);
1205 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), FALSE);
1206 }
1207 else
1208 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), TRUE);
1209 break;
1210 }
1211 return 0;
1212
1213 case WM_COMMAND:
1214 switch (SHORT1FROMMP(mp1)) {
1215 case IDM_UNDO:
1216 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1217 break;
1218
1219 case DID_CANCEL:
1220 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1221
1222 case DID_OK:
1223 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1224 break;
1225
1226 case IDM_HELP:
1227 if (hwndHelp)
1228 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1229 MPFROM2SHORT(HELP_CFGM, 0), MPFROMSHORT(HM_RESOURCEID));
1230 break;
1231 }
1232 return 0;
1233
1234 case WM_CLOSE:
1235 if (hwndMain && !strcmp(realappname, FM3Str)) {
1236 if (fFreeTree != WinQueryButtonCheckstate(hwnd, CFGM_FREETREE))
1237 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_FREETREE, 0), MPVOID);
1238 if (fAutoTile != WinQueryButtonCheckstate(hwnd, CFGM_AUTOTILE))
1239 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_AUTOTILE, 0), MPVOID);
1240 if (fSplitStatus != WinQueryButtonCheckstate(hwnd, CFGM_SPLITSTATUS)) {
1241 fSplitStatus = (fSplitStatus) ? FALSE : TRUE;
1242 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_BLINK, 0), MPVOID);
1243 PrfWriteProfileData(fmprof, FM3Str, "SplitStatus", &fSplitStatus,
1244 sizeof(BOOL));
1245 }
1246 }
1247 fUserListSwitches = WinQueryButtonCheckstate(hwnd, CFGM_USERLISTSWITCHES);
1248 PrfWriteProfileData(fmprof, FM3Str, "UserListSwitches",
1249 (PVOID) & fUserListSwitches, sizeof(BOOL));
1250 fExternalINIs = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALINIS);
1251 PrfWriteProfileData(fmprof, FM3Str, "ExternalINIs",
1252 (PVOID) & fExternalINIs, sizeof(BOOL));
1253 fExternalArcboxes = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALARCBOXES);
1254 PrfWriteProfileData(fmprof, FM3Str, "ExternalArcboxes",
1255 (PVOID) & fExternalArcboxes, sizeof(BOOL));
1256 fExternalCollector =
1257 WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALCOLLECTOR);
1258 PrfWriteProfileData(fmprof, FM3Str, "ExternalCollector",
1259 (PVOID) & fExternalCollector, sizeof(BOOL));
1260 fExternalViewer = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALVIEWER);
1261 PrfWriteProfileData(fmprof, FM3Str, "ExternalViewer",
1262 (PVOID) & fExternalViewer, sizeof(BOOL));
1263 {
1264 long test;
1265
1266 test = WinQueryButtonCheckstate(hwnd, CFGM_RECENTDIRS);
1267 fAutoAddDirs = (test != 0);
1268 fAutoAddAllDirs = (test == 2);
1269 }
1270 PrfWriteProfileData(fmprof,
1271 appname,
1272 "AutoAddDirs", (PVOID) & fAutoAddDirs, sizeof(BOOL));
1273 PrfWriteProfileData(fmprof,
1274 appname,
1275 "AutoAddAllDirs",
1276 (PVOID) & fAutoAddAllDirs, sizeof(BOOL));
1277 fwsAnimate = WinQueryButtonCheckstate(hwnd, CFGM_WSANIMATE);
1278 if (fwsAnimate)
1279 fwsAnimate = WS_ANIMATE;
1280 PrfWriteProfileData(fmprof,
1281 appname,
1282 "WS_ANIMATE", (PVOID) & fwsAnimate, sizeof(ULONG));
1283 fSaveState = WinQueryButtonCheckstate(hwnd, CFGM_SAVESTATE);
1284 PrfWriteProfileData(fmprof,
1285 FM3Str,
1286 "SaveState", (PVOID) & fSaveState, sizeof(BOOL));
1287 fStartMinimized = WinQueryButtonCheckstate(hwnd, CFGM_STARTMIN);
1288 PrfWriteProfileData(fmprof,
1289 appname,
1290 "StartMinimized",
1291 (PVOID) & fStartMinimized, sizeof(BOOL));
1292 fStartMaximized = WinQueryButtonCheckstate(hwnd, CFGM_STARTMAX);
1293 PrfWriteProfileData(fmprof,
1294 appname,
1295 "StartMaximized",
1296 (PVOID) & fStartMaximized, sizeof(BOOL));
1297 fDataMin = WinQueryButtonCheckstate(hwnd, CFGM_DATAMIN);
1298 PrfWriteProfileData(fmprof,
1299 FM3Str, "DataMin", (PVOID) & fDataMin, sizeof(BOOL));
1300 fTileBackwards = WinQueryButtonCheckstate(hwnd, CFGM_TILEBACKWARDS);
1301 PrfWriteProfileData(fmprof,
1302 FM3Str,
1303 "TileBackwards",
1304 (PVOID) & fTileBackwards, sizeof(BOOL));
1305 fNoTreeGap = WinQueryButtonCheckstate(hwnd, CFGM_NOTREEGAP);
1306 PrfWriteProfileData(fmprof,
1307 FM3Str,
1308 "NoTreeGap", (PVOID) & fNoTreeGap, sizeof(BOOL));
1309 fBlueLED = WinQueryButtonCheckstate(hwnd, CFGM_BLUELED);
1310 PrfWriteProfileData(fmprof,
1311 appname, "BlueLED", (PVOID) & fBlueLED, sizeof(BOOL));
1312 {
1313 BOOL dummy;
1314
1315 dummy = WinQueryButtonCheckstate(hwnd, CFGM_SHOWTARGET);
1316 if (dummy != fShowTarget) {
1317 fShowTarget = dummy;
1318 PrfWriteProfileData(fmprof,
1319 appname,
1320 "ShowTarget",
1321 (PVOID) & fShowTarget, sizeof(BOOL));
1322 if (hwndMain)
1323 PostMsg(WinQueryWindow(hwndMain, QW_PARENT),
1324 WM_UPDATEFRAME, MPFROMLONG(FCF_SIZEBORDER), MPVOID);
1325 SetTargetDir(hwnd, TRUE);
1326 }
1327 dummy = WinQueryButtonCheckstate(hwnd, CFGM_SEPARATEPARMS);
1328 if (dummy != fSeparateParms) {
1329 fSeparateParms = dummy;
1330 PrfWriteProfileData(fmprof,
1331 FM3Str,
1332 "SeparateParms",
1333 (PVOID) & fSeparateParms, sizeof(BOOL));
1334 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER),
1335 UM_UNDO, MPVOID, MPVOID);
1336 }
1337 }
1338 break;
1339 }
1340 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1341}
1342
1343MRESULT EXPENTRY Cfg5DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1344{
1345 static MASK mask;
1346
1347 switch (msg) {
1348 case WM_INITDLG:
1349 WinSendDlgItemMsg(hwnd,
1350 CFG5_FILTER,
1351 EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
1352 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1353 break;
1354
1355 case UM_FOCUSME:
1356 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, CFG5_MINIICONS));
1357 return 0;
1358
1359 case UM_UNDO:
1360 {
1361 ULONG flWindowAttr = 0, size = sizeof(ULONG);
1362
1363 if (!PrfQueryProfileData(fmprof,
1364 appname,
1365 "DirflWindowAttr", &flWindowAttr, &size))
1366 flWindowAttr = (CV_NAME | CV_MINI | CA_DETAILSVIEWTITLES | CV_FLOW);
1367 if (flWindowAttr & CV_ICON)
1368 WinCheckButton(hwnd, CFG5_ICON, TRUE);
1369 if (flWindowAttr & CV_NAME)
1370 WinCheckButton(hwnd, CFG5_NAME, TRUE);
1371 if (flWindowAttr & CV_TEXT)
1372 WinCheckButton(hwnd, CFG5_TEXT, TRUE);
1373 if (flWindowAttr & CV_DETAIL)
1374 WinCheckButton(hwnd, CFG5_DETAIL, TRUE);
1375 if (flWindowAttr & CV_MINI)
1376 WinCheckButton(hwnd, CFG5_MINIICONS, TRUE);
1377 if (flWindowAttr & CA_DETAILSVIEWTITLES)
1378 WinCheckButton(hwnd, CFG5_SHOWTITLES, TRUE);
1379 WinCheckButton(hwnd, CFG5_SHOWLNAMES, detailslongname);
1380 WinCheckButton(hwnd, CFG5_SHOWSUBJECT, detailssubject);
1381 WinCheckButton(hwnd, CFG5_SHOWEAS, detailsea);
1382 WinCheckButton(hwnd, CFG5_SHOWSIZE, detailssize);
1383 WinCheckButton(hwnd, CFG5_SHOWICON, detailsicon);
1384 WinCheckButton(hwnd, CFG5_SHOWLWDATE, detailslwdate);
1385 WinCheckButton(hwnd, CFG5_SHOWLWTIME, detailslwtime);
1386 WinCheckButton(hwnd, CFG5_SHOWLADATE, detailsladate);
1387 WinCheckButton(hwnd, CFG5_SHOWLATIME, detailslatime);
1388 WinCheckButton(hwnd, CFG5_SHOWCRDATE, detailscrdate);
1389 WinCheckButton(hwnd, CFG5_SHOWCRTIME, detailscrtime);
1390 WinCheckButton(hwnd, CFG5_SHOWATTR, detailsattr);
1391 memset(&mask, 0, sizeof(mask));
1392 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1393 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1394 size = sizeof(MASK);
1395 if (PrfQueryProfileData(fmprof, appname, "DirFilter", &mask, &size))
1396 SetMask(NULL, &mask);
1397 if (!mask.attrFile)
1398 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1399 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1400 strcpy(mask.prompt, GetPString(IDS_DEFDIRFILTERTITLETEXT));
1401 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1402 }
1403 return 0;
1404
1405 case UM_SETUP5:
1406 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
1407 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
1408 SetMask(NULL, &mask);
1409 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1410 }
1411 return 0;
1412
1413 case WM_CONTROL:
1414 switch (SHORT1FROMMP(mp1)) {
1415 case CFG5_FILTER:
1416 switch (SHORT2FROMMP(mp1)) {
1417 case EN_SETFOCUS:
1418 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
1419 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
1420 break;
1421 }
1422 break;
1423 }
1424 return 0;
1425
1426 case WM_COMMAND:
1427 switch (SHORT1FROMMP(mp1)) {
1428 case IDM_UNDO:
1429 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1430 break;
1431
1432 case DID_CANCEL:
1433 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1434
1435 case DID_OK:
1436 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1437 break;
1438
1439 case IDM_HELP:
1440 if (hwndHelp)
1441 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1442 MPFROM2SHORT(HELP_CFG5, 0), MPFROMSHORT(HM_RESOURCEID));
1443 break;
1444 }
1445 return 0;
1446
1447 case WM_CLOSE:
1448 {
1449 ULONG flWindowAttr = 0;
1450
1451 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
1452 flWindowAttr |= CV_ICON;
1453 if (WinQueryButtonCheckstate(hwnd, CFG5_NAME))
1454 flWindowAttr |= CV_NAME;
1455 if (WinQueryButtonCheckstate(hwnd, CFG5_TEXT))
1456 flWindowAttr |= CV_TEXT;
1457 if (WinQueryButtonCheckstate(hwnd, CFG5_DETAIL))
1458 flWindowAttr |= CV_DETAIL;
1459 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
1460 flWindowAttr |= CV_MINI;
1461 if (WinQueryButtonCheckstate(hwnd, CFG5_SHOWTITLES))
1462 flWindowAttr |= CA_DETAILSVIEWTITLES;
1463 flWindowAttr |= CV_FLOW;
1464 PrfWriteProfileData(fmprof,
1465 appname,
1466 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
1467 }
1468 detailslongname = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLNAMES);
1469 PrfWriteProfileData(fmprof, appname, "DetailsLongname",
1470 &detailslongname, sizeof(BOOL));
1471 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLongname",
1472 &detailslongname, sizeof(BOOL));
1473 detailssubject = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
1474 PrfWriteProfileData(fmprof, appname, "DetailsSubject",
1475 &detailssubject, sizeof(BOOL));
1476 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSubject",
1477 &detailssubject, sizeof(BOOL));
1478 detailsea = WinQueryButtonCheckstate(hwnd, CFG5_SHOWEAS);
1479 PrfWriteProfileData(fmprof, appname, "DetailsEA",
1480 &detailsea, sizeof(BOOL));
1481 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsEA",
1482 &detailsea, sizeof(BOOL));
1483 detailssize = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSIZE);
1484 PrfWriteProfileData(fmprof, appname, "DetailsSize",
1485 &detailssize, sizeof(BOOL));
1486 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSize",
1487 &detailssize, sizeof(BOOL));
1488 detailsicon = WinQueryButtonCheckstate(hwnd, CFG5_SHOWICON);
1489 PrfWriteProfileData(fmprof, appname, "DetailsIcon",
1490 &detailsicon, sizeof(BOOL));
1491 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsIcon",
1492 &detailsicon, sizeof(BOOL));
1493 detailslwdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWDATE);
1494 PrfWriteProfileData(fmprof, appname, "DetailsLWDate",
1495 &detailslwdate, sizeof(BOOL));
1496 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWDate",
1497 &detailslwdate, sizeof(BOOL));
1498 detailslwtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWTIME);
1499 PrfWriteProfileData(fmprof, appname, "DetailsLWTime",
1500 &detailslwtime, sizeof(BOOL));
1501 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWTime",
1502 &detailslwtime, sizeof(BOOL));
1503 detailsladate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLADATE);
1504 PrfWriteProfileData(fmprof, appname, "DetailsLADate",
1505 &detailsladate, sizeof(BOOL));
1506 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLADate",
1507 &detailsladate, sizeof(BOOL));
1508 detailslatime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLATIME);
1509 PrfWriteProfileData(fmprof, appname, "DetailsLATime",
1510 &detailslatime, sizeof(BOOL));
1511 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLATime",
1512 &detailslatime, sizeof(BOOL));
1513 detailscrdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRDATE);
1514 PrfWriteProfileData(fmprof, appname, "DetailsCRDate",
1515 &detailscrdate, sizeof(BOOL));
1516 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRDate",
1517 &detailscrdate, sizeof(BOOL));
1518 detailscrtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRTIME);
1519 PrfWriteProfileData(fmprof, appname, "DetailsCRTime",
1520 &detailscrtime, sizeof(BOOL));
1521 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRTime",
1522 &detailscrtime, sizeof(BOOL));
1523 detailsattr = WinQueryButtonCheckstate(hwnd, CFG5_SHOWATTR);
1524 PrfWriteProfileData(fmprof, appname, "DetailsAttr",
1525 &detailsattr, sizeof(BOOL));
1526 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsAttr",
1527 &detailsattr, sizeof(BOOL));
1528 *mask.prompt = 0;
1529 PrfWriteProfileData(fmprof, appname, "DirFilter", &mask, sizeof(MASK));
1530 break;
1531 }
1532 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1533}
1534
1535MRESULT EXPENTRY Cfg6DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1536{
1537 switch (msg) {
1538 case WM_INITDLG:
1539 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1540 break;
1541
1542 case UM_UNDO:
1543 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
1544 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
1545 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
1546 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
1547 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
1548 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
1549 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
1550 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
1551 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1552 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1553 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
1554 if (sortFlags & SORT_FIRSTEXTENSION)
1555 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
1556 else if (sortFlags & SORT_LASTEXTENSION)
1557 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
1558 else if (sortFlags & SORT_SIZE)
1559 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
1560 else if (sortFlags & SORT_EASIZE)
1561 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
1562 else if (sortFlags & SORT_LWDATE)
1563 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
1564 else if (sortFlags & SORT_LADATE)
1565 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
1566 else if (sortFlags & SORT_CRDATE)
1567 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
1568 else if (sortFlags & SORT_FILENAME)
1569 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
1570 else
1571 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
1572 if (sortFlags & SORT_DIRSFIRST)
1573 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, TRUE);
1574 else if (sortFlags & SORT_DIRSLAST)
1575 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, TRUE);
1576 if (sortFlags & SORT_REVERSE)
1577 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
1578 return 0;
1579
1580 case WM_CONTROL:
1581 switch (SHORT1FROMMP(mp1)) {
1582 case CFG6_SORTDIRSFIRST:
1583 case CFG6_SORTDIRSLAST:
1584 {
1585 BOOL temp;
1586
1587 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
1588 if (temp) {
1589 switch (SHORT1FROMMP(mp1)) {
1590 case CFG6_SORTDIRSFIRST:
1591 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1592 break;
1593 case CFG6_SORTDIRSLAST:
1594 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1595 break;
1596 }
1597 }
1598 }
1599 break;
1600 }
1601 return 0;
1602
1603 case WM_COMMAND:
1604 switch (SHORT1FROMMP(mp1)) {
1605 case IDM_UNDO:
1606 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1607 break;
1608
1609 case DID_CANCEL:
1610 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1611
1612 case DID_OK:
1613 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1614 break;
1615
1616 case IDM_HELP:
1617 if (hwndHelp)
1618 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1619 MPFROM2SHORT(HELP_CFG6, 0), MPFROMSHORT(HM_RESOURCEID));
1620 break;
1621 }
1622 return 0;
1623
1624 case WM_CLOSE:
1625 sortFlags = 0;
1626 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
1627 sortFlags |= SORT_FILENAME;
1628 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
1629 sortFlags |= SORT_SIZE;
1630 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
1631 sortFlags |= SORT_EASIZE;
1632 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
1633 sortFlags |= SORT_FIRSTEXTENSION;
1634 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
1635 sortFlags |= SORT_LASTEXTENSION;
1636 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
1637 sortFlags |= SORT_LWDATE;
1638 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
1639 sortFlags |= SORT_LADATE;
1640 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
1641 sortFlags |= SORT_CRDATE;
1642 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
1643 sortFlags |= SORT_DIRSFIRST;
1644 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
1645 sortFlags |= SORT_DIRSLAST;
1646 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
1647 sortFlags |= SORT_REVERSE;
1648 PrfWriteProfileData(fmprof, appname, "Sort", &sortFlags, sizeof(INT));
1649 break;
1650 }
1651 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1652}
1653
1654MRESULT EXPENTRY Cfg7DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1655{
1656 static MASK mask;
1657
1658 switch (msg) {
1659 case WM_INITDLG:
1660 WinSendDlgItemMsg(hwnd, CFG5_FILTER, EM_SETTEXTLIMIT,
1661 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
1662 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1663 break;
1664
1665 case UM_FOCUSME:
1666 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, CFG5_MINIICONS));
1667 return 0;
1668
1669 case UM_UNDO:
1670 WinCheckButton(hwnd, CFG5_EXTERNALCOLLECTOR, fExternalCollector);
1671 {
1672 ULONG flWindowAttr = 0, size = sizeof(ULONG);
1673
1674 if (!PrfQueryProfileData(fmprof,
1675 appname,
1676 "CollectorflWindowAttr", &flWindowAttr, &size))
1677 flWindowAttr = (CV_NAME | CA_DETAILSVIEWTITLES | CV_MINI | CV_FLOW);
1678 if (flWindowAttr & CV_ICON)
1679 WinCheckButton(hwnd, CFG5_ICON, TRUE);
1680 if (flWindowAttr & CV_NAME)
1681 WinCheckButton(hwnd, CFG5_NAME, TRUE);
1682 if (flWindowAttr & CV_TEXT)
1683 WinCheckButton(hwnd, CFG5_TEXT, TRUE);
1684 if (flWindowAttr & CV_DETAIL)
1685 WinCheckButton(hwnd, CFG5_DETAIL, TRUE);
1686 if (flWindowAttr & CV_MINI)
1687 WinCheckButton(hwnd, CFG5_MINIICONS, TRUE);
1688 if (flWindowAttr & CA_DETAILSVIEWTITLES)
1689 WinCheckButton(hwnd, CFG5_SHOWTITLES, TRUE);
1690 memset(&mask, 0, sizeof(mask));
1691 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1692 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1693 size = sizeof(MASK);
1694 if (PrfQueryProfileData(fmprof,
1695 appname, "CollectorFilter", &mask, &size)) {
1696 SetMask(NULL, &mask);
1697 }
1698 if (!mask.attrFile)
1699 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1700 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1701 strcpy(mask.prompt, GetPString(IDS_DEFCOLFILTERTITLETEXT));
1702 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1703 }
1704 {
1705 DIRCNRDATA dcd;
1706
1707 memset(&dcd, 0, sizeof(dcd));
1708 LoadDetailsSwitches("Collector", &dcd);
1709 WinCheckButton(hwnd, CFG5_SHOWLNAMES, dcd.detailslongname);
1710 WinCheckButton(hwnd, CFG5_SHOWSUBJECT, dcd.detailssubject);
1711 WinCheckButton(hwnd, CFG5_SHOWEAS, dcd.detailsea);
1712 WinCheckButton(hwnd, CFG5_SHOWSIZE, dcd.detailssize);
1713 WinCheckButton(hwnd, CFG5_SHOWICON, dcd.detailsicon);
1714 WinCheckButton(hwnd, CFG5_SHOWLWDATE, dcd.detailslwdate);
1715 WinCheckButton(hwnd, CFG5_SHOWLWTIME, dcd.detailslwtime);
1716 WinCheckButton(hwnd, CFG5_SHOWLADATE, dcd.detailsladate);
1717 WinCheckButton(hwnd, CFG5_SHOWLATIME, dcd.detailslatime);
1718 WinCheckButton(hwnd, CFG5_SHOWCRDATE, dcd.detailscrdate);
1719 WinCheckButton(hwnd, CFG5_SHOWCRTIME, dcd.detailscrtime);
1720 WinCheckButton(hwnd, CFG5_SHOWATTR, dcd.detailsattr);
1721 }
1722 return 0;
1723
1724 case UM_SETUP5:
1725 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
1726 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
1727 SetMask(NULL, &mask);
1728 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1729 }
1730 return 0;
1731
1732 case WM_CONTROL:
1733 switch (SHORT1FROMMP(mp1)) {
1734 case CFG5_FILTER:
1735 switch (SHORT2FROMMP(mp1)) {
1736 case EN_SETFOCUS:
1737 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
1738 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
1739 break;
1740 }
1741 break;
1742 }
1743 return 0;
1744
1745 case WM_COMMAND:
1746 switch (SHORT1FROMMP(mp1)) {
1747 case IDM_UNDO:
1748 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1749 break;
1750
1751 case DID_CANCEL:
1752 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1753
1754 case DID_OK:
1755 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1756 break;
1757
1758 case IDM_HELP:
1759 if (hwndHelp)
1760 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1761 MPFROM2SHORT(HELP_CFG7, 0), MPFROMSHORT(HM_RESOURCEID));
1762 break;
1763 }
1764 return 0;
1765
1766 case WM_CLOSE:
1767 fExternalCollector = WinQueryButtonCheckstate(hwnd,
1768 CFG5_EXTERNALCOLLECTOR);
1769 PrfWriteProfileData(fmprof, FM3Str, "ExternalCollector",
1770 &fExternalCollector, sizeof(BOOL));
1771 {
1772 ULONG flWindowAttr = 0;
1773
1774 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
1775 flWindowAttr |= CV_ICON;
1776 if (WinQueryButtonCheckstate(hwnd, CFG5_NAME))
1777 flWindowAttr |= CV_NAME;
1778 if (WinQueryButtonCheckstate(hwnd, CFG5_TEXT))
1779 flWindowAttr |= CV_TEXT;
1780 if (WinQueryButtonCheckstate(hwnd, CFG5_DETAIL))
1781 flWindowAttr |= CV_DETAIL;
1782 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
1783 flWindowAttr |= CV_MINI;
1784 if (WinQueryButtonCheckstate(hwnd, CFG5_SHOWTITLES))
1785 flWindowAttr |= CA_DETAILSVIEWTITLES;
1786 flWindowAttr |= CV_FLOW;
1787 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
1788 &flWindowAttr, sizeof(ULONG));
1789 }
1790 {
1791 DIRCNRDATA dcd;
1792
1793 memset(&dcd, 0, sizeof(dcd));
1794 dcd.detailslongname = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLNAMES);
1795 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLongname",
1796 &dcd.detailslongname, sizeof(BOOL));
1797 dcd.detailssubject = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
1798 PrfWriteProfileData(fmprof, appname, "Collector.DetailsSubject",
1799 &dcd.detailssubject, sizeof(BOOL));
1800 dcd.detailsea = WinQueryButtonCheckstate(hwnd, CFG5_SHOWEAS);
1801 PrfWriteProfileData(fmprof, appname, "Collector.DetailsEA",
1802 &dcd.detailsea, sizeof(BOOL));
1803 dcd.detailssize = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSIZE);
1804 PrfWriteProfileData(fmprof, appname, "Collector.DetailsSize",
1805 &dcd.detailssize, sizeof(BOOL));
1806 dcd.detailsicon = WinQueryButtonCheckstate(hwnd, CFG5_SHOWICON);
1807 PrfWriteProfileData(fmprof, appname, "Collector.DetailsIcon",
1808 &dcd.detailsicon, sizeof(BOOL));
1809 dcd.detailslwdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWDATE);
1810 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLWDate",
1811 &dcd.detailslwdate, sizeof(BOOL));
1812 dcd.detailslwtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWTIME);
1813 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLWTime",
1814 &dcd.detailslwtime, sizeof(BOOL));
1815 dcd.detailsladate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLADATE);
1816 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLADate",
1817 &dcd.detailsladate, sizeof(BOOL));
1818 dcd.detailslatime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLATIME);
1819 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLATime",
1820 &dcd.detailslatime, sizeof(BOOL));
1821 dcd.detailscrdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRDATE);
1822 PrfWriteProfileData(fmprof, appname, "Collector.DetailsCRDate",
1823 &dcd.detailscrdate, sizeof(BOOL));
1824 dcd.detailscrtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRTIME);
1825 PrfWriteProfileData(fmprof, appname, "Collector.DetailsCRTime",
1826 &dcd.detailscrtime, sizeof(BOOL));
1827 dcd.detailsattr = WinQueryButtonCheckstate(hwnd, CFG5_SHOWATTR);
1828 PrfWriteProfileData(fmprof, appname, "Collector.DetailsAttr",
1829 &dcd.detailsattr, sizeof(BOOL));
1830 *mask.prompt = 0;
1831 PrfWriteProfileData(fmprof,
1832 appname, "CollectorFilter", &mask, sizeof(MASK));
1833 }
1834 break;
1835 }
1836 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1837}
1838
1839MRESULT EXPENTRY Cfg8DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1840{
1841 switch (msg) {
1842 case WM_INITDLG:
1843 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1844 break;
1845
1846 case UM_UNDO:
1847 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
1848 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
1849 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
1850 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
1851 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
1852 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
1853 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
1854 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
1855 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1856 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1857 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
1858 if (CollectorsortFlags & SORT_FIRSTEXTENSION)
1859 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
1860 else if (CollectorsortFlags & SORT_LASTEXTENSION)
1861 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
1862 else if (CollectorsortFlags & SORT_SIZE)
1863 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
1864 else if (CollectorsortFlags & SORT_EASIZE)
1865 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
1866 else if (CollectorsortFlags & SORT_LWDATE)
1867 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
1868 else if (CollectorsortFlags & SORT_LADATE)
1869 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
1870 else if (CollectorsortFlags & SORT_CRDATE)
1871 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
1872 else if (CollectorsortFlags & SORT_FILENAME)
1873 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
1874 else
1875 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
1876 if (CollectorsortFlags & SORT_DIRSFIRST)
1877 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, TRUE);
1878 else if (CollectorsortFlags & SORT_DIRSLAST)
1879 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, TRUE);
1880 if (CollectorsortFlags & SORT_REVERSE)
1881 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
1882 return 0;
1883
1884 case WM_CONTROL:
1885 switch (SHORT1FROMMP(mp1)) {
1886 case CFG6_SORTDIRSFIRST:
1887 case CFG6_SORTDIRSLAST:
1888 {
1889 BOOL temp;
1890
1891 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
1892 if (temp) {
1893 switch (SHORT1FROMMP(mp1)) {
1894 case CFG6_SORTDIRSFIRST:
1895 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1896 break;
1897 case CFG6_SORTDIRSLAST:
1898 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1899 break;
1900 }
1901 }
1902 }
1903 break;
1904 }
1905 return 0;
1906
1907 case WM_COMMAND:
1908 switch (SHORT1FROMMP(mp1)) {
1909 case IDM_UNDO:
1910 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1911 break;
1912
1913 case DID_CANCEL:
1914 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1915
1916 case DID_OK:
1917 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1918 break;
1919
1920 case IDM_HELP:
1921 if (hwndHelp)
1922 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1923 MPFROM2SHORT(HELP_CFG8, 0), MPFROMSHORT(HM_RESOURCEID));
1924 break;
1925 }
1926 return 0;
1927
1928 case WM_CLOSE:
1929 CollectorsortFlags = 0;
1930 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
1931 CollectorsortFlags |= SORT_FILENAME;
1932 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
1933 CollectorsortFlags |= SORT_SIZE;
1934 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
1935 CollectorsortFlags |= SORT_EASIZE;
1936 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
1937 CollectorsortFlags |= SORT_FIRSTEXTENSION;
1938 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
1939 CollectorsortFlags |= SORT_LASTEXTENSION;
1940 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
1941 CollectorsortFlags |= SORT_LWDATE;
1942 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
1943 CollectorsortFlags |= SORT_LADATE;
1944 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
1945 CollectorsortFlags |= SORT_CRDATE;
1946 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
1947 CollectorsortFlags |= SORT_DIRSFIRST;
1948 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
1949 CollectorsortFlags |= SORT_DIRSLAST;
1950 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
1951 CollectorsortFlags |= SORT_REVERSE;
1952 PrfWriteProfileData(fmprof,
1953 appname,
1954 "CollectorSort", &CollectorsortFlags, sizeof(INT));
1955 break;
1956 }
1957 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1958}
1959
1960MRESULT EXPENTRY Cfg9DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1961{
1962 switch (msg) {
1963 case WM_INITDLG:
1964 break;
1965
1966 case WM_COMMAND:
1967 switch (SHORT1FROMMP(mp1)) {
1968 case IDM_HELP:
1969 if (hwndHelp)
1970 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1971 MPFROM2SHORT(HELP_CFG9, 0), MPFROMSHORT(HM_RESOURCEID));
1972 return 0;
1973 case CFG9_MAXIMUMUI:
1974 if (hwndMain) {
1975 if (MenuInvisible)
1976 WinSendMsg(hwndMain, WM_COMMAND,
1977 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
1978 if (!fAutoView)
1979 WinSendMsg(hwndMain, WM_COMMAND,
1980 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
1981 if (!fDrivebar)
1982 WinSendMsg(hwndMain, WM_COMMAND,
1983 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
1984 if (!fToolbar)
1985 WinSendMsg(hwndMain, WM_COMMAND,
1986 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
1987 if (!fMoreButtons)
1988 WinSendMsg(hwndMain, WM_COMMAND,
1989 MPFROM2SHORT(IDM_MOREBUTTONS, 0), MPVOID);
1990 if (!fUserComboBox)
1991 WinSendMsg(hwndMain, WM_COMMAND,
1992 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
1993 }
1994 return 0;
1995 case CFG9_MINIMUMUI:
1996 if (hwndMain) {
1997 if (!MenuInvisible)
1998 WinSendMsg(hwndMain, WM_COMMAND,
1999 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
2000 if (fAutoView)
2001 WinSendMsg(hwndMain, WM_COMMAND,
2002 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2003 if (fToolbar)
2004 WinSendMsg(hwndMain, WM_COMMAND,
2005 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
2006 if (fMoreButtons)
2007 WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_MOREBUTTONS, 0),
2008 MPVOID);
2009 if (fUserComboBox)
2010 WinSendMsg(hwndMain, WM_COMMAND,
2011 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
2012 saymsg(MB_ENTER | MB_ICONASTERISK,
2013 hwnd,
2014 GetPString(IDS_DONTFORGETTEXT),
2015 GetPString(IDS_UNHIDEMENUWARNTEXT));
2016 }
2017 return 0;
2018 case CFG9_MAXINFOPRETTY:
2019 fLoadSubject = TRUE;
2020 fLoadLongnames = TRUE;
2021 fNoIconsFiles = FALSE;
2022 fNoIconsDirs = FALSE;
2023 fForceUpper = FALSE;
2024 fForceLower = FALSE;
2025 fArcStuffVisible = TRUE;
2026 fSplitStatus = TRUE;
2027 fDragndropDlg = TRUE;
2028 {
2029 ULONG flWindowAttr;
2030
2031 flWindowAttr = CV_DETAIL | CV_FLOW | CA_DETAILSVIEWTITLES;
2032 PrfWriteProfileData(fmprof,
2033 appname,
2034 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
2035 PrfWriteProfileData(fmprof,
2036 appname,
2037 "CollectorflWindowAttr",
2038 &flWindowAttr, sizeof(ULONG));
2039 PrfWriteProfileData(fmprof, appname, "DirCnr.Fontnamesize", NULL, 0);
2040 PrfWriteProfileData(fmprof,
2041 appname, "Collector.Fontnamesize", NULL, 0);
2042 }
2043 detailslongname = TRUE;
2044 detailssubject = TRUE;
2045 detailsea = TRUE;
2046 detailssize = TRUE;
2047 detailsicon = TRUE;
2048 detailslwdate = TRUE;
2049 detailslwtime = TRUE;
2050 detailsladate = TRUE;
2051 detailslatime = TRUE;
2052 detailscrdate = TRUE;
2053 detailscrtime = TRUE;
2054 detailsattr = TRUE;
2055 if (hwndTree) {
2056
2057 CNRINFO cnri;
2058 ULONG flWindowAttr = CV_TREE | CV_ICON | CV_FLOW | CA_TREELINE;
2059
2060 memset(&cnri, 0, sizeof(cnri));
2061 cnri.cb = sizeof(cnri);
2062 WinSendMsg(WinWindowFromID
2063 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2064 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2065 cnri.flWindowAttr = flWindowAttr;
2066 WinSendMsg(WinWindowFromID
2067 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2068 CM_SETCNRINFO, MPFROMP(&cnri),
2069 MPFROMLONG(CMA_FLWINDOWATTR));
2070 }
2071 break;
2072
2073 case CFG9_MAXINFOPLAIN:
2074 fLoadSubject = TRUE;
2075 fLoadLongnames = TRUE;
2076 fNoIconsFiles = TRUE;
2077 fNoIconsDirs = TRUE;
2078 fForceUpper = FALSE;
2079 fForceLower = FALSE;
2080 fArcStuffVisible = TRUE;
2081 fSplitStatus = TRUE;
2082 fDragndropDlg = TRUE;
2083 {
2084 ULONG flWindowAttr;
2085
2086 flWindowAttr = CV_DETAIL | CV_FLOW | CV_MINI;
2087 PrfWriteProfileData(fmprof,
2088 appname,
2089 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
2090 PrfWriteProfileData(fmprof,
2091 appname,
2092 "CollectorflWindowAttr",
2093 &flWindowAttr, sizeof(ULONG));
2094 PrfWriteProfileData(fmprof,
2095 appname,
2096 "DirCnr.Fontnamesize",
2097 GetPString(IDS_8HELVTEXT),
2098 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2099 PrfWriteProfileData(fmprof,
2100 appname,
2101 "Collector.Fontnamesize",
2102 GetPString(IDS_8HELVTEXT),
2103 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2104 }
2105 detailslongname = TRUE;
2106 detailssubject = TRUE;
2107 detailsea = TRUE;
2108 detailssize = TRUE;
2109 detailsicon = TRUE;
2110 detailslwdate = TRUE;
2111 detailslwtime = TRUE;
2112 detailsladate = TRUE;
2113 detailslatime = TRUE;
2114 detailscrdate = TRUE;
2115 detailscrtime = TRUE;
2116 detailsattr = TRUE;
2117 if (hwndTree) {
2118
2119 CNRINFO cnri;
2120 ULONG flWindowAttr = CV_TREE | CV_MINI | CV_TEXT |
2121 CV_FLOW | CA_TREELINE;
2122
2123 memset(&cnri, 0, sizeof(cnri));
2124 cnri.cb = sizeof(cnri);
2125 WinSendMsg(WinWindowFromID
2126 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2127 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2128 cnri.flWindowAttr = flWindowAttr;
2129 WinSendMsg(WinWindowFromID
2130 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2131 CM_SETCNRINFO, MPFROMP(&cnri),
2132 MPFROMLONG(CMA_FLWINDOWATTR));
2133 }
2134 break;
2135 case CFG9_MAXFILENAMES:
2136 if (hwndMain && fAutoView)
2137 WinSendMsg(hwndMain, WM_COMMAND,
2138 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2139 fForceUpper = FALSE;
2140 fForceLower = TRUE;
2141 fExternalViewer = TRUE;
2142 fExternalArcboxes = TRUE;
2143 fExternalCollector = TRUE;
2144 fExternalINIs = TRUE;
2145 fLoadSubject = FALSE;
2146 fLoadLongnames = FALSE;
2147 fNoIconsFiles = TRUE;
2148 fNoIconsDirs = TRUE;
2149 {
2150 ULONG flWindowAttr;
2151
2152 flWindowAttr = CV_TEXT | CV_FLOW;
2153 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2154 &flWindowAttr, sizeof(ULONG));
2155 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2156 &flWindowAttr, sizeof(ULONG));
2157 PrfWriteProfileData(fmprof, appname, "DirCnr.Fontnamesize",
2158 GetPString(IDS_8HELVTEXT),
2159 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2160 PrfWriteProfileData(fmprof, appname, "Collector.Fontnamesize",
2161 GetPString(IDS_8HELVTEXT),
2162 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2163 }
2164 if (hwndTree) {
2165
2166 CNRINFO cnri;
2167 ULONG flWindowAttr = CV_TREE | CV_TEXT | CV_FLOW | CA_TREELINE;
2168
2169 memset(&cnri, 0, sizeof(cnri));
2170 cnri.cb = sizeof(cnri);
2171 WinSendMsg(WinWindowFromID
2172 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2173 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2174 cnri.flWindowAttr = flWindowAttr;
2175 WinSendMsg(WinWindowFromID
2176 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2177 CM_SETCNRINFO, MPFROMP(&cnri),
2178 MPFROMLONG(CMA_FLWINDOWATTR));
2179 }
2180 break;
2181 case CFG9_MAXSPEED:
2182 fLoadSubject = FALSE;
2183 fLoadLongnames = FALSE;
2184 fVerify = FALSE;
2185 DosSetVerify(FALSE);
2186 FilesToGet = 10240;
2187 fQuickArcFind = TRUE;
2188 fMinOnOpen = TRUE;
2189 fRealIdle = FALSE;
2190 fNoIconsFiles = TRUE;
2191 fNoIconsDirs = TRUE;
2192 fSyncUpdates = FALSE;
2193 fArcStuffVisible = FALSE;
2194 fForceUpper = FALSE;
2195 fForceLower = FALSE;
2196 detailslongname = FALSE;
2197 detailssubject = FALSE;
2198 break;
2199
2200 case CFG9_HECTOR:
2201 fSwitchTree = TRUE;
2202 fSwitchTreeOnFocus = FALSE;
2203 fSwitchTreeExpand = TRUE;
2204 fCollapseFirst = TRUE;
2205 fSelectedAlways = FALSE;
2206 fTileBackwards = FALSE;
2207 fExternalViewer = FALSE;
2208 fExternalArcboxes = TRUE;
2209 fExternalCollector = FALSE;
2210 fExternalINIs = TRUE;
2211 fCopyDefault = FALSE;
2212 fFollowTree = FALSE;
2213 fLoadSubject = FALSE;
2214 fLoadLongnames = FALSE;
2215 fDontMoveMouse = FALSE;
2216 fUnHilite = TRUE;
2217 fUserListSwitches = TRUE;
2218 fDCOpens = FALSE;
2219 fLinkSetsIcon = FALSE;
2220 fConfirmDelete = TRUE;
2221 fSyncUpdates = FALSE;
2222 fRealIdle = FALSE;
2223 fNoIconsFiles = FALSE;
2224 fNoIconsDirs = TRUE;
2225 fFolderAfterExtract = FALSE;
2226 fVerify = TRUE;
2227 DosSetVerify(TRUE);
2228 fForceUpper = FALSE;
2229 fForceLower = TRUE;
2230 fArcStuffVisible = FALSE;
2231 fVTreeOpensWPS = FALSE;
2232 fRemoteBug = FALSE;
2233 fDragndropDlg = TRUE;
2234 fMinOnOpen = FALSE;
2235 fQuickArcFind = TRUE;
2236 fNoRemovableScan = TRUE;
2237 FilesToGet = 2048;
2238 fFreeTree = FALSE;
2239 fSplitStatus = TRUE;
2240 fAutoTile = TRUE;
2241 fSaveState = TRUE;
2242 fStartMinimized = FALSE;
2243 fStartMaximized = FALSE;
2244 fDataMin = FALSE;
2245 ulCnrType = CCS_EXTENDSEL | CCS_MULTIPLESEL;
2246 fNoTreeGap = TRUE;
2247 {
2248 ULONG flWindowAttr;
2249
2250 flWindowAttr = (CV_NAME | CV_MINI | CV_FLOW | CA_DETAILSVIEWTITLES);
2251 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2252 &flWindowAttr, sizeof(ULONG));
2253 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2254 &flWindowAttr, sizeof(ULONG));
2255 }
2256 detailslongname = FALSE;
2257 detailssubject = FALSE;
2258 detailsea = TRUE;
2259 detailssize = TRUE;
2260 detailsicon = TRUE;
2261 detailslwdate = TRUE;
2262 detailslwtime = TRUE;
2263 detailsladate = FALSE;
2264 detailslatime = FALSE;
2265 detailscrdate = FALSE;
2266 detailscrtime = FALSE;
2267 detailsattr = TRUE;
2268 sortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2269 CollectorsortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2270 if (hwndMain) {
2271
2272 SWP swp;
2273
2274 if (WinQueryWindowPos(hwndMain, &swp)) {
2275 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2276 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
2277 }
2278 }
2279 if (hwndMain) {
2280 if (MenuInvisible)
2281 WinSendMsg(hwndMain, WM_COMMAND,
2282 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
2283 if (fAutoView)
2284 WinSendMsg(hwndMain, WM_COMMAND,
2285 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2286 if (fToolbar)
2287 WinSendMsg(hwndMain, WM_COMMAND,
2288 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
2289 if (!fDrivebar)
2290 WinSendMsg(hwndMain, WM_COMMAND,
2291 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
2292 if (!fMoreButtons)
2293 WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_MOREBUTTONS, 0),
2294 MPVOID);
2295 if (!fUserComboBox)
2296 WinSendMsg(hwndMain, WM_COMMAND,
2297 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
2298 }
2299 if (hwndTree) {
2300
2301 CNRINFO cnri;
2302 ULONG flWindowAttr = (CV_TREE | CV_TEXT | CV_MINI |
2303 CV_FLOW | CA_TREELINE);
2304
2305 memset(&cnri, 0, sizeof(cnri));
2306 cnri.cb = sizeof(cnri);
2307 WinSendMsg(WinWindowFromID
2308 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2309 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2310 cnri.flWindowAttr = flWindowAttr;
2311 WinSendMsg(WinWindowFromID
2312 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2313 CM_SETCNRINFO, MPFROMP(&cnri),
2314 MPFROMLONG(CMA_FLWINDOWATTR));
2315 }
2316 break;
2317
2318 case CFG9_DEFAULT:
2319 fSwitchTree = FALSE;
2320 fSwitchTreeOnFocus = FALSE;
2321 fSwitchTreeExpand = FALSE;
2322 fCollapseFirst = FALSE;
2323 fSelectedAlways = FALSE;
2324 fTileBackwards = FALSE;
2325 fExternalViewer = FALSE;
2326 fExternalArcboxes = FALSE;
2327 fExternalCollector = FALSE;
2328 fExternalINIs = FALSE;
2329 fCopyDefault = FALSE;
2330 fFollowTree = FALSE;
2331 fLoadSubject = TRUE;
2332 fLoadLongnames = TRUE;
2333 fDontMoveMouse = FALSE;
2334 fUnHilite = TRUE;
2335 fUserListSwitches = FALSE;
2336 fDCOpens = FALSE;
2337 fLinkSetsIcon = FALSE;
2338 fConfirmDelete = TRUE;
2339 fSyncUpdates = FALSE;
2340 fRealIdle = FALSE;
2341 fNoIconsFiles = FALSE;
2342 fNoIconsDirs = FALSE;
2343 fFolderAfterExtract = FALSE;
2344 fVerify = TRUE;
2345 fNoSearch = TRUE;
2346 DosSetVerify(TRUE);
2347 fForceUpper = FALSE;
2348 fForceLower = TRUE;
2349 fArcStuffVisible = TRUE;
2350 fVTreeOpensWPS = FALSE;
2351 fRemoteBug = TRUE;
2352 fDragndropDlg = TRUE;
2353 fMinOnOpen = FALSE;
2354 fQuickArcFind = TRUE;
2355 fNoRemovableScan = FALSE;
2356 FilesToGet = 10240;
2357 fFreeTree = FALSE;
2358 fSplitStatus = TRUE;
2359 fAutoTile = TRUE;
2360 fSaveState = TRUE;
2361 fStartMinimized = FALSE;
2362 fStartMaximized = FALSE;
2363 fDataMin = TRUE;
2364 ulCnrType = CCS_EXTENDSEL;
2365 fNoTreeGap = FALSE;
2366 {
2367 ULONG flWindowAttr;
2368
2369 flWindowAttr = (CV_NAME | CV_MINI | CV_FLOW | CA_DETAILSVIEWTITLES);
2370 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2371 &flWindowAttr, sizeof(ULONG));
2372 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2373 &flWindowAttr, sizeof(ULONG));
2374 }
2375 detailslongname = FALSE;
2376 detailssubject = FALSE;
2377 detailsea = TRUE;
2378 detailssize = TRUE;
2379 detailsicon = TRUE;
2380 detailslwdate = TRUE;
2381 detailslwtime = TRUE;
2382 detailsladate = FALSE;
2383 detailslatime = FALSE;
2384 detailscrdate = FALSE;
2385 detailscrtime = FALSE;
2386 detailsattr = TRUE;
2387 sortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2388 CollectorsortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2389 if (hwndMain) {
2390
2391 SWP swp;
2392
2393 if (WinQueryWindowPos(hwndMain, &swp)) {
2394 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2395 swp.cx / 5,
2396 swp.cy -
2397 (WinQuerySysValue(HWND_DESKTOP, SV_CYICON) * 2),
2398 SWP_MOVE | SWP_SIZE);
2399 }
2400 }
2401 if (hwndTree) {
2402
2403 CNRINFO cnri;
2404 ULONG flWindowAttr = (CV_TREE | CV_TEXT |
2405 CV_FLOW | CA_TREELINE | CV_MINI);
2406
2407 memset(&cnri, 0, sizeof(cnri));
2408 cnri.cb = sizeof(cnri);
2409 WinSendMsg(WinWindowFromID
2410 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2411 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2412 cnri.flWindowAttr = flWindowAttr;
2413 WinSendMsg(WinWindowFromID
2414 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2415 CM_SETCNRINFO, MPFROMP(&cnri),
2416 MPFROMLONG(CMA_FLWINDOWATTR));
2417 }
2418 break;
2419
2420 case CFG9_WINDOZETHINK:
2421 fTileBackwards = FALSE;
2422 ulCnrType = CCS_MULTIPLESEL;
2423 fFollowTree = TRUE;
2424 fTopDir = FALSE;
2425 fSwitchTree = TRUE;
2426 fSwitchTreeOnFocus = FALSE;
2427 fSwitchTreeExpand = TRUE;
2428 fCollapseFirst = TRUE;
2429 fDCOpens = FALSE;
2430 {
2431 ULONG flWindowAttr;
2432
2433 flWindowAttr = CV_NAME | CV_FLOW | CA_DETAILSVIEWTITLES;
2434 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2435 &flWindowAttr, sizeof(ULONG));
2436 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2437 &flWindowAttr, sizeof(ULONG));
2438 }
2439 fLinkSetsIcon = FALSE;
2440 fFreeTree = FALSE;
2441 fNoTreeGap = TRUE;
2442 fExternalArcboxes = TRUE;
2443 fExternalViewer = TRUE;
2444 fExternalCollector = TRUE;
2445 fExternalINIs = TRUE;
2446 fUserListSwitches = TRUE;
2447 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), UM_UNDO, MPVOID,
2448 MPVOID);
2449 if (hwndTree) {
2450
2451 CNRINFO cnri;
2452 ULONG flWindowAttr = CV_TREE | CV_MINI | CV_ICON |
2453 CV_FLOW | CA_TREELINE;
2454
2455 memset(&cnri, 0, sizeof(cnri));
2456 cnri.cb = sizeof(cnri);
2457 WinSendMsg(WinWindowFromID
2458 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2459 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2460 cnri.flWindowAttr = flWindowAttr;
2461 WinSendMsg(WinWindowFromID
2462 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2463 CM_SETCNRINFO, MPFROMP(&cnri),
2464 MPFROMLONG(CMA_FLWINDOWATTR));
2465 }
2466 if (hwndMain) {
2467 if (fAutoView)
2468 WinSendMsg(hwndMain, WM_COMMAND,
2469 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2470 if (!fDrivebar)
2471 WinSendMsg(hwndMain, WM_COMMAND,
2472 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
2473 {
2474 SWP swp;
2475
2476 if (WinQueryWindowPos(hwndMain, &swp)) {
2477 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2478 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
2479 }
2480 }
2481 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
2482 PostMsg(MainObjectHwnd, UM_SETDIR, MPFROMLONG(1L), MPVOID);
2483 }
2484 return 0;
2485
2486 case CFG9_DOSTHINK:
2487 fTileBackwards = TRUE;
2488 ulCnrType = CCS_MULTIPLESEL;
2489 fSwitchTree = TRUE;
2490 fSwitchTreeOnFocus = FALSE;
2491 fSwitchTreeExpand = TRUE;
2492 fCollapseFirst = TRUE;
2493 fFollowTree = TRUE;
2494 fTopDir = FALSE;
2495 if (hwndMain) {
2496 if (!fTextTools)
2497 WinSendMsg(hwndMain, WM_COMMAND,
2498 MPFROM2SHORT(IDM_TEXTTOOLS, 0), MPVOID);
2499 }
2500 {
2501 ULONG flWindowAttr;
2502
2503 flWindowAttr = CV_TEXT | CV_FLOW | CA_DETAILSVIEWTITLES;
2504 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2505 &flWindowAttr, sizeof(ULONG));
2506 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2507 &flWindowAttr, sizeof(ULONG));
2508 }
2509 if (hwndTree) {
2510
2511 CNRINFO cnri;
2512 ULONG flWindowAttr = CV_TREE | CV_TEXT | CV_FLOW | CA_TREELINE;
2513
2514 memset(&cnri, 0, sizeof(cnri));
2515 cnri.cb = sizeof(cnri);
2516 WinSendMsg(WinWindowFromID
2517 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2518 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2519 cnri.flWindowAttr = flWindowAttr;
2520 WinSendMsg(WinWindowFromID
2521 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2522 CM_SETCNRINFO, MPFROMP(&cnri),
2523 MPFROMLONG(CMA_FLWINDOWATTR));
2524 }
2525 /* intentional fallthru */
2526 case CFG9_1X:
2527 if (SHORT1FROMMP(mp1) == CFG9_1X) {
2528 fTileBackwards = FALSE;
2529 ulCnrType = CCS_MULTIPLESEL | CCS_EXTENDSEL;
2530 fSwitchTree = FALSE;
2531 fSwitchTreeOnFocus = FALSE;
2532 fSwitchTreeExpand = FALSE;
2533 fCollapseFirst = FALSE;
2534 fFollowTree = FALSE;
2535 fNoSearch = TRUE;
2536 }
2537 fAutoTile = TRUE;
2538 fSaveState = TRUE;
2539 fDCOpens = FALSE;
2540 fLinkSetsIcon = FALSE;
2541 fFreeTree = FALSE;
2542 fNoTreeGap = TRUE;
2543 fExternalArcboxes = TRUE;
2544 fExternalViewer = TRUE;
2545 fExternalCollector = TRUE;
2546 fExternalINIs = TRUE;
2547 fUserListSwitches = TRUE;
2548 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), UM_UNDO, MPVOID,
2549 MPVOID);
2550 if (hwndTree) {
2551
2552 CNRINFO cnri;
2553 ULONG flWindowAttr = CV_TREE | CV_ICON | CV_FLOW | CA_TREELINE;
2554
2555 memset(&cnri, 0, sizeof(cnri));
2556 cnri.cb = sizeof(cnri);
2557 WinSendMsg(WinWindowFromID(WinWindowFromID(hwndTree, FID_CLIENT),
2558 TREE_CNR),
2559 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2560 cnri.flWindowAttr = flWindowAttr;
2561 WinSendMsg(WinWindowFromID(WinWindowFromID(hwndTree, FID_CLIENT),
2562 TREE_CNR),
2563 CM_SETCNRINFO,
2564 MPFROMP(&cnri), MPFROMLONG(CMA_FLWINDOWATTR));
2565 }
2566 if (hwndMain) {
2567 if (fAutoView)
2568 WinSendMsg(hwndMain, WM_COMMAND,
2569 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2570 if (fUserComboBox)
2571 WinSendMsg(hwndMain, WM_COMMAND,
2572 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
2573 {
2574 SWP swp;
2575
2576 if (WinQueryWindowPos(hwndMain, &swp)) {
2577 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2578 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
2579 }
2580 }
2581 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
2582 PostMsg(MainObjectHwnd, UM_SETDIR, MPVOID, MPVOID);
2583 }
2584 return 0;
2585
2586 case DID_CANCEL:
2587 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2588
2589 case DID_OK:
2590 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2591 return 0;
2592
2593 default:
2594 return 0;
2595 }
2596 PrfWriteProfileData(fmprof, appname, "DetailsLongname",
2597 &detailslongname, sizeof(BOOL));
2598 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLongname",
2599 &detailslongname, sizeof(BOOL));
2600 PrfWriteProfileData(fmprof, appname, "DetailsSubject",
2601 &detailssubject, sizeof(BOOL));
2602 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSubject",
2603 &detailssubject, sizeof(BOOL));
2604 PrfWriteProfileData(fmprof, appname, "DetailsEA",
2605 &detailsea, sizeof(BOOL));
2606 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsEA",
2607 &detailsea, sizeof(BOOL));
2608 PrfWriteProfileData(fmprof, appname, "DetailsSize",
2609 &detailssize, sizeof(BOOL));
2610 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSize",
2611 &detailssize, sizeof(BOOL));
2612 PrfWriteProfileData(fmprof, appname, "DetailsIcon",
2613 &detailsicon, sizeof(BOOL));
2614 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsIcon",
2615 &detailsicon, sizeof(BOOL));
2616 PrfWriteProfileData(fmprof, appname, "DetailsLWDate",
2617 &detailslwdate, sizeof(BOOL));
2618 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWDate",
2619 &detailslwdate, sizeof(BOOL));
2620 PrfWriteProfileData(fmprof, appname, "DetailsLWTime",
2621 &detailslwtime, sizeof(BOOL));
2622 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWTime",
2623 &detailslwtime, sizeof(BOOL));
2624 PrfWriteProfileData(fmprof, appname, "DetailsLADate",
2625 &detailsladate, sizeof(BOOL));
2626 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLADate",
2627 &detailsladate, sizeof(BOOL));
2628 PrfWriteProfileData(fmprof, appname, "DetailsLATime",
2629 &detailslatime, sizeof(BOOL));
2630 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLATime",
2631 &detailslatime, sizeof(BOOL));
2632 PrfWriteProfileData(fmprof, appname, "DetailsCRDate",
2633 &detailscrdate, sizeof(BOOL));
2634 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRDate",
2635 &detailscrdate, sizeof(BOOL));
2636 PrfWriteProfileData(fmprof, appname, "DetailsCRTime",
2637 &detailscrtime, sizeof(BOOL));
2638 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRTime",
2639 &detailscrtime, sizeof(BOOL));
2640 PrfWriteProfileData(fmprof, appname, "DetailsAttr",
2641 &detailsattr, sizeof(BOOL));
2642 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsAttr",
2643 &detailsattr, sizeof(BOOL));
2644 if (hwndMain) {
2645 if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT))) {
2646 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
2647 PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
2648 }
2649 }
2650 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER),
2651 UM_UNDO, MPVOID, MPVOID);
2652 return 0;
2653
2654 case WM_CLOSE:
2655 break;
2656 }
2657 return WinDefDlgProc(hwnd, msg, mp1, mp2);
2658}
2659
2660NOTEPAGES np[] = { CFGD_FRAME,
2661 IDS_NOTEDIRCNRS1TEXT,
2662 CfgDDlgProc,
2663 0,
2664 0,
2665 0,
2666 CFG5_FRAME,
2667 IDS_NOTEDIRVIEW1TEXT,
2668 Cfg5DlgProc,
2669 0,
2670 0,
2671 0,
2672 CFG6_FRAME,
2673 IDS_NOTEDIRSORT1TEXT,
2674 Cfg6DlgProc,
2675 0,
2676 0,
2677 0,
2678 CFG5_FRAME,
2679 IDS_NOTECOLVIEW1TEXT,
2680 Cfg7DlgProc,
2681 0,
2682 0,
2683 0,
2684 CFG6_FRAME,
2685 IDS_NOTECOLSORT1TEXT,
2686 Cfg8DlgProc,
2687 0,
2688 0,
2689 0,
2690 CFGA_FRAME,
2691 IDS_NOTEARCHIVER1TEXT,
2692 CfgADlgProc,
2693 0,
2694 0,
2695 0,
2696 CFGT_FRAME,
2697 IDS_NOTETREE1TEXT,
2698 CfgTDlgProc,
2699 0,
2700 0,
2701 0,
2702 CFGTS_FRAME,
2703 IDS_NOTETREESORT1TEXT,
2704 CfgTSDlgProc,
2705 0,
2706 0,
2707 0,
2708 CFGV_FRAME,
2709 IDS_NOTEVIEWERS1TEXT,
2710 CfgVDlgProc,
2711 0,
2712 0,
2713 0,
2714 CFGC_FRAME,
2715 IDS_NOTECOMPARE1TEXT,
2716 CfgCDlgProc,
2717 0,
2718 0,
2719 0,
2720 CFGM_FRAME,
2721 IDS_NOTEMONOLITHIC1TEXT,
2722 CfgMDlgProc,
2723 0,
2724 0,
2725 0,
2726 CFGG_FRAME,
2727 IDS_NOTEGENERAL1TEXT,
2728 CfgGDlgProc,
2729 0,
2730 0,
2731 0,
2732 CFGS_FRAME,
2733 IDS_NOTESCANNING1TEXT,
2734 CfgSDlgProc,
2735 0,
2736 0,
2737 0,
2738 CFGB_FRAME,
2739 IDS_NOTEBUBBLE1TEXT,
2740 CfgBDlgProc,
2741 0,
2742 0,
2743 0,
2744 CFG9_FRAME,
2745 IDS_NOTEQUICK1TEXT,
2746 Cfg9DlgProc,
2747 0,
2748 0,
2749 0,
2750 0,
2751 0,
2752 NULL,
2753 0,
2754 0,
2755 0
2756};
2757
2758MRESULT EXPENTRY CfgDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
2759{
2760 HWND hwndTemp;
2761 USHORT attrib = BKA_FIRST;
2762 INT x;
2763 ULONG pageID;
2764
2765 switch (msg) {
2766 case WM_INITDLG:
2767 hwndNotebook = hwnd;
2768 if (mp2) {
2769 if (!strcmp((CHAR *) mp2, "FM/4")) {
2770 x = 0;
2771 while (np[x].frameid && np[x].frameid != CFG9_FRAME)
2772 x++;
2773 np[x].frameid = 0;
2774 }
2775 }
2776 PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID);
2777 WinSendDlgItemMsg(hwnd,
2778 CFG_NOTEBOOK,
2779 BKM_SETDIMENSIONS,
2780 MPFROM2SHORT(82, 24), MPFROMLONG(BKA_MAJORTAB));
2781 WinSendDlgItemMsg(hwnd,
2782 CFG_NOTEBOOK,
2783 BKM_SETDIMENSIONS,
2784 MPFROM2SHORT(20, 20), MPFROMLONG(BKA_PAGEBUTTON));
2785 WinSendDlgItemMsg(hwnd,
2786 CFG_NOTEBOOK,
2787 BKM_SETDIMENSIONS,
2788 MPFROM2SHORT(0, 0), MPFROMLONG(BKA_MINORTAB));
2789 for (x = 0; np[x].frameid; x++) {
2790 hwndTemp = WinLoadDlg(HWND_DESKTOP,
2791 HWND_DESKTOP,
2792 np[x].proc, FM3ModHandle, np[x].frameid, MPVOID);
2793 if (hwndTemp) {
2794 WinSetWindowULong(hwndTemp, QWL_USER, (ULONG) hwnd);
2795 np[x].hwnd = hwndTemp;
2796 np[x].pageID = (ULONG) WinSendDlgItemMsg(hwnd,
2797 CFG_NOTEBOOK,
2798 BKM_INSERTPAGE,
2799 MPFROMLONG(BKA_FIRST),
2800 MPFROM2SHORT(BKA_AUTOPAGESIZE
2801 |
2802 BKA_STATUSTEXTON
2803 | BKA_MAJOR,
2804 attrib));
2805 attrib = BKA_LAST;
2806 WinSendDlgItemMsg(hwnd,
2807 CFG_NOTEBOOK,
2808 BKM_SETPAGEWINDOWHWND,
2809 MPFROMLONG(np[x].pageID), MPFROMLONG(np[x].hwnd));
2810 WinSendDlgItemMsg(hwnd,
2811 CFG_NOTEBOOK,
2812 BKM_SETTABTEXT,
2813 MPFROMLONG(np[x].pageID),
2814 MPFROMP(GetPString(np[x].title)));
2815 WinSendDlgItemMsg(hwnd,
2816 CFG_NOTEBOOK,
2817 BKM_SETSTATUSLINETEXT,
2818 MPFROMLONG(np[x].pageID),
2819 MPFROMP(GetPString(np[x].title + 1)));
2820 }
2821 }
2822 /* see if we've been asked to display quick cfg page */
2823 if (!mp2 ||
2824 strcmp((CHAR *) mp2, "First Time") ||
2825 !x || !np[x - 1].hwnd || !np[x - 1].pageID) {
2826 PostMsg(WinWindowFromID(hwnd, CFG_NOTEBOOK),
2827 BKM_TURNTOPAGE, MPFROMLONG(np[0].pageID), MPVOID);
2828 }
2829 else {
2830 PostMsg(MainObjectHwnd, UM_SETDIR, MPFROMLONG(1L), MPVOID);
2831 PostMsg(WinWindowFromID(hwnd, CFG_NOTEBOOK),
2832 BKM_TURNTOPAGE, MPFROMLONG(np[x - 1].pageID), MPVOID);
2833 PostMsg(hwnd, UM_FOCUSME, MPFROMLONG(np[x - 1].hwnd), MPVOID);
2834 PostMsg(np[x - 1].hwnd, WM_COMMAND, MPFROM2SHORT(IDM_HELP, 0), MPVOID);
2835 }
2836 break;
2837
2838 case UM_FOCUSME:
2839 if (mp1)
2840 WinSetActiveWindow(HWND_DESKTOP, (HWND) mp1);
2841 break;
2842
2843 case WM_CONTROL:
2844 switch (SHORT1FROMMP(mp1)) {
2845 case CFG_NOTEBOOK:
2846 switch (SHORT2FROMMP(mp1)) {
2847 case BKN_PAGESELECTED:
2848 if (mp2) {
2849
2850 PAGESELECTNOTIFY *psn = mp2;
2851
2852 WinSendDlgItemMsg(hwnd,
2853 CFG_NOTEBOOK,
2854 BKM_QUERYPAGEWINDOWHWND,
2855 MPFROMLONG(psn->ulPageIdNew), MPVOID);
2856 }
2857 break;
2858 }
2859 break;
2860 }
2861 return 0;
2862
2863 case UM_SETUP:
2864 WinSetActiveWindow(HWND_DESKTOP, WinQueryWindow(hwnd, QW_OWNER));
2865 WinSetActiveWindow(HWND_DESKTOP, hwnd);
2866 return 0;
2867
2868 case WM_COMMAND:
2869 switch (SHORT1FROMMP(mp1)) {
2870 case DID_OK:
2871 WinDismissDlg(hwnd, 1);
2872 break;
2873
2874 case DID_CANCEL:
2875 // Tell current page to undo itself in case changed and still alive
2876 pageID = (ULONG) WinSendDlgItemMsg(hwnd,
2877 CFG_NOTEBOOK,
2878 BKM_QUERYPAGEID,
2879 MPFROMLONG(0),
2880 MPFROM2SHORT(BKA_TOP, 0));
2881 hwndTemp = (HWND) WinSendDlgItemMsg(hwnd,
2882 CFG_NOTEBOOK,
2883 BKM_QUERYPAGEWINDOWHWND,
2884 MPFROMLONG(pageID), MPVOID);
2885 if (hwndTemp)
2886 WinSendMsg(hwndTemp, UM_UNDO, MPVOID, MPVOID);
2887
2888 WinDismissDlg(hwnd, 0);
2889 break;
2890
2891 case IDM_HELP: /* relay message to appropriate page's window */
2892 pageID = (ULONG) WinSendDlgItemMsg(hwnd,
2893 CFG_NOTEBOOK,
2894 BKM_QUERYPAGEID,
2895 MPFROMLONG(0),
2896 MPFROM2SHORT(BKA_TOP, 0));
2897 hwndTemp = (HWND) WinSendDlgItemMsg(hwnd,
2898 CFG_NOTEBOOK,
2899 BKM_QUERYPAGEWINDOWHWND,
2900 MPFROMLONG(pageID), MPVOID);
2901 if (hwndTemp)
2902 PostMsg(hwndTemp, WM_COMMAND, MPFROM2SHORT(IDM_HELP, 0), MPVOID);
2903 break;
2904 }
2905 return 0;
2906
2907 case UM_UNDO:
2908 for (x = 0; np[x].frameid; x++) {
2909 if (np[x].hwnd)
2910 WinSendMsg(np[x].hwnd, UM_UNDO, MPVOID, MPVOID);
2911 }
2912 break;
2913
2914 case WM_DESTROY:
2915 if (np[0].frameid) {
2916 for (x = 1; np[x].frameid; x++) {
2917 if (np[x].hwnd) {
2918 WinSendMsg(np[x].hwnd, WM_CLOSE, MPVOID, MPVOID);
2919 np[x].hwnd = (HWND) 0;
2920 np[x].pageID = 0;
2921 }
2922 }
2923 WinSendMsg(np[0].hwnd, WM_CLOSE, MPVOID, MPVOID);
2924 np[0].hwnd = (HWND) 0;
2925 np[0].pageID = 0;
2926 }
2927 hwndNotebook = (HWND) 0;
2928 break;
2929 }
2930 return WinDefDlgProc(hwnd, msg, mp1, mp2);
2931}
Note: See TracBrowser for help on using the repository browser.