source: trunk/dll/notebook.c@ 915

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

Commenting, help file, history update for recent changes; Minor clean up.

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