source: trunk/dll/notebook.c@ 888

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

runemf2 now quotes executable strings if needed (Ticket 180); it also reports where it was called from on errors

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