source: trunk/dll/notebook.c@ 875

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

Used global variable to link presparams to main menu window for both drop down and pop up menus

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