source: trunk/dll/notebook.c@ 904

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

Add option to not use <mailto:> wrapper (it doesn't work with the old pmmail); Cleanup of mailrun code; Replaced dunno.ico with a new version from David

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