source: trunk/dll/notebook.c@ 789

Last change on this file since 789 was 789, checked in by Steven Levine, 18 years ago

Rework SaveDirCnrState to return better error info
Make FILESTOGET_MIN/MAX to avoid hardcoded numbers
Ensure FilesToGet in valid range on init
Correct load_setups error reporting

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