source: trunk/dll/notebook.c@ 187

Last change on this file since 187 was 187, checked in by root, 20 years ago

Support Cancel button; make Esc key more consistent

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