source: trunk/dll/notebook.c@ 443

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

Rework SetMask args

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