source: trunk/dll/notebook.c@ 917

Last change on this file since 917 was 917, checked in by Steven Levine, 18 years ago

Correct/enhance settings notebook navigation, ticket #188 (Steven)
Reopen settings notebook to last selected page unless overridden, ticket #188 (Steven)
More Compare Directory overflow tweaks (Steven)

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