source: trunk/dll/notebook.c@ 918

Last change on this file since 918 was 918, checked in by Gregg Young, 18 years ago

Fix CheckApp_QuoteAddExe to return a pointer on the stack instead of a string. Use MAXCOMLINESTRG for command line length.

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