source: trunk/dll/notebook.c@ 752

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

Changes to findbuf (10240 default setting) to speed container fills. Max is 102400 min 2048. Also reduced DosSleep time in filldirs to speed container fills.Ticket 138.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 90.3 KB
Line 
1
2/***********************************************************************
3
4 $Id: notebook.c 752 2007-08-03 02:36:29Z gyoung $
5
6 Configuration notebook
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2004, 2006 Steven H. Levine
10
11 01 Aug 04 SHL Rework lstrip/rstrip usage
12 23 May 05 SHL Use QWL_USER
13 04 Jun 05 SHL Support Cancel button; make Esc key more consistent
14 29 May 06 SHL Comments
15 17 Jul 06 SHL Use Runtime_Error
16 15 Aug 06 SHL Rework SetMask args
17
18***********************************************************************/
19
20#define INCL_DOS
21#define INCL_WIN
22#include <os2.h>
23
24#include <stdio.h>
25#include <stdlib.h>
26#include <string.h>
27
28#include "fm3dll.h"
29#include "fm3dlg.h"
30#include "fm3str.h"
31
32#pragma data_seg(DATA2)
33
34static PSZ pszSrcFile = __FILE__;
35
36#pragma alloc_text(NOTEBOOK,CfgTDlgProc,CfgTSDlgProc,CfgMDlgProc)
37#pragma alloc_text(NOTEBOOK2,CfgADlgProc,CfgSDlgProc,CfgVDlgProc)
38#pragma alloc_text(NOTEBOOK3,CfgDDlgProc,Cfg5DlgProc,Cfg6DlgProc)
39#pragma alloc_text(NOTEBOOK4,Cfg7DlgProc,Cfg8DlgProc,CfgCDlgProc)
40#pragma alloc_text(NOTEBOOK5,CfgGDlgProc,CfgDlgProc,CfgBDlgProc)
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(2048), MPVOID);
226 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_OVERRIDESETLIMITS,
227 MPFROMLONG(102400), MPFROMLONG(2048));
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 < 2048)
321 temp = 2048;
322 else if (temp > 102400)
323 temp = 102400;
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 = 10240;
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 = 2048;
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 = 10240;
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}
Note: See TracBrowser for help on using the repository browser.