source: trunk/dll/notebook.c@ 551

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

Indentation cleanup

  • 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 551 2007-02-28 01:33:51Z 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(4L), MPVOID);
226 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_OVERRIDESETLIMITS,
227 MPFROMLONG(2048L), MPFROMLONG(16L));
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 < 16L)
321 temp = 16L;
322 else if (temp > 2048L)
323 temp = 2048L;
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;
819
820 th = (fNoFinger) ? 2 : (fNoDead) ? 1 : 0;
821 WinCheckButton(hwnd, CFGG_NODEAD, th);
822 }
823 WinCheckButton(hwnd, CFGG_BORING, fDullMin);
824 WinCheckButton(hwnd, CFGG_CUSTOMFILEDLG, fCustomFileDlg);
825 WinCheckButton(hwnd, CFGG_FM2DELETES, fFM2Deletes);
826 WinCheckButton(hwnd, CFGG_CONFIRMTARGET, fConfirmTarget);
827 WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
828 return 0;
829
830 case UM_FOCUSME:
831 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, IDM_HELP));
832 return 0;
833
834 case UM_SETUP5:
835 SetTargetDir(hwnd, FALSE);
836 WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
837 return 0;
838
839 case WM_CONTROL:
840 switch (SHORT1FROMMP(mp1)) {
841 case CFGG_TARGETDIR:
842 switch (SHORT2FROMMP(mp1)) {
843 case EN_SETFOCUS:
844 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
845 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
846 break;
847 }
848 break;
849 }
850 return 0;
851
852 case WM_COMMAND:
853 switch (SHORT1FROMMP(mp1)) {
854 case IDM_UNDO:
855 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
856 break;
857
858 case DID_CANCEL:
859 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
860
861 case DID_OK:
862 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
863 break;
864
865 case IDM_HELP:
866 if (hwndHelp)
867 WinSendMsg(hwndHelp,
868 HM_DISPLAY_HELP,
869 MPFROM2SHORT(HELP_CFGG, 0), MPFROMSHORT(HM_RESOURCEID));
870 break;
871 }
872 return 0;
873
874 case WM_CLOSE:
875 {
876 long test;
877
878 test = WinQueryButtonCheckstate(hwnd, CFGG_NODEAD);
879 fNoDead = (test == 1);
880 fNoFinger = (test == 2);
881 PrfWriteProfileData(fmprof, FM3Str, "NoDead", &fNoDead, sizeof(BOOL));
882 PrfWriteProfileData(fmprof,
883 FM3Str, "NoFinger", &fNoFinger, sizeof(BOOL));
884 WinDestroyPointer(hptrFinger);
885 if (!fNoDead)
886 hptrFinger = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, FINGER_ICON);
887 else
888 hptrFinger = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, FINGER2_ICON);
889 }
890 fLinkSetsIcon = WinQueryButtonCheckstate(hwnd, CFGG_LINKSETSICON);
891 PrfWriteProfileData(fmprof,
892 appname,
893 "LinkSetsIcon", &fLinkSetsIcon, sizeof(BOOL));
894 fCustomFileDlg = WinQueryButtonCheckstate(hwnd, CFGG_CUSTOMFILEDLG);
895 PrfWriteProfileData(fmprof,
896 FM3Str,
897 "CustomFileDlg", &fCustomFileDlg, sizeof(BOOL));
898 fDullMin = WinQueryButtonCheckstate(hwnd, CFGG_BORING);
899 PrfWriteProfileData(fmprof,
900 FM3Str, "DullDatabar", &fDullMin, sizeof(BOOL));
901 fConfirmDelete = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMDELETE);
902 PrfWriteProfileData(fmprof,
903 appname,
904 "ConfirmDelete", &fConfirmDelete, sizeof(BOOL));
905 fDontMoveMouse = WinQueryButtonCheckstate(hwnd, CFGG_DONTMOVEMOUSE);
906 PrfWriteProfileData(fmprof,
907 appname,
908 "DontMoveMouse", &fDontMoveMouse, sizeof(BOOL));
909 fCopyDefault = WinQueryButtonCheckstate(hwnd, CFGG_DEFAULTCOPY);
910 PrfWriteProfileData(fmprof, appname, "DefaultCopy",
911 &fCopyDefault, sizeof(BOOL));
912 fRealIdle = WinQueryButtonCheckstate(hwnd, CFGG_IDLECOPY);
913 PrfWriteProfileData(fmprof, appname, "IdleCopy",
914 &fRealIdle, sizeof(BOOL));
915 fDragndropDlg = WinQueryButtonCheckstate(hwnd, CFGG_DNDDLG);
916 PrfWriteProfileData(fmprof, appname, "Drag&DropDlg",
917 &fDragndropDlg, sizeof(BOOL));
918 fVerify = WinQueryButtonCheckstate(hwnd, CFGG_VERIFYWRITES);
919 PrfWriteProfileData(fmprof, appname, "VerifyWrites",
920 &fVerify, sizeof(BOOL));
921 DosSetVerify(fVerify);
922 fDefaultDeletePerm = WinQueryButtonCheckstate(hwnd,
923 CFGG_DEFAULTDELETEPERM);
924 PrfWriteProfileData(fmprof, appname, "DefaultDeletePerm",
925 &fDefaultDeletePerm, sizeof(BOOL));
926 fFM2Deletes = WinQueryButtonCheckstate(hwnd, CFGG_FM2DELETES);
927 PrfWriteProfileData(fmprof, FM3Str, "FM2Deletes",
928 &fFM2Deletes, sizeof(BOOL));
929 fConfirmTarget = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMTARGET);
930 PrfWriteProfileData(fmprof, appname, "ConfirmTarget",
931 &fConfirmTarget, sizeof(BOOL));
932 break;
933 }
934 return WinDefDlgProc(hwnd, msg, mp1, mp2);
935}
936
937MRESULT EXPENTRY CfgCDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
938{
939 switch (msg) {
940 case WM_INITDLG:
941 WinSendDlgItemMsg(hwnd, CFGC_COMPARE, EM_SETTEXTLIMIT,
942 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
943 WinSendDlgItemMsg(hwnd, CFGC_DIRCOMPARE, EM_SETTEXTLIMIT,
944 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
945 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
946 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
947 break;
948
949 case UM_UNDO:
950 WinSetDlgItemText(hwnd, CFGC_COMPARE, compare);
951 WinSetDlgItemText(hwnd, CFGC_DIRCOMPARE, dircompare);
952 return 0;
953
954 case WM_CONTROL:
955 switch (SHORT1FROMMP(mp1)) {
956 case CFGC_COMPARE:
957 case CFGC_DIRCOMPARE:
958 switch (SHORT2FROMMP(mp1)) {
959 case EN_KILLFOCUS:
960 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
961 break;
962 case EN_SETFOCUS:
963 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), TRUE);
964 break;
965 }
966 break;
967 }
968 return 0;
969
970 case WM_COMMAND:
971 switch (SHORT1FROMMP(mp1)) {
972 case IDM_UNDO:
973 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
974 break;
975
976 case DID_CANCEL:
977 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
978
979 case DID_OK:
980 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
981 break;
982
983 case IDM_HELP:
984 if (hwndHelp)
985 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
986 MPFROM2SHORT(HELP_CFGC, 0), MPFROMSHORT(HM_RESOURCEID));
987 break;
988
989 case CFGC_FIND:
990 {
991 CHAR filename[CCHMAXPATH + 9];
992 USHORT id;
993 HWND hwndFocus;
994
995 strcpy(filename, "*.EXE");
996 hwndFocus = WinQueryFocus(HWND_DESKTOP);
997 if (hwndFocus) {
998 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
999 switch (id) {
1000 case CFGC_COMPARE:
1001 case CFGC_DIRCOMPARE:
1002 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
1003 strcat(filename, " %a");
1004 WinSetDlgItemText(hwnd, id, filename);
1005 }
1006 break;
1007 default:
1008 Runtime_Error(pszSrcFile, __LINE__, "bad case %d", id);
1009 break;
1010 }
1011 }
1012 }
1013 break;
1014 }
1015 return 0;
1016
1017 case WM_CLOSE:
1018 WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, CCHMAXPATH, dircompare);
1019 dircompare[CCHMAXPATH - 1] = 0;
1020 bstrip(dircompare);
1021 PrfWriteProfileString(fmprof, appname, "DirCompare", dircompare);
1022 WinQueryDlgItemText(hwnd, CFGC_COMPARE, CCHMAXPATH, compare);
1023 compare[CCHMAXPATH - 1] = 0;
1024 bstrip(compare);
1025 PrfWriteProfileString(fmprof, appname, "Compare", compare);
1026 break;
1027 }
1028 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1029}
1030
1031MRESULT EXPENTRY CfgDDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1032{
1033 switch (msg) {
1034 case WM_INITDLG:
1035 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1036 break;
1037
1038 case UM_UNDO:
1039 WinCheckButton(hwnd, CFGD_UNHILITE, fUnHilite);
1040 WinCheckButton(hwnd, CFGD_SYNCUPDATES, fSyncUpdates);
1041 WinCheckButton(hwnd, CFGD_LOOKINDIR, fLookInDir);
1042 WinCheckButton(hwnd, CFGD_MINONOPEN, fMinOnOpen);
1043 WinCheckButton(hwnd, CFGD_SELECTEDALWAYS, fSelectedAlways);
1044 WinCheckButton(hwnd, CFGD_NOSEARCH, fNoSearch);
1045 WinCheckButton(hwnd, CFGD_EXTENDEDSEL,
1046 ((ulCnrType & CCS_EXTENDSEL) != 0));
1047 WinCheckButton(hwnd, CFGD_MULTIPLESEL,
1048 ((ulCnrType & CCS_MULTIPLESEL) != 0));
1049 WinCheckButton(hwnd, CFGD_LEAVETREE, fLeaveTree);
1050 WinCheckButton(hwnd, CFGD_NOFOLDMENU, fNoFoldMenu);
1051 return 0;
1052
1053 case WM_COMMAND:
1054 switch (SHORT1FROMMP(mp1)) {
1055 case IDM_UNDO:
1056 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1057 break;
1058
1059 case DID_CANCEL:
1060 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1061
1062 case DID_OK:
1063 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1064 break;
1065
1066 case IDM_HELP:
1067 if (hwndHelp)
1068 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1069 MPFROM2SHORT(HELP_CFGD, 0), MPFROMSHORT(HM_RESOURCEID));
1070 break;
1071 }
1072 return 0;
1073
1074 case WM_CLOSE:
1075 ulCnrType = 0;
1076 if (WinQueryButtonCheckstate(hwnd, CFGD_EXTENDEDSEL))
1077 ulCnrType |= CCS_EXTENDSEL;
1078 if (WinQueryButtonCheckstate(hwnd, CFGD_MULTIPLESEL))
1079 ulCnrType |= CCS_MULTIPLESEL;
1080 PrfWriteProfileData(fmprof, appname, "ContainerType",
1081 (PVOID) & ulCnrType, sizeof(BOOL));
1082 fMinOnOpen = WinQueryButtonCheckstate(hwnd, CFGD_MINONOPEN);
1083 PrfWriteProfileData(fmprof, FM3Str, "MinDirOnOpen", &fMinOnOpen,
1084 sizeof(BOOL));
1085 fLeaveTree = WinQueryButtonCheckstate(hwnd, CFGD_LEAVETREE);
1086 PrfWriteProfileData(fmprof, appname, "LeaveTree", &fLeaveTree,
1087 sizeof(BOOL));
1088 fNoFoldMenu = WinQueryButtonCheckstate(hwnd, CFGD_NOFOLDMENU);
1089 PrfWriteProfileData(fmprof, appname, "NoFoldMenu", &fNoFoldMenu,
1090 sizeof(BOOL));
1091 fSelectedAlways = WinQueryButtonCheckstate(hwnd, CFGD_SELECTEDALWAYS);
1092 PrfWriteProfileData(fmprof, appname, "SelectedAlways", &fSelectedAlways,
1093 sizeof(BOOL));
1094 fNoSearch = WinQueryButtonCheckstate(hwnd, CFGD_NOSEARCH);
1095 PrfWriteProfileData(fmprof, appname, "NoSearch", &fNoSearch,
1096 sizeof(BOOL));
1097 fLookInDir = WinQueryButtonCheckstate(hwnd, CFGD_LOOKINDIR);
1098 PrfWriteProfileData(fmprof, FM3Str, "LookInDir", (PVOID) & fLookInDir,
1099 sizeof(BOOL));
1100 fUnHilite = WinQueryButtonCheckstate(hwnd, CFGD_UNHILITE);
1101 PrfWriteProfileData(fmprof, appname, "UnHilite",
1102 &fUnHilite, sizeof(BOOL));
1103 {
1104 BOOL dummy = WinQueryButtonCheckstate(hwnd, CFGD_SYNCUPDATES);
1105
1106 if (dummy != fSyncUpdates) {
1107 fSyncUpdates = dummy;
1108 if (hwndMain && !strcmp(realappname, FM3Str)) {
1109 if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT))) {
1110 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
1111 PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
1112 }
1113 }
1114 }
1115 }
1116 PrfWriteProfileData(fmprof, appname, "SyncUpdates",
1117 &fSyncUpdates, sizeof(BOOL));
1118 if (!(ulCnrType & (CCS_EXTENDSEL | CCS_MULTIPLESEL)))
1119 saymsg(MB_ENTER | MB_ICONEXCLAMATION,
1120 HWND_DESKTOP,
1121 GetPString(IDS_WARNINGTEXT),
1122 GetPString(IDS_SELECTTYPEERRORTEXT));
1123 break;
1124 }
1125 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1126}
1127
1128MRESULT EXPENTRY CfgMDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1129{
1130 switch (msg) {
1131 case WM_INITDLG:
1132 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1133 break;
1134
1135 case UM_UNDO:
1136 WinCheckButton(hwnd, CFGM_EXTERNALINIS, fExternalINIs);
1137 WinCheckButton(hwnd, CFGM_EXTERNALARCBOXES, fExternalArcboxes);
1138 WinCheckButton(hwnd, CFGM_EXTERNALVIEWER, fExternalViewer);
1139 WinCheckButton(hwnd, CFGM_EXTERNALCOLLECTOR, fExternalCollector);
1140 WinCheckButton(hwnd, CFGM_SAVESTATE, fSaveState);
1141 WinCheckButton(hwnd, CFGM_AUTOTILE, (fAutoTile));
1142 WinCheckButton(hwnd, CFGM_FREETREE, (fFreeTree));
1143 WinCheckButton(hwnd, CFGM_SPLITSTATUS, (fSplitStatus));
1144 WinCheckButton(hwnd, CFGM_NOTREEGAP, (fNoTreeGap));
1145 WinCheckButton(hwnd, CFGM_STARTMIN, (fStartMinimized));
1146 WinCheckButton(hwnd, CFGM_STARTMAX, (fStartMaximized));
1147 WinCheckButton(hwnd, CFGM_DATAMIN, (fDataMin));
1148 WinCheckButton(hwnd, CFGM_TILEBACKWARDS, (fTileBackwards));
1149 {
1150 long th;
1151
1152 th = (fAutoAddDirs && fAutoAddAllDirs) ? 2 : (fAutoAddDirs) ? 1 : 0;
1153 WinCheckButton(hwnd, CFGM_RECENTDIRS, th);
1154 WinSendMsg(hwnd, UM_RESTORE, MPFROM2SHORT(CFGM_RECENTDIRS, 0), MPVOID);
1155 }
1156 WinCheckButton(hwnd, CFGM_USERLISTSWITCHES, fUserListSwitches);
1157 WinCheckButton(hwnd, CFGM_WSANIMATE, (fwsAnimate != 0));
1158 WinCheckButton(hwnd, CFGM_SEPARATEPARMS, fSeparateParms);
1159 WinCheckButton(hwnd, CFGM_BLUELED, fBlueLED);
1160 WinCheckButton(hwnd, CFGM_SHOWTARGET, fShowTarget);
1161 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), !(fStartMinimized));
1162 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), !(fStartMaximized));
1163 return 0;
1164
1165 case UM_RESTORE:
1166 {
1167 long test;
1168 BOOL th, oh;
1169 char s[80];
1170
1171 test = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
1172 th = (test != 0);
1173 oh = (test == 1);
1174 *s = 0;
1175 switch (SHORT1FROMMP(mp1)) {
1176 case CFGM_RECENTDIRS:
1177 sprintf(s,
1178 GetPString(IDS_RECENTHELPWHICHTEXT),
1179 (!oh && th) ?
1180 GetPString(IDS_RECENTONLYTEXT) :
1181 (oh && th) ?
1182 GetPString(IDS_ALLONLYTEXT) : GetPString(IDS_NONE));
1183 break;
1184 }
1185 if (*s)
1186 WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), s);
1187 }
1188 return 0;
1189
1190 case WM_CONTROL:
1191 switch (SHORT1FROMMP(mp1)) {
1192 case CFGM_RECENTDIRS:
1193 WinSendMsg(hwnd, UM_RESTORE, mp1, MPVOID);
1194 break;
1195 case CFGM_STARTMIN:
1196 if (WinQueryButtonCheckstate(hwnd, CFGM_STARTMIN)) {
1197 WinCheckButton(hwnd, CFGM_STARTMAX, FALSE);
1198 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), FALSE);
1199 }
1200 else
1201 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), TRUE);
1202 break;
1203 case CFGM_STARTMAX:
1204 if (WinQueryButtonCheckstate(hwnd, CFGM_STARTMAX)) {
1205 WinCheckButton(hwnd, CFGM_STARTMIN, FALSE);
1206 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), FALSE);
1207 }
1208 else
1209 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), TRUE);
1210 break;
1211 }
1212 return 0;
1213
1214 case WM_COMMAND:
1215 switch (SHORT1FROMMP(mp1)) {
1216 case IDM_UNDO:
1217 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1218 break;
1219
1220 case DID_CANCEL:
1221 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1222
1223 case DID_OK:
1224 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1225 break;
1226
1227 case IDM_HELP:
1228 if (hwndHelp)
1229 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1230 MPFROM2SHORT(HELP_CFGM, 0), MPFROMSHORT(HM_RESOURCEID));
1231 break;
1232 }
1233 return 0;
1234
1235 case WM_CLOSE:
1236 if (hwndMain && !strcmp(realappname, FM3Str)) {
1237 if (fFreeTree != WinQueryButtonCheckstate(hwnd, CFGM_FREETREE))
1238 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_FREETREE, 0), MPVOID);
1239 if (fAutoTile != WinQueryButtonCheckstate(hwnd, CFGM_AUTOTILE))
1240 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_AUTOTILE, 0), MPVOID);
1241 if (fSplitStatus != WinQueryButtonCheckstate(hwnd, CFGM_SPLITSTATUS)) {
1242 fSplitStatus = (fSplitStatus) ? FALSE : TRUE;
1243 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_BLINK, 0), MPVOID);
1244 PrfWriteProfileData(fmprof, FM3Str, "SplitStatus", &fSplitStatus,
1245 sizeof(BOOL));
1246 }
1247 }
1248 fUserListSwitches = WinQueryButtonCheckstate(hwnd, CFGM_USERLISTSWITCHES);
1249 PrfWriteProfileData(fmprof, FM3Str, "UserListSwitches",
1250 (PVOID) & fUserListSwitches, sizeof(BOOL));
1251 fExternalINIs = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALINIS);
1252 PrfWriteProfileData(fmprof, FM3Str, "ExternalINIs",
1253 (PVOID) & fExternalINIs, sizeof(BOOL));
1254 fExternalArcboxes = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALARCBOXES);
1255 PrfWriteProfileData(fmprof, FM3Str, "ExternalArcboxes",
1256 (PVOID) & fExternalArcboxes, sizeof(BOOL));
1257 fExternalCollector =
1258 WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALCOLLECTOR);
1259 PrfWriteProfileData(fmprof, FM3Str, "ExternalCollector",
1260 (PVOID) & fExternalCollector, sizeof(BOOL));
1261 fExternalViewer = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALVIEWER);
1262 PrfWriteProfileData(fmprof, FM3Str, "ExternalViewer",
1263 (PVOID) & fExternalViewer, sizeof(BOOL));
1264 {
1265 long test;
1266
1267 test = WinQueryButtonCheckstate(hwnd, CFGM_RECENTDIRS);
1268 fAutoAddDirs = (test != 0);
1269 fAutoAddAllDirs = (test == 2);
1270 }
1271 PrfWriteProfileData(fmprof,
1272 appname,
1273 "AutoAddDirs", (PVOID) & fAutoAddDirs, sizeof(BOOL));
1274 PrfWriteProfileData(fmprof,
1275 appname,
1276 "AutoAddAllDirs",
1277 (PVOID) & fAutoAddAllDirs, sizeof(BOOL));
1278 fwsAnimate = WinQueryButtonCheckstate(hwnd, CFGM_WSANIMATE);
1279 if (fwsAnimate)
1280 fwsAnimate = WS_ANIMATE;
1281 PrfWriteProfileData(fmprof,
1282 appname,
1283 "WS_ANIMATE", (PVOID) & fwsAnimate, sizeof(ULONG));
1284 fSaveState = WinQueryButtonCheckstate(hwnd, CFGM_SAVESTATE);
1285 PrfWriteProfileData(fmprof,
1286 FM3Str,
1287 "SaveState", (PVOID) & fSaveState, sizeof(BOOL));
1288 fStartMinimized = WinQueryButtonCheckstate(hwnd, CFGM_STARTMIN);
1289 PrfWriteProfileData(fmprof,
1290 appname,
1291 "StartMinimized",
1292 (PVOID) & fStartMinimized, sizeof(BOOL));
1293 fStartMaximized = WinQueryButtonCheckstate(hwnd, CFGM_STARTMAX);
1294 PrfWriteProfileData(fmprof,
1295 appname,
1296 "StartMaximized",
1297 (PVOID) & fStartMaximized, sizeof(BOOL));
1298 fDataMin = WinQueryButtonCheckstate(hwnd, CFGM_DATAMIN);
1299 PrfWriteProfileData(fmprof,
1300 FM3Str, "DataMin", (PVOID) & fDataMin, sizeof(BOOL));
1301 fTileBackwards = WinQueryButtonCheckstate(hwnd, CFGM_TILEBACKWARDS);
1302 PrfWriteProfileData(fmprof,
1303 FM3Str,
1304 "TileBackwards",
1305 (PVOID) & fTileBackwards, sizeof(BOOL));
1306 fNoTreeGap = WinQueryButtonCheckstate(hwnd, CFGM_NOTREEGAP);
1307 PrfWriteProfileData(fmprof,
1308 FM3Str,
1309 "NoTreeGap", (PVOID) & fNoTreeGap, sizeof(BOOL));
1310 fBlueLED = WinQueryButtonCheckstate(hwnd, CFGM_BLUELED);
1311 PrfWriteProfileData(fmprof,
1312 appname, "BlueLED", (PVOID) & fBlueLED, sizeof(BOOL));
1313 {
1314 BOOL dummy;
1315
1316 dummy = WinQueryButtonCheckstate(hwnd, CFGM_SHOWTARGET);
1317 if (dummy != fShowTarget) {
1318 fShowTarget = dummy;
1319 PrfWriteProfileData(fmprof,
1320 appname,
1321 "ShowTarget",
1322 (PVOID) & fShowTarget, sizeof(BOOL));
1323 if (hwndMain)
1324 PostMsg(WinQueryWindow(hwndMain, QW_PARENT),
1325 WM_UPDATEFRAME, MPFROMLONG(FCF_SIZEBORDER), MPVOID);
1326 SetTargetDir(hwnd, TRUE);
1327 }
1328 dummy = WinQueryButtonCheckstate(hwnd, CFGM_SEPARATEPARMS);
1329 if (dummy != fSeparateParms) {
1330 fSeparateParms = dummy;
1331 PrfWriteProfileData(fmprof,
1332 FM3Str,
1333 "SeparateParms",
1334 (PVOID) & fSeparateParms, sizeof(BOOL));
1335 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER),
1336 UM_UNDO, MPVOID, MPVOID);
1337 }
1338 }
1339 break;
1340 }
1341 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1342}
1343
1344MRESULT EXPENTRY Cfg5DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1345{
1346 static MASK mask;
1347
1348 switch (msg) {
1349 case WM_INITDLG:
1350 WinSendDlgItemMsg(hwnd,
1351 CFG5_FILTER,
1352 EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
1353 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1354 break;
1355
1356 case UM_FOCUSME:
1357 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, CFG5_MINIICONS));
1358 return 0;
1359
1360 case UM_UNDO:
1361 {
1362 ULONG flWindowAttr = 0, size = sizeof(ULONG);
1363
1364 if (!PrfQueryProfileData(fmprof,
1365 appname,
1366 "DirflWindowAttr", &flWindowAttr, &size))
1367 flWindowAttr = (CV_NAME | CV_MINI | CA_DETAILSVIEWTITLES | CV_FLOW);
1368 if (flWindowAttr & CV_ICON)
1369 WinCheckButton(hwnd, CFG5_ICON, TRUE);
1370 if (flWindowAttr & CV_NAME)
1371 WinCheckButton(hwnd, CFG5_NAME, TRUE);
1372 if (flWindowAttr & CV_TEXT)
1373 WinCheckButton(hwnd, CFG5_TEXT, TRUE);
1374 if (flWindowAttr & CV_DETAIL)
1375 WinCheckButton(hwnd, CFG5_DETAIL, TRUE);
1376 if (flWindowAttr & CV_MINI)
1377 WinCheckButton(hwnd, CFG5_MINIICONS, TRUE);
1378 if (flWindowAttr & CA_DETAILSVIEWTITLES)
1379 WinCheckButton(hwnd, CFG5_SHOWTITLES, TRUE);
1380 WinCheckButton(hwnd, CFG5_SHOWLNAMES, detailslongname);
1381 WinCheckButton(hwnd, CFG5_SHOWSUBJECT, detailssubject);
1382 WinCheckButton(hwnd, CFG5_SHOWEAS, detailsea);
1383 WinCheckButton(hwnd, CFG5_SHOWSIZE, detailssize);
1384 WinCheckButton(hwnd, CFG5_SHOWICON, detailsicon);
1385 WinCheckButton(hwnd, CFG5_SHOWLWDATE, detailslwdate);
1386 WinCheckButton(hwnd, CFG5_SHOWLWTIME, detailslwtime);
1387 WinCheckButton(hwnd, CFG5_SHOWLADATE, detailsladate);
1388 WinCheckButton(hwnd, CFG5_SHOWLATIME, detailslatime);
1389 WinCheckButton(hwnd, CFG5_SHOWCRDATE, detailscrdate);
1390 WinCheckButton(hwnd, CFG5_SHOWCRTIME, detailscrtime);
1391 WinCheckButton(hwnd, CFG5_SHOWATTR, detailsattr);
1392 memset(&mask, 0, sizeof(mask));
1393 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1394 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1395 size = sizeof(MASK);
1396 if (PrfQueryProfileData(fmprof, appname, "DirFilter", &mask, &size))
1397 SetMask(NULL, &mask);
1398 if (!mask.attrFile)
1399 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1400 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1401 strcpy(mask.prompt, GetPString(IDS_DEFDIRFILTERTITLETEXT));
1402 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1403 }
1404 return 0;
1405
1406 case UM_SETUP5:
1407 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
1408 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
1409 SetMask(NULL, &mask);
1410 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1411 }
1412 return 0;
1413
1414 case WM_CONTROL:
1415 switch (SHORT1FROMMP(mp1)) {
1416 case CFG5_FILTER:
1417 switch (SHORT2FROMMP(mp1)) {
1418 case EN_SETFOCUS:
1419 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
1420 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
1421 break;
1422 }
1423 break;
1424 }
1425 return 0;
1426
1427 case WM_COMMAND:
1428 switch (SHORT1FROMMP(mp1)) {
1429 case IDM_UNDO:
1430 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1431 break;
1432
1433 case DID_CANCEL:
1434 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1435
1436 case DID_OK:
1437 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1438 break;
1439
1440 case IDM_HELP:
1441 if (hwndHelp)
1442 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1443 MPFROM2SHORT(HELP_CFG5, 0), MPFROMSHORT(HM_RESOURCEID));
1444 break;
1445 }
1446 return 0;
1447
1448 case WM_CLOSE:
1449 {
1450 ULONG flWindowAttr = 0;
1451
1452 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
1453 flWindowAttr |= CV_ICON;
1454 if (WinQueryButtonCheckstate(hwnd, CFG5_NAME))
1455 flWindowAttr |= CV_NAME;
1456 if (WinQueryButtonCheckstate(hwnd, CFG5_TEXT))
1457 flWindowAttr |= CV_TEXT;
1458 if (WinQueryButtonCheckstate(hwnd, CFG5_DETAIL))
1459 flWindowAttr |= CV_DETAIL;
1460 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
1461 flWindowAttr |= CV_MINI;
1462 if (WinQueryButtonCheckstate(hwnd, CFG5_SHOWTITLES))
1463 flWindowAttr |= CA_DETAILSVIEWTITLES;
1464 flWindowAttr |= CV_FLOW;
1465 PrfWriteProfileData(fmprof,
1466 appname,
1467 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
1468 }
1469 detailslongname = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLNAMES);
1470 PrfWriteProfileData(fmprof, appname, "DetailsLongname",
1471 &detailslongname, sizeof(BOOL));
1472 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLongname",
1473 &detailslongname, sizeof(BOOL));
1474 detailssubject = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
1475 PrfWriteProfileData(fmprof, appname, "DetailsSubject",
1476 &detailssubject, sizeof(BOOL));
1477 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSubject",
1478 &detailssubject, sizeof(BOOL));
1479 detailsea = WinQueryButtonCheckstate(hwnd, CFG5_SHOWEAS);
1480 PrfWriteProfileData(fmprof, appname, "DetailsEA",
1481 &detailsea, sizeof(BOOL));
1482 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsEA",
1483 &detailsea, sizeof(BOOL));
1484 detailssize = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSIZE);
1485 PrfWriteProfileData(fmprof, appname, "DetailsSize",
1486 &detailssize, sizeof(BOOL));
1487 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSize",
1488 &detailssize, sizeof(BOOL));
1489 detailsicon = WinQueryButtonCheckstate(hwnd, CFG5_SHOWICON);
1490 PrfWriteProfileData(fmprof, appname, "DetailsIcon",
1491 &detailsicon, sizeof(BOOL));
1492 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsIcon",
1493 &detailsicon, sizeof(BOOL));
1494 detailslwdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWDATE);
1495 PrfWriteProfileData(fmprof, appname, "DetailsLWDate",
1496 &detailslwdate, sizeof(BOOL));
1497 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWDate",
1498 &detailslwdate, sizeof(BOOL));
1499 detailslwtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWTIME);
1500 PrfWriteProfileData(fmprof, appname, "DetailsLWTime",
1501 &detailslwtime, sizeof(BOOL));
1502 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWTime",
1503 &detailslwtime, sizeof(BOOL));
1504 detailsladate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLADATE);
1505 PrfWriteProfileData(fmprof, appname, "DetailsLADate",
1506 &detailsladate, sizeof(BOOL));
1507 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLADate",
1508 &detailsladate, sizeof(BOOL));
1509 detailslatime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLATIME);
1510 PrfWriteProfileData(fmprof, appname, "DetailsLATime",
1511 &detailslatime, sizeof(BOOL));
1512 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLATime",
1513 &detailslatime, sizeof(BOOL));
1514 detailscrdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRDATE);
1515 PrfWriteProfileData(fmprof, appname, "DetailsCRDate",
1516 &detailscrdate, sizeof(BOOL));
1517 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRDate",
1518 &detailscrdate, sizeof(BOOL));
1519 detailscrtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRTIME);
1520 PrfWriteProfileData(fmprof, appname, "DetailsCRTime",
1521 &detailscrtime, sizeof(BOOL));
1522 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRTime",
1523 &detailscrtime, sizeof(BOOL));
1524 detailsattr = WinQueryButtonCheckstate(hwnd, CFG5_SHOWATTR);
1525 PrfWriteProfileData(fmprof, appname, "DetailsAttr",
1526 &detailsattr, sizeof(BOOL));
1527 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsAttr",
1528 &detailsattr, sizeof(BOOL));
1529 *mask.prompt = 0;
1530 PrfWriteProfileData(fmprof, appname, "DirFilter", &mask, sizeof(MASK));
1531 break;
1532 }
1533 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1534}
1535
1536MRESULT EXPENTRY Cfg6DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1537{
1538 switch (msg) {
1539 case WM_INITDLG:
1540 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1541 break;
1542
1543 case UM_UNDO:
1544 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
1545 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
1546 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
1547 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
1548 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
1549 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
1550 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
1551 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
1552 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1553 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1554 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
1555 if (sortFlags & SORT_FIRSTEXTENSION)
1556 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
1557 else if (sortFlags & SORT_LASTEXTENSION)
1558 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
1559 else if (sortFlags & SORT_SIZE)
1560 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
1561 else if (sortFlags & SORT_EASIZE)
1562 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
1563 else if (sortFlags & SORT_LWDATE)
1564 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
1565 else if (sortFlags & SORT_LADATE)
1566 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
1567 else if (sortFlags & SORT_CRDATE)
1568 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
1569 else if (sortFlags & SORT_FILENAME)
1570 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
1571 else
1572 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
1573 if (sortFlags & SORT_DIRSFIRST)
1574 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, TRUE);
1575 else if (sortFlags & SORT_DIRSLAST)
1576 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, TRUE);
1577 if (sortFlags & SORT_REVERSE)
1578 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
1579 return 0;
1580
1581 case WM_CONTROL:
1582 switch (SHORT1FROMMP(mp1)) {
1583 case CFG6_SORTDIRSFIRST:
1584 case CFG6_SORTDIRSLAST:
1585 {
1586 BOOL temp;
1587
1588 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
1589 if (temp) {
1590 switch (SHORT1FROMMP(mp1)) {
1591 case CFG6_SORTDIRSFIRST:
1592 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1593 break;
1594 case CFG6_SORTDIRSLAST:
1595 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1596 break;
1597 }
1598 }
1599 }
1600 break;
1601 }
1602 return 0;
1603
1604 case WM_COMMAND:
1605 switch (SHORT1FROMMP(mp1)) {
1606 case IDM_UNDO:
1607 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1608 break;
1609
1610 case DID_CANCEL:
1611 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1612
1613 case DID_OK:
1614 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1615 break;
1616
1617 case IDM_HELP:
1618 if (hwndHelp)
1619 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1620 MPFROM2SHORT(HELP_CFG6, 0), MPFROMSHORT(HM_RESOURCEID));
1621 break;
1622 }
1623 return 0;
1624
1625 case WM_CLOSE:
1626 sortFlags = 0;
1627 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
1628 sortFlags |= SORT_FILENAME;
1629 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
1630 sortFlags |= SORT_SIZE;
1631 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
1632 sortFlags |= SORT_EASIZE;
1633 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
1634 sortFlags |= SORT_FIRSTEXTENSION;
1635 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
1636 sortFlags |= SORT_LASTEXTENSION;
1637 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
1638 sortFlags |= SORT_LWDATE;
1639 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
1640 sortFlags |= SORT_LADATE;
1641 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
1642 sortFlags |= SORT_CRDATE;
1643 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
1644 sortFlags |= SORT_DIRSFIRST;
1645 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
1646 sortFlags |= SORT_DIRSLAST;
1647 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
1648 sortFlags |= SORT_REVERSE;
1649 PrfWriteProfileData(fmprof, appname, "Sort", &sortFlags, sizeof(INT));
1650 break;
1651 }
1652 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1653}
1654
1655MRESULT EXPENTRY Cfg7DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1656{
1657 static MASK mask;
1658
1659 switch (msg) {
1660 case WM_INITDLG:
1661 WinSendDlgItemMsg(hwnd, CFG5_FILTER, EM_SETTEXTLIMIT,
1662 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
1663 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1664 break;
1665
1666 case UM_FOCUSME:
1667 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, CFG5_MINIICONS));
1668 return 0;
1669
1670 case UM_UNDO:
1671 WinCheckButton(hwnd, CFG5_EXTERNALCOLLECTOR, fExternalCollector);
1672 {
1673 ULONG flWindowAttr = 0, size = sizeof(ULONG);
1674
1675 if (!PrfQueryProfileData(fmprof,
1676 appname,
1677 "CollectorflWindowAttr", &flWindowAttr, &size))
1678 flWindowAttr = (CV_NAME | CA_DETAILSVIEWTITLES | CV_MINI | CV_FLOW);
1679 if (flWindowAttr & CV_ICON)
1680 WinCheckButton(hwnd, CFG5_ICON, TRUE);
1681 if (flWindowAttr & CV_NAME)
1682 WinCheckButton(hwnd, CFG5_NAME, TRUE);
1683 if (flWindowAttr & CV_TEXT)
1684 WinCheckButton(hwnd, CFG5_TEXT, TRUE);
1685 if (flWindowAttr & CV_DETAIL)
1686 WinCheckButton(hwnd, CFG5_DETAIL, TRUE);
1687 if (flWindowAttr & CV_MINI)
1688 WinCheckButton(hwnd, CFG5_MINIICONS, TRUE);
1689 if (flWindowAttr & CA_DETAILSVIEWTITLES)
1690 WinCheckButton(hwnd, CFG5_SHOWTITLES, TRUE);
1691 memset(&mask, 0, sizeof(mask));
1692 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1693 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1694 size = sizeof(MASK);
1695 if (PrfQueryProfileData(fmprof,
1696 appname, "CollectorFilter", &mask, &size)) {
1697 SetMask(NULL, &mask);
1698 }
1699 if (!mask.attrFile)
1700 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
1701 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
1702 strcpy(mask.prompt, GetPString(IDS_DEFCOLFILTERTITLETEXT));
1703 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1704 }
1705 {
1706 DIRCNRDATA dcd;
1707
1708 memset(&dcd, 0, sizeof(dcd));
1709 LoadDetailsSwitches("Collector", &dcd);
1710 WinCheckButton(hwnd, CFG5_SHOWLNAMES, dcd.detailslongname);
1711 WinCheckButton(hwnd, CFG5_SHOWSUBJECT, dcd.detailssubject);
1712 WinCheckButton(hwnd, CFG5_SHOWEAS, dcd.detailsea);
1713 WinCheckButton(hwnd, CFG5_SHOWSIZE, dcd.detailssize);
1714 WinCheckButton(hwnd, CFG5_SHOWICON, dcd.detailsicon);
1715 WinCheckButton(hwnd, CFG5_SHOWLWDATE, dcd.detailslwdate);
1716 WinCheckButton(hwnd, CFG5_SHOWLWTIME, dcd.detailslwtime);
1717 WinCheckButton(hwnd, CFG5_SHOWLADATE, dcd.detailsladate);
1718 WinCheckButton(hwnd, CFG5_SHOWLATIME, dcd.detailslatime);
1719 WinCheckButton(hwnd, CFG5_SHOWCRDATE, dcd.detailscrdate);
1720 WinCheckButton(hwnd, CFG5_SHOWCRTIME, dcd.detailscrtime);
1721 WinCheckButton(hwnd, CFG5_SHOWATTR, dcd.detailsattr);
1722 }
1723 return 0;
1724
1725 case UM_SETUP5:
1726 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
1727 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
1728 SetMask(NULL, &mask);
1729 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1730 }
1731 return 0;
1732
1733 case WM_CONTROL:
1734 switch (SHORT1FROMMP(mp1)) {
1735 case CFG5_FILTER:
1736 switch (SHORT2FROMMP(mp1)) {
1737 case EN_SETFOCUS:
1738 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
1739 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
1740 break;
1741 }
1742 break;
1743 }
1744 return 0;
1745
1746 case WM_COMMAND:
1747 switch (SHORT1FROMMP(mp1)) {
1748 case IDM_UNDO:
1749 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1750 break;
1751
1752 case DID_CANCEL:
1753 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1754
1755 case DID_OK:
1756 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1757 break;
1758
1759 case IDM_HELP:
1760 if (hwndHelp)
1761 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1762 MPFROM2SHORT(HELP_CFG7, 0), MPFROMSHORT(HM_RESOURCEID));
1763 break;
1764 }
1765 return 0;
1766
1767 case WM_CLOSE:
1768 fExternalCollector = WinQueryButtonCheckstate(hwnd,
1769 CFG5_EXTERNALCOLLECTOR);
1770 PrfWriteProfileData(fmprof, FM3Str, "ExternalCollector",
1771 &fExternalCollector, sizeof(BOOL));
1772 {
1773 ULONG flWindowAttr = 0;
1774
1775 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
1776 flWindowAttr |= CV_ICON;
1777 if (WinQueryButtonCheckstate(hwnd, CFG5_NAME))
1778 flWindowAttr |= CV_NAME;
1779 if (WinQueryButtonCheckstate(hwnd, CFG5_TEXT))
1780 flWindowAttr |= CV_TEXT;
1781 if (WinQueryButtonCheckstate(hwnd, CFG5_DETAIL))
1782 flWindowAttr |= CV_DETAIL;
1783 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
1784 flWindowAttr |= CV_MINI;
1785 if (WinQueryButtonCheckstate(hwnd, CFG5_SHOWTITLES))
1786 flWindowAttr |= CA_DETAILSVIEWTITLES;
1787 flWindowAttr |= CV_FLOW;
1788 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
1789 &flWindowAttr, sizeof(ULONG));
1790 }
1791 {
1792 DIRCNRDATA dcd;
1793
1794 memset(&dcd, 0, sizeof(dcd));
1795 dcd.detailslongname = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLNAMES);
1796 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLongname",
1797 &dcd.detailslongname, sizeof(BOOL));
1798 dcd.detailssubject = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
1799 PrfWriteProfileData(fmprof, appname, "Collector.DetailsSubject",
1800 &dcd.detailssubject, sizeof(BOOL));
1801 dcd.detailsea = WinQueryButtonCheckstate(hwnd, CFG5_SHOWEAS);
1802 PrfWriteProfileData(fmprof, appname, "Collector.DetailsEA",
1803 &dcd.detailsea, sizeof(BOOL));
1804 dcd.detailssize = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSIZE);
1805 PrfWriteProfileData(fmprof, appname, "Collector.DetailsSize",
1806 &dcd.detailssize, sizeof(BOOL));
1807 dcd.detailsicon = WinQueryButtonCheckstate(hwnd, CFG5_SHOWICON);
1808 PrfWriteProfileData(fmprof, appname, "Collector.DetailsIcon",
1809 &dcd.detailsicon, sizeof(BOOL));
1810 dcd.detailslwdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWDATE);
1811 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLWDate",
1812 &dcd.detailslwdate, sizeof(BOOL));
1813 dcd.detailslwtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWTIME);
1814 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLWTime",
1815 &dcd.detailslwtime, sizeof(BOOL));
1816 dcd.detailsladate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLADATE);
1817 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLADate",
1818 &dcd.detailsladate, sizeof(BOOL));
1819 dcd.detailslatime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLATIME);
1820 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLATime",
1821 &dcd.detailslatime, sizeof(BOOL));
1822 dcd.detailscrdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRDATE);
1823 PrfWriteProfileData(fmprof, appname, "Collector.DetailsCRDate",
1824 &dcd.detailscrdate, sizeof(BOOL));
1825 dcd.detailscrtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRTIME);
1826 PrfWriteProfileData(fmprof, appname, "Collector.DetailsCRTime",
1827 &dcd.detailscrtime, sizeof(BOOL));
1828 dcd.detailsattr = WinQueryButtonCheckstate(hwnd, CFG5_SHOWATTR);
1829 PrfWriteProfileData(fmprof, appname, "Collector.DetailsAttr",
1830 &dcd.detailsattr, sizeof(BOOL));
1831 *mask.prompt = 0;
1832 PrfWriteProfileData(fmprof,
1833 appname, "CollectorFilter", &mask, sizeof(MASK));
1834 }
1835 break;
1836 }
1837 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1838}
1839
1840MRESULT EXPENTRY Cfg8DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1841{
1842 switch (msg) {
1843 case WM_INITDLG:
1844 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1845 break;
1846
1847 case UM_UNDO:
1848 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
1849 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
1850 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
1851 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
1852 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
1853 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
1854 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
1855 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
1856 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1857 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1858 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
1859 if (CollectorsortFlags & SORT_FIRSTEXTENSION)
1860 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
1861 else if (CollectorsortFlags & SORT_LASTEXTENSION)
1862 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
1863 else if (CollectorsortFlags & SORT_SIZE)
1864 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
1865 else if (CollectorsortFlags & SORT_EASIZE)
1866 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
1867 else if (CollectorsortFlags & SORT_LWDATE)
1868 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
1869 else if (CollectorsortFlags & SORT_LADATE)
1870 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
1871 else if (CollectorsortFlags & SORT_CRDATE)
1872 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
1873 else if (CollectorsortFlags & SORT_FILENAME)
1874 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
1875 else
1876 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
1877 if (CollectorsortFlags & SORT_DIRSFIRST)
1878 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, TRUE);
1879 else if (CollectorsortFlags & SORT_DIRSLAST)
1880 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, TRUE);
1881 if (CollectorsortFlags & SORT_REVERSE)
1882 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
1883 return 0;
1884
1885 case WM_CONTROL:
1886 switch (SHORT1FROMMP(mp1)) {
1887 case CFG6_SORTDIRSFIRST:
1888 case CFG6_SORTDIRSLAST:
1889 {
1890 BOOL temp;
1891
1892 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
1893 if (temp) {
1894 switch (SHORT1FROMMP(mp1)) {
1895 case CFG6_SORTDIRSFIRST:
1896 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
1897 break;
1898 case CFG6_SORTDIRSLAST:
1899 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
1900 break;
1901 }
1902 }
1903 }
1904 break;
1905 }
1906 return 0;
1907
1908 case WM_COMMAND:
1909 switch (SHORT1FROMMP(mp1)) {
1910 case IDM_UNDO:
1911 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1912 break;
1913
1914 case DID_CANCEL:
1915 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1916
1917 case DID_OK:
1918 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1919 break;
1920
1921 case IDM_HELP:
1922 if (hwndHelp)
1923 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1924 MPFROM2SHORT(HELP_CFG8, 0), MPFROMSHORT(HM_RESOURCEID));
1925 break;
1926 }
1927 return 0;
1928
1929 case WM_CLOSE:
1930 CollectorsortFlags = 0;
1931 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
1932 CollectorsortFlags |= SORT_FILENAME;
1933 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
1934 CollectorsortFlags |= SORT_SIZE;
1935 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
1936 CollectorsortFlags |= SORT_EASIZE;
1937 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
1938 CollectorsortFlags |= SORT_FIRSTEXTENSION;
1939 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
1940 CollectorsortFlags |= SORT_LASTEXTENSION;
1941 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
1942 CollectorsortFlags |= SORT_LWDATE;
1943 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
1944 CollectorsortFlags |= SORT_LADATE;
1945 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
1946 CollectorsortFlags |= SORT_CRDATE;
1947 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
1948 CollectorsortFlags |= SORT_DIRSFIRST;
1949 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
1950 CollectorsortFlags |= SORT_DIRSLAST;
1951 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
1952 CollectorsortFlags |= SORT_REVERSE;
1953 PrfWriteProfileData(fmprof,
1954 appname,
1955 "CollectorSort", &CollectorsortFlags, sizeof(INT));
1956 break;
1957 }
1958 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1959}
1960
1961MRESULT EXPENTRY Cfg9DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
1962{
1963 switch (msg) {
1964 case WM_INITDLG:
1965 break;
1966
1967 case WM_COMMAND:
1968 switch (SHORT1FROMMP(mp1)) {
1969 case IDM_HELP:
1970 if (hwndHelp)
1971 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1972 MPFROM2SHORT(HELP_CFG9, 0), MPFROMSHORT(HM_RESOURCEID));
1973 return 0;
1974 case CFG9_MAXIMUMUI:
1975 if (hwndMain) {
1976 if (MenuInvisible)
1977 WinSendMsg(hwndMain, WM_COMMAND,
1978 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
1979 if (!fAutoView)
1980 WinSendMsg(hwndMain, WM_COMMAND,
1981 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
1982 if (!fDrivebar)
1983 WinSendMsg(hwndMain, WM_COMMAND,
1984 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
1985 if (!fToolbar)
1986 WinSendMsg(hwndMain, WM_COMMAND,
1987 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
1988 if (!fMoreButtons)
1989 WinSendMsg(hwndMain, WM_COMMAND,
1990 MPFROM2SHORT(IDM_MOREBUTTONS, 0), MPVOID);
1991 if (!fUserComboBox)
1992 WinSendMsg(hwndMain, WM_COMMAND,
1993 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
1994 }
1995 return 0;
1996 case CFG9_MINIMUMUI:
1997 if (hwndMain) {
1998 if (!MenuInvisible)
1999 WinSendMsg(hwndMain, WM_COMMAND,
2000 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
2001 if (fAutoView)
2002 WinSendMsg(hwndMain, WM_COMMAND,
2003 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2004 if (fToolbar)
2005 WinSendMsg(hwndMain, WM_COMMAND,
2006 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
2007 if (fMoreButtons)
2008 WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_MOREBUTTONS, 0),
2009 MPVOID);
2010 if (fUserComboBox)
2011 WinSendMsg(hwndMain, WM_COMMAND,
2012 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
2013 saymsg(MB_ENTER | MB_ICONASTERISK,
2014 hwnd,
2015 GetPString(IDS_DONTFORGETTEXT),
2016 GetPString(IDS_UNHIDEMENUWARNTEXT));
2017 }
2018 return 0;
2019 case CFG9_MAXINFOPRETTY:
2020 fLoadSubject = TRUE;
2021 fLoadLongnames = TRUE;
2022 fNoIconsFiles = FALSE;
2023 fNoIconsDirs = FALSE;
2024 fForceUpper = FALSE;
2025 fForceLower = FALSE;
2026 fArcStuffVisible = TRUE;
2027 fSplitStatus = TRUE;
2028 fDragndropDlg = TRUE;
2029 {
2030 ULONG flWindowAttr;
2031
2032 flWindowAttr = CV_DETAIL | CV_FLOW | CA_DETAILSVIEWTITLES;
2033 PrfWriteProfileData(fmprof,
2034 appname,
2035 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
2036 PrfWriteProfileData(fmprof,
2037 appname,
2038 "CollectorflWindowAttr",
2039 &flWindowAttr, sizeof(ULONG));
2040 PrfWriteProfileData(fmprof, appname, "DirCnr.Fontnamesize", NULL, 0);
2041 PrfWriteProfileData(fmprof,
2042 appname, "Collector.Fontnamesize", NULL, 0);
2043 }
2044 detailslongname = TRUE;
2045 detailssubject = TRUE;
2046 detailsea = TRUE;
2047 detailssize = TRUE;
2048 detailsicon = TRUE;
2049 detailslwdate = TRUE;
2050 detailslwtime = TRUE;
2051 detailsladate = TRUE;
2052 detailslatime = TRUE;
2053 detailscrdate = TRUE;
2054 detailscrtime = TRUE;
2055 detailsattr = TRUE;
2056 if (hwndTree) {
2057
2058 CNRINFO cnri;
2059 ULONG flWindowAttr = CV_TREE | CV_ICON | CV_FLOW | CA_TREELINE;
2060
2061 memset(&cnri, 0, sizeof(cnri));
2062 cnri.cb = sizeof(cnri);
2063 WinSendMsg(WinWindowFromID
2064 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2065 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2066 cnri.flWindowAttr = flWindowAttr;
2067 WinSendMsg(WinWindowFromID
2068 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2069 CM_SETCNRINFO, MPFROMP(&cnri),
2070 MPFROMLONG(CMA_FLWINDOWATTR));
2071 }
2072 break;
2073
2074 case CFG9_MAXINFOPLAIN:
2075 fLoadSubject = TRUE;
2076 fLoadLongnames = TRUE;
2077 fNoIconsFiles = TRUE;
2078 fNoIconsDirs = TRUE;
2079 fForceUpper = FALSE;
2080 fForceLower = FALSE;
2081 fArcStuffVisible = TRUE;
2082 fSplitStatus = TRUE;
2083 fDragndropDlg = TRUE;
2084 {
2085 ULONG flWindowAttr;
2086
2087 flWindowAttr = CV_DETAIL | CV_FLOW | CV_MINI;
2088 PrfWriteProfileData(fmprof,
2089 appname,
2090 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
2091 PrfWriteProfileData(fmprof,
2092 appname,
2093 "CollectorflWindowAttr",
2094 &flWindowAttr, sizeof(ULONG));
2095 PrfWriteProfileData(fmprof,
2096 appname,
2097 "DirCnr.Fontnamesize",
2098 GetPString(IDS_8HELVTEXT),
2099 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2100 PrfWriteProfileData(fmprof,
2101 appname,
2102 "Collector.Fontnamesize",
2103 GetPString(IDS_8HELVTEXT),
2104 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2105 }
2106 detailslongname = TRUE;
2107 detailssubject = TRUE;
2108 detailsea = TRUE;
2109 detailssize = TRUE;
2110 detailsicon = TRUE;
2111 detailslwdate = TRUE;
2112 detailslwtime = TRUE;
2113 detailsladate = TRUE;
2114 detailslatime = TRUE;
2115 detailscrdate = TRUE;
2116 detailscrtime = TRUE;
2117 detailsattr = TRUE;
2118 if (hwndTree) {
2119
2120 CNRINFO cnri;
2121 ULONG flWindowAttr = CV_TREE | CV_MINI | CV_TEXT |
2122 CV_FLOW | CA_TREELINE;
2123
2124 memset(&cnri, 0, sizeof(cnri));
2125 cnri.cb = sizeof(cnri);
2126 WinSendMsg(WinWindowFromID
2127 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2128 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2129 cnri.flWindowAttr = flWindowAttr;
2130 WinSendMsg(WinWindowFromID
2131 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2132 CM_SETCNRINFO, MPFROMP(&cnri),
2133 MPFROMLONG(CMA_FLWINDOWATTR));
2134 }
2135 break;
2136 case CFG9_MAXFILENAMES:
2137 if (hwndMain && fAutoView)
2138 WinSendMsg(hwndMain, WM_COMMAND,
2139 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2140 fForceUpper = FALSE;
2141 fForceLower = TRUE;
2142 fExternalViewer = TRUE;
2143 fExternalArcboxes = TRUE;
2144 fExternalCollector = TRUE;
2145 fExternalINIs = TRUE;
2146 fLoadSubject = FALSE;
2147 fLoadLongnames = FALSE;
2148 fNoIconsFiles = TRUE;
2149 fNoIconsDirs = TRUE;
2150 {
2151 ULONG flWindowAttr;
2152
2153 flWindowAttr = CV_TEXT | CV_FLOW;
2154 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2155 &flWindowAttr, sizeof(ULONG));
2156 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2157 &flWindowAttr, sizeof(ULONG));
2158 PrfWriteProfileData(fmprof, appname, "DirCnr.Fontnamesize",
2159 GetPString(IDS_8HELVTEXT),
2160 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2161 PrfWriteProfileData(fmprof, appname, "Collector.Fontnamesize",
2162 GetPString(IDS_8HELVTEXT),
2163 strlen(GetPString(IDS_8HELVTEXT)) + 1);
2164 }
2165 if (hwndTree) {
2166
2167 CNRINFO cnri;
2168 ULONG flWindowAttr = CV_TREE | CV_TEXT | CV_FLOW | CA_TREELINE;
2169
2170 memset(&cnri, 0, sizeof(cnri));
2171 cnri.cb = sizeof(cnri);
2172 WinSendMsg(WinWindowFromID
2173 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2174 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2175 cnri.flWindowAttr = flWindowAttr;
2176 WinSendMsg(WinWindowFromID
2177 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2178 CM_SETCNRINFO, MPFROMP(&cnri),
2179 MPFROMLONG(CMA_FLWINDOWATTR));
2180 }
2181 break;
2182 case CFG9_MAXSPEED:
2183 fLoadSubject = FALSE;
2184 fLoadLongnames = FALSE;
2185 fVerify = FALSE;
2186 DosSetVerify(FALSE);
2187 FilesToGet = 512;
2188 fQuickArcFind = TRUE;
2189 fMinOnOpen = TRUE;
2190 fRealIdle = FALSE;
2191 fNoIconsFiles = TRUE;
2192 fNoIconsDirs = TRUE;
2193 fSyncUpdates = FALSE;
2194 fArcStuffVisible = FALSE;
2195 fForceUpper = FALSE;
2196 fForceLower = FALSE;
2197 detailslongname = FALSE;
2198 detailssubject = FALSE;
2199 break;
2200
2201 case CFG9_HECTOR:
2202 fSwitchTree = TRUE;
2203 fSwitchTreeOnFocus = FALSE;
2204 fSwitchTreeExpand = TRUE;
2205 fCollapseFirst = TRUE;
2206 fSelectedAlways = FALSE;
2207 fTileBackwards = FALSE;
2208 fExternalViewer = FALSE;
2209 fExternalArcboxes = TRUE;
2210 fExternalCollector = FALSE;
2211 fExternalINIs = TRUE;
2212 fCopyDefault = FALSE;
2213 fFollowTree = FALSE;
2214 fLoadSubject = FALSE;
2215 fLoadLongnames = FALSE;
2216 fDontMoveMouse = FALSE;
2217 fUnHilite = TRUE;
2218 fUserListSwitches = TRUE;
2219 fDCOpens = FALSE;
2220 fLinkSetsIcon = FALSE;
2221 fConfirmDelete = TRUE;
2222 fSyncUpdates = FALSE;
2223 fRealIdle = FALSE;
2224 fNoIconsFiles = FALSE;
2225 fNoIconsDirs = TRUE;
2226 fFolderAfterExtract = FALSE;
2227 fVerify = TRUE;
2228 DosSetVerify(TRUE);
2229 fForceUpper = FALSE;
2230 fForceLower = TRUE;
2231 fArcStuffVisible = FALSE;
2232 fVTreeOpensWPS = FALSE;
2233 fRemoteBug = FALSE;
2234 fDragndropDlg = TRUE;
2235 fMinOnOpen = FALSE;
2236 fQuickArcFind = TRUE;
2237 fNoRemovableScan = TRUE;
2238 FilesToGet = 128;
2239 fFreeTree = FALSE;
2240 fSplitStatus = TRUE;
2241 fAutoTile = TRUE;
2242 fSaveState = TRUE;
2243 fStartMinimized = FALSE;
2244 fStartMaximized = FALSE;
2245 fDataMin = FALSE;
2246 ulCnrType = CCS_EXTENDSEL | CCS_MULTIPLESEL;
2247 fNoTreeGap = TRUE;
2248 {
2249 ULONG flWindowAttr;
2250
2251 flWindowAttr = (CV_NAME | CV_MINI | CV_FLOW | CA_DETAILSVIEWTITLES);
2252 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2253 &flWindowAttr, sizeof(ULONG));
2254 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2255 &flWindowAttr, sizeof(ULONG));
2256 }
2257 detailslongname = FALSE;
2258 detailssubject = FALSE;
2259 detailsea = TRUE;
2260 detailssize = TRUE;
2261 detailsicon = TRUE;
2262 detailslwdate = TRUE;
2263 detailslwtime = TRUE;
2264 detailsladate = FALSE;
2265 detailslatime = FALSE;
2266 detailscrdate = FALSE;
2267 detailscrtime = FALSE;
2268 detailsattr = TRUE;
2269 sortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2270 CollectorsortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2271 if (hwndMain) {
2272
2273 SWP swp;
2274
2275 if (WinQueryWindowPos(hwndMain, &swp)) {
2276 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2277 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
2278 }
2279 }
2280 if (hwndMain) {
2281 if (MenuInvisible)
2282 WinSendMsg(hwndMain, WM_COMMAND,
2283 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
2284 if (fAutoView)
2285 WinSendMsg(hwndMain, WM_COMMAND,
2286 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2287 if (fToolbar)
2288 WinSendMsg(hwndMain, WM_COMMAND,
2289 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
2290 if (!fDrivebar)
2291 WinSendMsg(hwndMain, WM_COMMAND,
2292 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
2293 if (!fMoreButtons)
2294 WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_MOREBUTTONS, 0),
2295 MPVOID);
2296 if (!fUserComboBox)
2297 WinSendMsg(hwndMain, WM_COMMAND,
2298 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
2299 }
2300 if (hwndTree) {
2301
2302 CNRINFO cnri;
2303 ULONG flWindowAttr = (CV_TREE | CV_TEXT | CV_MINI |
2304 CV_FLOW | CA_TREELINE);
2305
2306 memset(&cnri, 0, sizeof(cnri));
2307 cnri.cb = sizeof(cnri);
2308 WinSendMsg(WinWindowFromID
2309 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2310 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2311 cnri.flWindowAttr = flWindowAttr;
2312 WinSendMsg(WinWindowFromID
2313 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2314 CM_SETCNRINFO, MPFROMP(&cnri),
2315 MPFROMLONG(CMA_FLWINDOWATTR));
2316 }
2317 break;
2318
2319 case CFG9_DEFAULT:
2320 fSwitchTree = FALSE;
2321 fSwitchTreeOnFocus = FALSE;
2322 fSwitchTreeExpand = FALSE;
2323 fCollapseFirst = FALSE;
2324 fSelectedAlways = FALSE;
2325 fTileBackwards = FALSE;
2326 fExternalViewer = FALSE;
2327 fExternalArcboxes = FALSE;
2328 fExternalCollector = FALSE;
2329 fExternalINIs = FALSE;
2330 fCopyDefault = FALSE;
2331 fFollowTree = FALSE;
2332 fLoadSubject = TRUE;
2333 fLoadLongnames = TRUE;
2334 fDontMoveMouse = FALSE;
2335 fUnHilite = TRUE;
2336 fUserListSwitches = FALSE;
2337 fDCOpens = FALSE;
2338 fLinkSetsIcon = FALSE;
2339 fConfirmDelete = TRUE;
2340 fSyncUpdates = FALSE;
2341 fRealIdle = FALSE;
2342 fNoIconsFiles = FALSE;
2343 fNoIconsDirs = FALSE;
2344 fFolderAfterExtract = FALSE;
2345 fVerify = TRUE;
2346 fNoSearch = TRUE;
2347 DosSetVerify(TRUE);
2348 fForceUpper = FALSE;
2349 fForceLower = TRUE;
2350 fArcStuffVisible = TRUE;
2351 fVTreeOpensWPS = FALSE;
2352 fRemoteBug = TRUE;
2353 fDragndropDlg = TRUE;
2354 fMinOnOpen = FALSE;
2355 fQuickArcFind = TRUE;
2356 fNoRemovableScan = FALSE;
2357 FilesToGet = 128;
2358 fFreeTree = FALSE;
2359 fSplitStatus = TRUE;
2360 fAutoTile = TRUE;
2361 fSaveState = TRUE;
2362 fStartMinimized = FALSE;
2363 fStartMaximized = FALSE;
2364 fDataMin = TRUE;
2365 ulCnrType = CCS_EXTENDSEL;
2366 fNoTreeGap = FALSE;
2367 {
2368 ULONG flWindowAttr;
2369
2370 flWindowAttr = (CV_NAME | CV_MINI | CV_FLOW | CA_DETAILSVIEWTITLES);
2371 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2372 &flWindowAttr, sizeof(ULONG));
2373 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2374 &flWindowAttr, sizeof(ULONG));
2375 }
2376 detailslongname = FALSE;
2377 detailssubject = FALSE;
2378 detailsea = TRUE;
2379 detailssize = TRUE;
2380 detailsicon = TRUE;
2381 detailslwdate = TRUE;
2382 detailslwtime = TRUE;
2383 detailsladate = FALSE;
2384 detailslatime = FALSE;
2385 detailscrdate = FALSE;
2386 detailscrtime = FALSE;
2387 detailsattr = TRUE;
2388 sortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2389 CollectorsortFlags = SORT_FILENAME | SORT_DIRSFIRST;
2390 if (hwndMain) {
2391
2392 SWP swp;
2393
2394 if (WinQueryWindowPos(hwndMain, &swp)) {
2395 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2396 swp.cx / 5,
2397 swp.cy -
2398 (WinQuerySysValue(HWND_DESKTOP, SV_CYICON) * 2),
2399 SWP_MOVE | SWP_SIZE);
2400 }
2401 }
2402 if (hwndTree) {
2403
2404 CNRINFO cnri;
2405 ULONG flWindowAttr = (CV_TREE | CV_TEXT |
2406 CV_FLOW | CA_TREELINE | CV_MINI);
2407
2408 memset(&cnri, 0, sizeof(cnri));
2409 cnri.cb = sizeof(cnri);
2410 WinSendMsg(WinWindowFromID
2411 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2412 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2413 cnri.flWindowAttr = flWindowAttr;
2414 WinSendMsg(WinWindowFromID
2415 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2416 CM_SETCNRINFO, MPFROMP(&cnri),
2417 MPFROMLONG(CMA_FLWINDOWATTR));
2418 }
2419 break;
2420
2421 case CFG9_WINDOZETHINK:
2422 fTileBackwards = FALSE;
2423 ulCnrType = CCS_MULTIPLESEL;
2424 fFollowTree = TRUE;
2425 fTopDir = FALSE;
2426 fSwitchTree = TRUE;
2427 fSwitchTreeOnFocus = FALSE;
2428 fSwitchTreeExpand = TRUE;
2429 fCollapseFirst = TRUE;
2430 fDCOpens = FALSE;
2431 {
2432 ULONG flWindowAttr;
2433
2434 flWindowAttr = CV_NAME | CV_FLOW | CA_DETAILSVIEWTITLES;
2435 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2436 &flWindowAttr, sizeof(ULONG));
2437 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2438 &flWindowAttr, sizeof(ULONG));
2439 }
2440 fLinkSetsIcon = FALSE;
2441 fFreeTree = FALSE;
2442 fNoTreeGap = TRUE;
2443 fExternalArcboxes = TRUE;
2444 fExternalViewer = TRUE;
2445 fExternalCollector = TRUE;
2446 fExternalINIs = TRUE;
2447 fUserListSwitches = TRUE;
2448 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), UM_UNDO, MPVOID,
2449 MPVOID);
2450 if (hwndTree) {
2451
2452 CNRINFO cnri;
2453 ULONG flWindowAttr = CV_TREE | CV_MINI | CV_ICON |
2454 CV_FLOW | CA_TREELINE;
2455
2456 memset(&cnri, 0, sizeof(cnri));
2457 cnri.cb = sizeof(cnri);
2458 WinSendMsg(WinWindowFromID
2459 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2460 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2461 cnri.flWindowAttr = flWindowAttr;
2462 WinSendMsg(WinWindowFromID
2463 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2464 CM_SETCNRINFO, MPFROMP(&cnri),
2465 MPFROMLONG(CMA_FLWINDOWATTR));
2466 }
2467 if (hwndMain) {
2468 if (fAutoView)
2469 WinSendMsg(hwndMain, WM_COMMAND,
2470 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2471 if (!fDrivebar)
2472 WinSendMsg(hwndMain, WM_COMMAND,
2473 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
2474 {
2475 SWP swp;
2476
2477 if (WinQueryWindowPos(hwndMain, &swp)) {
2478 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2479 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
2480 }
2481 }
2482 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
2483 PostMsg(MainObjectHwnd, UM_SETDIR, MPFROMLONG(1L), MPVOID);
2484 }
2485 return 0;
2486
2487 case CFG9_DOSTHINK:
2488 fTileBackwards = TRUE;
2489 ulCnrType = CCS_MULTIPLESEL;
2490 fSwitchTree = TRUE;
2491 fSwitchTreeOnFocus = FALSE;
2492 fSwitchTreeExpand = TRUE;
2493 fCollapseFirst = TRUE;
2494 fFollowTree = TRUE;
2495 fTopDir = FALSE;
2496 if (hwndMain) {
2497 if (!fTextTools)
2498 WinSendMsg(hwndMain, WM_COMMAND,
2499 MPFROM2SHORT(IDM_TEXTTOOLS, 0), MPVOID);
2500 }
2501 {
2502 ULONG flWindowAttr;
2503
2504 flWindowAttr = CV_TEXT | CV_FLOW | CA_DETAILSVIEWTITLES;
2505 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
2506 &flWindowAttr, sizeof(ULONG));
2507 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
2508 &flWindowAttr, sizeof(ULONG));
2509 }
2510 if (hwndTree) {
2511
2512 CNRINFO cnri;
2513 ULONG flWindowAttr = CV_TREE | CV_TEXT | CV_FLOW | CA_TREELINE;
2514
2515 memset(&cnri, 0, sizeof(cnri));
2516 cnri.cb = sizeof(cnri);
2517 WinSendMsg(WinWindowFromID
2518 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2519 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2520 cnri.flWindowAttr = flWindowAttr;
2521 WinSendMsg(WinWindowFromID
2522 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
2523 CM_SETCNRINFO, MPFROMP(&cnri),
2524 MPFROMLONG(CMA_FLWINDOWATTR));
2525 }
2526 /* intentional fallthru */
2527 case CFG9_1X:
2528 if (SHORT1FROMMP(mp1) == CFG9_1X) {
2529 fTileBackwards = FALSE;
2530 ulCnrType = CCS_MULTIPLESEL | CCS_EXTENDSEL;
2531 fSwitchTree = FALSE;
2532 fSwitchTreeOnFocus = FALSE;
2533 fSwitchTreeExpand = FALSE;
2534 fCollapseFirst = FALSE;
2535 fFollowTree = FALSE;
2536 fNoSearch = TRUE;
2537 }
2538 fAutoTile = TRUE;
2539 fSaveState = TRUE;
2540 fDCOpens = FALSE;
2541 fLinkSetsIcon = FALSE;
2542 fFreeTree = FALSE;
2543 fNoTreeGap = TRUE;
2544 fExternalArcboxes = TRUE;
2545 fExternalViewer = TRUE;
2546 fExternalCollector = TRUE;
2547 fExternalINIs = TRUE;
2548 fUserListSwitches = TRUE;
2549 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), UM_UNDO, MPVOID,
2550 MPVOID);
2551 if (hwndTree) {
2552
2553 CNRINFO cnri;
2554 ULONG flWindowAttr = CV_TREE | CV_ICON | CV_FLOW | CA_TREELINE;
2555
2556 memset(&cnri, 0, sizeof(cnri));
2557 cnri.cb = sizeof(cnri);
2558 WinSendMsg(WinWindowFromID(WinWindowFromID(hwndTree, FID_CLIENT),
2559 TREE_CNR),
2560 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
2561 cnri.flWindowAttr = flWindowAttr;
2562 WinSendMsg(WinWindowFromID(WinWindowFromID(hwndTree, FID_CLIENT),
2563 TREE_CNR),
2564 CM_SETCNRINFO,
2565 MPFROMP(&cnri), MPFROMLONG(CMA_FLWINDOWATTR));
2566 }
2567 if (hwndMain) {
2568 if (fAutoView)
2569 WinSendMsg(hwndMain, WM_COMMAND,
2570 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2571 if (fUserComboBox)
2572 WinSendMsg(hwndMain, WM_COMMAND,
2573 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
2574 {
2575 SWP swp;
2576
2577 if (WinQueryWindowPos(hwndMain, &swp)) {
2578 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
2579 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
2580 }
2581 }
2582 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
2583 PostMsg(MainObjectHwnd, UM_SETDIR, MPVOID, MPVOID);
2584 }
2585 return 0;
2586
2587 case DID_CANCEL:
2588 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2589
2590 case DID_OK:
2591 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2592 return 0;
2593
2594 default:
2595 return 0;
2596 }
2597 PrfWriteProfileData(fmprof, appname, "DetailsLongname",
2598 &detailslongname, sizeof(BOOL));
2599 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLongname",
2600 &detailslongname, sizeof(BOOL));
2601 PrfWriteProfileData(fmprof, appname, "DetailsSubject",
2602 &detailssubject, sizeof(BOOL));
2603 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSubject",
2604 &detailssubject, sizeof(BOOL));
2605 PrfWriteProfileData(fmprof, appname, "DetailsEA",
2606 &detailsea, sizeof(BOOL));
2607 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsEA",
2608 &detailsea, sizeof(BOOL));
2609 PrfWriteProfileData(fmprof, appname, "DetailsSize",
2610 &detailssize, sizeof(BOOL));
2611 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSize",
2612 &detailssize, sizeof(BOOL));
2613 PrfWriteProfileData(fmprof, appname, "DetailsIcon",
2614 &detailsicon, sizeof(BOOL));
2615 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsIcon",
2616 &detailsicon, sizeof(BOOL));
2617 PrfWriteProfileData(fmprof, appname, "DetailsLWDate",
2618 &detailslwdate, sizeof(BOOL));
2619 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWDate",
2620 &detailslwdate, sizeof(BOOL));
2621 PrfWriteProfileData(fmprof, appname, "DetailsLWTime",
2622 &detailslwtime, sizeof(BOOL));
2623 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWTime",
2624 &detailslwtime, sizeof(BOOL));
2625 PrfWriteProfileData(fmprof, appname, "DetailsLADate",
2626 &detailsladate, sizeof(BOOL));
2627 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLADate",
2628 &detailsladate, sizeof(BOOL));
2629 PrfWriteProfileData(fmprof, appname, "DetailsLATime",
2630 &detailslatime, sizeof(BOOL));
2631 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLATime",
2632 &detailslatime, sizeof(BOOL));
2633 PrfWriteProfileData(fmprof, appname, "DetailsCRDate",
2634 &detailscrdate, sizeof(BOOL));
2635 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRDate",
2636 &detailscrdate, sizeof(BOOL));
2637 PrfWriteProfileData(fmprof, appname, "DetailsCRTime",
2638 &detailscrtime, sizeof(BOOL));
2639 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRTime",
2640 &detailscrtime, sizeof(BOOL));
2641 PrfWriteProfileData(fmprof, appname, "DetailsAttr",
2642 &detailsattr, sizeof(BOOL));
2643 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsAttr",
2644 &detailsattr, sizeof(BOOL));
2645 if (hwndMain) {
2646 if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT))) {
2647 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
2648 PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
2649 }
2650 }
2651 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER),
2652 UM_UNDO, MPVOID, MPVOID);
2653 return 0;
2654
2655 case WM_CLOSE:
2656 break;
2657 }
2658 return WinDefDlgProc(hwnd, msg, mp1, mp2);
2659}
2660
2661NOTEPAGES np[] = { CFGD_FRAME,
2662 IDS_NOTEDIRCNRS1TEXT,
2663 CfgDDlgProc,
2664 0,
2665 0,
2666 0,
2667 CFG5_FRAME,
2668 IDS_NOTEDIRVIEW1TEXT,
2669 Cfg5DlgProc,
2670 0,
2671 0,
2672 0,
2673 CFG6_FRAME,
2674 IDS_NOTEDIRSORT1TEXT,
2675 Cfg6DlgProc,
2676 0,
2677 0,
2678 0,
2679 CFG5_FRAME,
2680 IDS_NOTECOLVIEW1TEXT,
2681 Cfg7DlgProc,
2682 0,
2683 0,
2684 0,
2685 CFG6_FRAME,
2686 IDS_NOTECOLSORT1TEXT,
2687 Cfg8DlgProc,
2688 0,
2689 0,
2690 0,
2691 CFGA_FRAME,
2692 IDS_NOTEARCHIVER1TEXT,
2693 CfgADlgProc,
2694 0,
2695 0,
2696 0,
2697 CFGT_FRAME,
2698 IDS_NOTETREE1TEXT,
2699 CfgTDlgProc,
2700 0,
2701 0,
2702 0,
2703 CFGTS_FRAME,
2704 IDS_NOTETREESORT1TEXT,
2705 CfgTSDlgProc,
2706 0,
2707 0,
2708 0,
2709 CFGV_FRAME,
2710 IDS_NOTEVIEWERS1TEXT,
2711 CfgVDlgProc,
2712 0,
2713 0,
2714 0,
2715 CFGC_FRAME,
2716 IDS_NOTECOMPARE1TEXT,
2717 CfgCDlgProc,
2718 0,
2719 0,
2720 0,
2721 CFGM_FRAME,
2722 IDS_NOTEMONOLITHIC1TEXT,
2723 CfgMDlgProc,
2724 0,
2725 0,
2726 0,
2727 CFGG_FRAME,
2728 IDS_NOTEGENERAL1TEXT,
2729 CfgGDlgProc,
2730 0,
2731 0,
2732 0,
2733 CFGS_FRAME,
2734 IDS_NOTESCANNING1TEXT,
2735 CfgSDlgProc,
2736 0,
2737 0,
2738 0,
2739 CFGB_FRAME,
2740 IDS_NOTEBUBBLE1TEXT,
2741 CfgBDlgProc,
2742 0,
2743 0,
2744 0,
2745 CFG9_FRAME,
2746 IDS_NOTEQUICK1TEXT,
2747 Cfg9DlgProc,
2748 0,
2749 0,
2750 0,
2751 0,
2752 0,
2753 NULL,
2754 0,
2755 0,
2756 0
2757};
2758
2759MRESULT EXPENTRY CfgDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
2760{
2761 HWND hwndTemp;
2762 USHORT attrib = BKA_FIRST;
2763 INT x;
2764 ULONG pageID;
2765
2766 switch (msg) {
2767 case WM_INITDLG:
2768 hwndNotebook = hwnd;
2769 if (mp2) {
2770 if (!strcmp((CHAR *) mp2, "FM/4")) {
2771 x = 0;
2772 while (np[x].frameid && np[x].frameid != CFG9_FRAME)
2773 x++;
2774 np[x].frameid = 0;
2775 }
2776 }
2777 PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID);
2778 WinSendDlgItemMsg(hwnd,
2779 CFG_NOTEBOOK,
2780 BKM_SETDIMENSIONS,
2781 MPFROM2SHORT(82, 24), MPFROMLONG(BKA_MAJORTAB));
2782 WinSendDlgItemMsg(hwnd,
2783 CFG_NOTEBOOK,
2784 BKM_SETDIMENSIONS,
2785 MPFROM2SHORT(20, 20), MPFROMLONG(BKA_PAGEBUTTON));
2786 WinSendDlgItemMsg(hwnd,
2787 CFG_NOTEBOOK,
2788 BKM_SETDIMENSIONS,
2789 MPFROM2SHORT(0, 0), MPFROMLONG(BKA_MINORTAB));
2790 for (x = 0; np[x].frameid; x++) {
2791 hwndTemp = WinLoadDlg(HWND_DESKTOP,
2792 HWND_DESKTOP,
2793 np[x].proc, FM3ModHandle, np[x].frameid, MPVOID);
2794 if (hwndTemp) {
2795 WinSetWindowULong(hwndTemp, QWL_USER, (ULONG) hwnd);
2796 np[x].hwnd = hwndTemp;
2797 np[x].pageID = (ULONG) WinSendDlgItemMsg(hwnd,
2798 CFG_NOTEBOOK,
2799 BKM_INSERTPAGE,
2800 MPFROMLONG(BKA_FIRST),
2801 MPFROM2SHORT(BKA_AUTOPAGESIZE
2802 |
2803 BKA_STATUSTEXTON
2804 | BKA_MAJOR,
2805 attrib));
2806 attrib = BKA_LAST;
2807 WinSendDlgItemMsg(hwnd,
2808 CFG_NOTEBOOK,
2809 BKM_SETPAGEWINDOWHWND,
2810 MPFROMLONG(np[x].pageID), MPFROMLONG(np[x].hwnd));
2811 WinSendDlgItemMsg(hwnd,
2812 CFG_NOTEBOOK,
2813 BKM_SETTABTEXT,
2814 MPFROMLONG(np[x].pageID),
2815 MPFROMP(GetPString(np[x].title)));
2816 WinSendDlgItemMsg(hwnd,
2817 CFG_NOTEBOOK,
2818 BKM_SETSTATUSLINETEXT,
2819 MPFROMLONG(np[x].pageID),
2820 MPFROMP(GetPString(np[x].title + 1)));
2821 }
2822 }
2823 /* see if we've been asked to display quick cfg page */
2824 if (!mp2 ||
2825 strcmp((CHAR *) mp2, "First Time") ||
2826 !x || !np[x - 1].hwnd || !np[x - 1].pageID) {
2827 PostMsg(WinWindowFromID(hwnd, CFG_NOTEBOOK),
2828 BKM_TURNTOPAGE, MPFROMLONG(np[0].pageID), MPVOID);
2829 }
2830 else {
2831 PostMsg(MainObjectHwnd, UM_SETDIR, MPFROMLONG(1L), MPVOID);
2832 PostMsg(WinWindowFromID(hwnd, CFG_NOTEBOOK),
2833 BKM_TURNTOPAGE, MPFROMLONG(np[x - 1].pageID), MPVOID);
2834 PostMsg(hwnd, UM_FOCUSME, MPFROMLONG(np[x - 1].hwnd), MPVOID);
2835 PostMsg(np[x - 1].hwnd, WM_COMMAND, MPFROM2SHORT(IDM_HELP, 0), MPVOID);
2836 }
2837 break;
2838
2839 case UM_FOCUSME:
2840 if (mp1)
2841 WinSetActiveWindow(HWND_DESKTOP, (HWND) mp1);
2842 break;
2843
2844 case WM_CONTROL:
2845 switch (SHORT1FROMMP(mp1)) {
2846 case CFG_NOTEBOOK:
2847 switch (SHORT2FROMMP(mp1)) {
2848 case BKN_PAGESELECTED:
2849 if (mp2) {
2850
2851 PAGESELECTNOTIFY *psn = mp2;
2852
2853 WinSendDlgItemMsg(hwnd,
2854 CFG_NOTEBOOK,
2855 BKM_QUERYPAGEWINDOWHWND,
2856 MPFROMLONG(psn->ulPageIdNew), MPVOID);
2857 }
2858 break;
2859 }
2860 break;
2861 }
2862 return 0;
2863
2864 case UM_SETUP:
2865 WinSetActiveWindow(HWND_DESKTOP, WinQueryWindow(hwnd, QW_OWNER));
2866 WinSetActiveWindow(HWND_DESKTOP, hwnd);
2867 return 0;
2868
2869 case WM_COMMAND:
2870 switch (SHORT1FROMMP(mp1)) {
2871 case DID_OK:
2872 WinDismissDlg(hwnd, 1);
2873 break;
2874
2875 case DID_CANCEL:
2876 // Tell current page to undo itself in case changed and still alive
2877 pageID = (ULONG) WinSendDlgItemMsg(hwnd,
2878 CFG_NOTEBOOK,
2879 BKM_QUERYPAGEID,
2880 MPFROMLONG(0),
2881 MPFROM2SHORT(BKA_TOP, 0));
2882 hwndTemp = (HWND) WinSendDlgItemMsg(hwnd,
2883 CFG_NOTEBOOK,
2884 BKM_QUERYPAGEWINDOWHWND,
2885 MPFROMLONG(pageID), MPVOID);
2886 if (hwndTemp)
2887 WinSendMsg(hwndTemp, UM_UNDO, MPVOID, MPVOID);
2888
2889 WinDismissDlg(hwnd, 0);
2890 break;
2891
2892 case IDM_HELP: /* relay message to appropriate page's window */
2893 pageID = (ULONG) WinSendDlgItemMsg(hwnd,
2894 CFG_NOTEBOOK,
2895 BKM_QUERYPAGEID,
2896 MPFROMLONG(0),
2897 MPFROM2SHORT(BKA_TOP, 0));
2898 hwndTemp = (HWND) WinSendDlgItemMsg(hwnd,
2899 CFG_NOTEBOOK,
2900 BKM_QUERYPAGEWINDOWHWND,
2901 MPFROMLONG(pageID), MPVOID);
2902 if (hwndTemp)
2903 PostMsg(hwndTemp, WM_COMMAND, MPFROM2SHORT(IDM_HELP, 0), MPVOID);
2904 break;
2905 }
2906 return 0;
2907
2908 case UM_UNDO:
2909 for (x = 0; np[x].frameid; x++) {
2910 if (np[x].hwnd)
2911 WinSendMsg(np[x].hwnd, UM_UNDO, MPVOID, MPVOID);
2912 }
2913 break;
2914
2915 case WM_DESTROY:
2916 if (np[0].frameid) {
2917 for (x = 1; np[x].frameid; x++) {
2918 if (np[x].hwnd) {
2919 WinSendMsg(np[x].hwnd, WM_CLOSE, MPVOID, MPVOID);
2920 np[x].hwnd = (HWND) 0;
2921 np[x].pageID = 0;
2922 }
2923 }
2924 WinSendMsg(np[0].hwnd, WM_CLOSE, MPVOID, MPVOID);
2925 np[0].hwnd = (HWND) 0;
2926 np[0].pageID = 0;
2927 }
2928 hwndNotebook = (HWND) 0;
2929 break;
2930 }
2931 return WinDefDlgProc(hwnd, msg, mp1, mp2);
2932}
Note: See TracBrowser for help on using the repository browser.