source: trunk/dll/notebook.c@ 302

Last change on this file since 302 was 302, checked in by root, 19 years ago

Comments

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