source: trunk/dll/notebook.c@ 906

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

The basic program quoting code and some mailto cleanup.

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