source: trunk/dll/notebook.c@ 433

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

Use Runtime_Error

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