source: trunk/dll/notebook.c@ 896

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

Add LIBPATHSTRICT option for mailto

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