source: trunk/dll/notebook.c@ 783

Last change on this file since 783 was 783, checked in by Steven Levine, 18 years ago

Rework DosFindFirst/Next loops to optimize memory allocation and code paths
Adjust FilesToGet limits
Update configuration notebook scanning page
Start updating #pragma alloc_text positioning for OpenWatcom compatibility

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