source: trunk/dll/notebook.c@ 1397

Last change on this file since 1397 was 1395, checked in by Gregg Young, 17 years ago

Allow user to turn off alert and/or error beeps in settings notebook. Ticket 341 Move repeated strings to PCSZs. Ticket 6 Add *DateFormat functions to format dates based on locale Ticket 28 Eliminate Win_Error2 by moving function names to PCSZs used in Win_Error Ticket 6

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 126.2 KB
RevLine 
[123]1
2/***********************************************************************
3
4 $Id: notebook.c 1395 2009-02-08 01:48:16Z gyoung $
5
6 Configuration notebook
7
8 Copyright (c) 1993-98 M. Kimes
[1394]9 Copyright (c) 2004, 2009 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
[920]23 06 Jan 08 GKY Use NormalizeCmdLine 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
[940]26 13 Jan 08 GKY Get Subjectwidth/Subjectleft working in the collector.
[972]27 19 Jan 08 JBS Ticket 150: fix/improve save and restore of dir cnr state at FM/2 close/reopen
[953]28 15 Feb 08 SHL Rework to support settings menu conditional cascade. Make more generic
[961]29 16 Feb 08 SHL Restore SaveDirCnrState internal state save logic - accidentally removed
[972]30 22 Feb 08 JBS Ticket 230: Fix/improve various code related to state or presparam values in the INI file.
[985]31 29 Feb 08 GKY Changes to enable user settable command line length
[998]32 08 Mar 08 JBS Ticket 230: Replace prefixless INI keys for default directory containers with
[1394]33 keys using a "DirCnr." prefix
[1041]34 06 Jul 08 GKY Update delete/undelete to include move to and open XWP trashcan
[1065]35 11 Jul 08 JBS Ticket 230: Simplified code and eliminated some local variables by incorporating
[1394]36 all the details view settings (both the global variables and those in the
37 DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS.
[1080]38 19 Jul 08 JBS Ticket 197: Support accelerator keys in setting dialogs.
[1083]39 20 Jul 08 JBS Ticket 114: Support user-selectable env. strings in Tree container.
[1097]40 31 Jul 08 JBS Ticket 114: Improved code to avoid traps.
[1100]41 02 Aug 08 JBS Ticket 114: Improved code to avoid traps.
[1306]42 30 Nov 08 GKY Add the option of creating a subdirectory from the arcname
[1394]43 for the extract path to arc container.
[1358]44 25 Dec 08 GKY Add ProcessDirectoryThread to allow optional recursive drive scan at startup.
[1375]45 01 Jan 09 GKY Add option to rescan tree container on eject of removable media
[1391]46 11 Jan 09 GKY Replace font names in the string file with global set at compile in init.c
[1395]47 07 Feb 09 GKY Allow user to turn off alert and/or error beeps in settings notebook.
48 07 Feb 09 GKY Move repeated strings to PCSZs.
[123]49
50***********************************************************************/
51
[2]52#include <stdio.h>
53#include <stdlib.h>
54#include <string.h>
[187]55
[907]56#define INCL_DOS
57#define INCL_WIN
[1161]58#define INCL_LONGLONG // dircnrs.h
[907]59
[1186]60#include "fm3dll.h"
[1225]61#include "fm3dll2.h" // #define's for UM_*, control id's, etc.
[1211]62#include "dircnrs.h" // Data declaration(s)
63#include "mainwnd2.h" // Data declaration(s)
64#include "comp.h" // Data declaration(s)
65#include "newview.h" // Data declaration(s)
66#include "datamin.h" // Data declaration(s)
67#include "arccnrs.h" // Data declaration(s)
68#include "treecnr.h" // Data declaration(s)
69#include "collect.h" // Data declarations
[2]70#include "fm3dlg.h"
71#include "fm3str.h"
[1161]72#include "pathutil.h" // BldQuotedFileName
73#include "errutil.h" // Dos_Error...
74#include "strutil.h" // GetPString
[953]75#include "notebook.h"
[1161]76#include "getnames.h" // CustomFileDlg
77#include "mainwnd.h" // SaveDirCnrState
78#include "walkem.h" // WalkExtractDlgProc
[1186]79#include "valid.h" // MakeFullName
80#include "filter.h" // PickMaskDlgProc
81#include "avl.h" // SBoxDlgProc
82#include "select.h" // SetMask
83#include "mkdir.h" // SetTargetDir
84#include "subj.h" // Subject
[1161]85#include "misc.h" // LoadDetailsSwitches, SetConditionalCascade
[1186]86#include "strips.h" // bstrip
87#include "wrappers.h" // xmalloc
[1039]88#include "fortify.h"
[1354]89#include "info.h" // driveflags
[1391]90#include "init.h" // font strings
[2]91
[1211]92static VOID SaveLastPageIndex(HWND hwnd);
93
94// Data defintions
95#pragma data_seg(GLOBAL1)
96HWND Collector;
97DETAILS_SETTINGS dsDirCnrDefault;
[1395]98BOOL fAlertBeepOff;
[1211]99BOOL fAutoAddAllDirs;
100BOOL fAutoAddDirs;
101BOOL fBlueLED;
102BOOL fCancelAction;
103BOOL fCheckMM;
104BOOL fCollapseFirst;
105BOOL fConfirmDelete;
106BOOL fConfirmTarget;
107BOOL fCopyDefault;
108BOOL fCustomFileDlg;
109BOOL fDataMin;
110BOOL fDontMoveMouse;
111BOOL fDragndropDlg;
112BOOL fDrivebarHelp;
[1365]113BOOL fEjectCDScan;
114BOOL fEjectFlpyScan;
115BOOL fEjectRemovableScan;
[1395]116BOOL fErrorBeepOff;
[1211]117BOOL fExternalArcboxes;
118BOOL fExternalCollector;
119BOOL fExternalINIs;
120BOOL fExternalViewer;
121BOOL fFM2Deletes;
122BOOL fFolderAfterExtract;
123BOOL fForceLower;
124BOOL fForceUpper;
125BOOL fGuessType;
126BOOL fLeaveTree;
127BOOL fLibPathStrictFtpRun;
128BOOL fLibPathStrictHttpRun;
129BOOL fLibPathStrictMailRun;
130BOOL fLinkSetsIcon;
131BOOL fLoadLongnames;
132BOOL fLoadSubject;
133BOOL fLookInDir;
134BOOL fMinOnOpen;
135BOOL fNoDead;
136BOOL fNoFoldMenu;
137BOOL fNoIconsDirs;
138BOOL fNoIconsFiles;
139BOOL fNoMailtoMailRun;
140BOOL fNoRemovableScan;
141BOOL fNoSearch;
142BOOL fNoTreeGap;
143BOOL fOtherHelp;
144BOOL fQuickArcFind;
145BOOL fRealIdle;
146BOOL fRemoteBug;
[1354]147BOOL fRScanLocal;
148BOOL fRScanRemote;
149BOOL fRScanVirtual;
150BOOL fRScanSlow;
151BOOL fRScanNoWrite;
[1211]152BOOL fSaveState;
153BOOL fSeparateParms;
154BOOL fShowEnv;
155BOOL fShowTarget;
156BOOL fStartMaximized;
157BOOL fStartMinimized;
158BOOL fSwitchTree;
159BOOL fSwitchTreeExpand;
160BOOL fSwitchTreeOnFocus;
161BOOL fSyncUpdates;
162BOOL fTileBackwards;
163BOOL fToolbarHelp;
164BOOL fTrashCan;
165BOOL fUnHilite;
166BOOL fUseNewViewer;
167BOOL fUserListSwitches;
168BOOL fVTreeOpensWPS;
169BOOL fVerify;
170BOOL fViewChild;
171HINI fmprof;
172ULONG fwsAnimate;
173HWND hwndHelp;
174HWND hwndMain;
175
176#pragma data_seg(GLOBAL2)
177CHAR *pszTreeEnvVarList;
178ULONG FilesToGet;
179CHAR appname[12];
180CHAR *bined;
181CHAR *binview;
182CHAR *compare;
183CHAR *dircompare;
184CHAR *editor;
185CHAR extractpath[CCHMAXPATH];
186CHAR *ftprun;
187CHAR ftprundir[CCHMAXPATH];
188CHAR httprundir[CCHMAXPATH];
189CHAR mailrundir[CCHMAXPATH];
190CHAR szDefArc[CCHMAXPATH];
191ULONG ulCnrType;
192CHAR *viewer;
193CHAR *virus;
194
[2]195#pragma data_seg(DATA2)
[355]196
197static PSZ pszSrcFile = __FILE__;
[2]198static HWND hwndNotebook;
199
[953]200
[551]201MRESULT EXPENTRY CfgADlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]202{
[917]203 ULONG ulResult;
[875]204
[551]205 switch (msg) {
206 case WM_INITDLG:
207 WinSendDlgItemMsg(hwnd, CFGA_VIRUS, EM_SETTEXTLIMIT,
[1394]208 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[551]209 WinSendDlgItemMsg(hwnd, CFGA_EXTRACTPATH, EM_SETTEXTLIMIT,
[1394]210 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[551]211 WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), FALSE);
212 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
213 break;
[2]214
[1080]215 case WM_HELP:
216 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
217 break;
218
219 case WM_CHAR:
220 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
221 switch (CHARMSG(&msg)->vkey) {
[1394]222 case VK_F3:
223 case VK_ENTER:
224 case VK_NEWLINE:
225 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
226 return 0;
227 break;
228 case VK_ESC:
229 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
230 return 0;
231 break;
232 case VK_F1:
233 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
234 return 0;
235 break;
[1080]236 }
237 }
238 break;
239
[551]240 case UM_UNDO:
241 WinCheckButton(hwnd, CFGA_ARCSTUFFVISIBLE, fArcStuffVisible);
242 WinCheckButton(hwnd, CFGA_FOLDERAFTEREXTRACT, fFolderAfterExtract);
243 WinCheckButton(hwnd, CFGA_QUICKARCFIND, fQuickArcFind);
244 WinCheckButton(hwnd, CFGA_DEFARC, (*szDefArc != 0));
[1306]245 WinCheckButton(hwnd, CFGA_FILENAMEPATH, fFileNameCnrPath);
[551]246 WinSetDlgItemText(hwnd, CFGA_DEFARCNAME, szDefArc);
247 WinSetDlgItemText(hwnd, CFGA_VIRUS, virus);
248 WinSetDlgItemText(hwnd, CFGA_EXTRACTPATH, extractpath);
249 break;
250
251 case WM_CONTROL:
252 switch (SHORT1FROMMP(mp1)) {
253 case CFGA_VIRUS:
254 case CFGA_EXTRACTPATH:
255 switch (SHORT2FROMMP(mp1)) {
256 case EN_KILLFOCUS:
[1394]257 WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), FALSE);
258 break;
[551]259 case EN_SETFOCUS:
[1394]260 WinEnableWindow(WinWindowFromID(hwnd, CFGA_FIND), TRUE);
261 break;
[551]262 }
[2]263 break;
[551]264 case CFGA_DEFARC:
265 switch (SHORT2FROMMP(mp1)) {
266 case BN_CLICKED:
[1394]267 if (WinQueryButtonCheckstate(hwnd, CFGA_DEFARC)) {
[2]268
[1394]269 ARC_TYPE *pat = arcsighead; // Hide dups
[2]270
[1394]271 if (!WinDlgBox(HWND_DESKTOP, hwnd,
272 SBoxDlgProc, FM3ModHandle, ASEL_FRAME,
273 (PVOID) & pat) || !pat || !pat->id || !*pat->id) {
[1395]274 if (!fAlertBeepOff)
[1394]275 DosBeep(250, 100); // Complain
276 WinCheckButton(hwnd, CFGA_DEFARC, FALSE);
277 }
278 else
279 WinSetDlgItemText(hwnd, CFGA_DEFARCNAME, pat->id);
280 }
281 break;
[551]282 default:
[1394]283 break;
[551]284 }
285 break;
[2]286
[551]287 default:
288 break;
289 }
290 return 0;
[2]291
[551]292 case WM_COMMAND:
293 switch (SHORT1FROMMP(mp1)) {
294 case IDM_UNDO:
295 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
296 break;
[2]297
[551]298 case DID_CANCEL:
299 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[2]300
[551]301 case DID_OK:
302 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
303 break;
[187]304
[551]305 case IDM_HELP:
306 if (hwndHelp)
[1394]307 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
308 MPFROM2SHORT(HELP_CFGA, 0), MPFROMSHORT(HM_RESOURCEID));
[551]309 break;
[2]310
[551]311 case CFGA_FIND:
312 {
[1394]313 CHAR filename[CCHMAXPATH + 9], szfilename[CCHMAXPATH + 9];
314 USHORT id;
315 HWND hwndFocus;
[2]316
[1395]317 strcpy(filename, PCSZ_STARDOTEXE);
[1394]318 hwndFocus = WinQueryFocus(HWND_DESKTOP);
319 if (hwndFocus) {
320 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
321 switch (id) {
322 case CFGA_VIRUS:
323 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
324 BldQuotedFileName(szfilename, filename);
325 strcat(szfilename, " %p");
326 WinSetDlgItemText(hwnd, id, szfilename);
327 }
328 break;
329 case CFGA_EXTRACTPATH:
330 strcpy(filename, extractpath);
331 if (WinDlgBox(HWND_DESKTOP, hwndNotebook,
332 WalkExtractDlgProc, FM3ModHandle, WALK_FRAME,
333 MPFROMP(filename)) && *filename)
334 WinSetDlgItemText(hwnd, id, filename);
335 break;
336 default:
337 Runtime_Error(pszSrcFile, __LINE__, "bad case");
338 break;
339 }
340 }
[2]341 }
[551]342 break;
343 }
344 return 0;
[2]345
[551]346 case WM_CLOSE:
347 fQuickArcFind = WinQueryButtonCheckstate(hwnd, CFGA_QUICKARCFIND);
348 PrfWriteProfileData(fmprof,
[1394]349 appname,
350 "QuickArcFind", &fQuickArcFind, sizeof(BOOL));
[551]351 fArcStuffVisible = WinQueryButtonCheckstate(hwnd, CFGA_ARCSTUFFVISIBLE);
352 PrfWriteProfileData(fmprof,
[1394]353 appname,
354 "ArcStuffVisible", &fArcStuffVisible, sizeof(BOOL));
[1306]355 fFileNameCnrPath = WinQueryButtonCheckstate(hwnd, CFGA_FILENAMEPATH);
356 PrfWriteProfileData(fmprof,
[1394]357 appname,
358 "FileNamePathCnr", &fFileNameCnrPath, sizeof(BOOL));
[551]359 fFolderAfterExtract = WinQueryButtonCheckstate(hwnd,
[1394]360 CFGA_FOLDERAFTEREXTRACT);
[551]361 PrfWriteProfileData(fmprof,
[1394]362 appname,
363 "FolderAfterExtract",
364 &fFolderAfterExtract, sizeof(BOOL));
[551]365 if (WinQueryButtonCheckstate(hwnd, CFGA_DEFARC)) {
[2]366
[551]367 CHAR temp[CCHMAXPATH];
[2]368
[551]369 *temp = 0;
370 WinQueryDlgItemText(hwnd, CFGA_DEFARCNAME, CCHMAXPATH, temp);
371 strcpy(szDefArc, temp);
372 }
373 else
374 *szDefArc = 0;
375 PrfWriteProfileString(fmprof, appname, "DefArc", szDefArc);
[888]376 {
[985]377 CHAR *szCLBuf;
378 CHAR szPathBuf[CCHMAXPATH];
[920]379 PSZ pszWorkBuf;
[888]380
[985]381 szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
[1394]382 if (!szCLBuf)
383 return 0; //already complained
[985]384 pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
385 if (!pszWorkBuf) {
[1394]386 free(szCLBuf);
387 return 0; //already complained
[985]388 }
389 WinQueryDlgItemText(hwnd, CFGA_VIRUS, MaxComLineStrg, szCLBuf);
390 szCLBuf[MaxComLineStrg - 1] = 0;
[918]391 if (strcmp(szCLBuf, virus)){
[1394]392 NormalizeCmdLine(pszWorkBuf, szCLBuf);
393 memcpy(virus, pszWorkBuf, strlen(pszWorkBuf) + 1);
394 if (!strchr(virus, '%') && strlen(virus) > 3)
395 strcat(virus, " %p");
[906]396 }
[1049]397 free(pszWorkBuf);
398 free(szCLBuf);
[906]399 if (!*virus)
[1394]400 strcpy(virus, "OS2SCAN.EXE %p /SUB /A");
[918]401 WinQueryDlgItemText(hwnd, CFGA_EXTRACTPATH, CCHMAXPATH, szPathBuf);
402 szPathBuf[CCHMAXPATH - 1] = 0;
403 bstrip(szPathBuf);
404 if (strcmp(extractpath, szPathBuf)) {
[1394]405 memcpy(extractpath, szPathBuf, strlen(szPathBuf) + 1);
406 if (*extractpath){
407 MakeFullName(extractpath);
408 if (IsFile(extractpath)) {
409 ulResult = saymsg(MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON1, HWND_DESKTOP,
410 GetPString(IDS_WARNINGTEXT),
411 GetPString(IDS_EXTPATHNOTVALIDTEXT),
412 extractpath);
413 if (ulResult == MBID_YES)
414 *extractpath = 0;
415 if (ulResult == MBID_CANCEL){
416 WinDlgBox(HWND_DESKTOP,
417 hwnd,
418 CfgDlgProc,
419 FM3ModHandle,
420 CFG_FRAME,
421 MPFROMLONG(IDM_ARCHIVERSETTINGS));
422 break;
423 }
424 }
425 }
[2]426 }
[551]427 }
428 PrfWriteProfileString(fmprof, appname, "Virus", virus);
429 PrfWriteProfileString(fmprof, appname, "ExtractPath", extractpath);
430 break;
[2]431 }
[917]432 if (fCancelAction) {
[906]433 fCancelAction = FALSE;
434 WinDlgBox(HWND_DESKTOP,
[1394]435 hwnd,
436 CfgDlgProc,
437 FM3ModHandle,
438 CFG_FRAME,
439 MPFROMLONG(IDM_ARCHIVERSETTINGS));
[906]440 }
[551]441 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]442}
443
[551]444MRESULT EXPENTRY CfgSDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]445{
[1080]446
[551]447 switch (msg) {
448 case WM_INITDLG:
449 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_SETTEXTLIMIT,
[1394]450 MPFROMSHORT(8), MPVOID);
[551]451 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_OVERRIDESETLIMITS,
[1394]452 MPFROMLONG(FILESTOGET_MAX), MPFROMLONG(FILESTOGET_MIN));
[551]453 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
454 break;
[2]455
[1080]456 case WM_HELP:
457 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
458 break;
459
460 case WM_CHAR:
461 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
462 switch (CHARMSG(&msg)->vkey) {
[1394]463 case VK_F3:
464 case VK_ENTER:
465 case VK_NEWLINE:
466 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
467 return 0;
468 break;
469 case VK_ESC:
470 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
471 return 0;
472 break;
473 case VK_F1:
474 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
475 return 0;
476 break;
[1080]477 }
478 }
479 break;
480
[551]481 case UM_UNDO:
482 WinCheckButton(hwnd, CFGS_NOICONSFILES, (fNoIconsFiles == FALSE));
483 WinCheckButton(hwnd, CFGS_NOICONSDIRS, (fNoIconsDirs == FALSE));
484 WinCheckButton(hwnd, CFGS_LOADSUBJECTS, fLoadSubject);
485 WinCheckButton(hwnd, CFGS_LOADLONGNAMES, fLoadLongnames);
486 WinCheckButton(hwnd, CFGS_FORCELOWER, fForceLower);
487 WinCheckButton(hwnd, CFGS_FORCEUPPER, fForceUpper);
[1365]488 WinCheckButton(hwnd, CFGS_REMOTEBUG, fRemoteBug);
[551]489 WinCheckButton(hwnd, CFGS_NOREMOVABLESCAN, fNoRemovableScan);
[1354]490 WinCheckButton(hwnd, CFGS_RSCANLOCAL, fRScanLocal);
491 WinCheckButton(hwnd, CFGS_RSCANREMOTE, fRScanRemote);
492 WinCheckButton(hwnd, CFGS_RSCANVIRTUAL, fRScanVirtual);
493 WinCheckButton(hwnd, CFGS_RSCANSLOW, fRScanSlow);
494 WinCheckButton(hwnd, CFGS_RSCANNOWRITE, fRScanNoWrite);
[1365]495 WinCheckButton(hwnd, CFGS_EJECTREMOVABLESCAN, fEjectRemovableScan);
496 WinCheckButton(hwnd, CFGS_EJECTCDSCAN, fEjectCDScan);
497 WinCheckButton(hwnd, CFGS_EJECTFLPYSCAN, fEjectFlpyScan);
[551]498 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_SETCURRENTVALUE,
[1394]499 MPFROMLONG(FilesToGet), MPVOID);
[551]500 return 0;
[2]501
[551]502 case WM_CONTROL:
503 switch (SHORT1FROMMP(mp1)) {
504 case CFGS_FORCEUPPER:
505 case CFGS_FORCELOWER:
506 {
[1394]507 BOOL temp;
[2]508
[1394]509 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
510 if (temp) {
511 switch (SHORT1FROMMP(mp1)) {
512 case CFGS_FORCEUPPER:
513 WinCheckButton(hwnd, CFGS_FORCELOWER, FALSE);
514 break;
515 case CFGS_FORCELOWER:
516 WinCheckButton(hwnd, CFGS_FORCEUPPER, FALSE);
517 break;
518 }
519 }
[2]520 }
[551]521 break;
522 }
523 return 0;
[2]524
[551]525 case WM_COMMAND:
526 switch (SHORT1FROMMP(mp1)) {
527 case IDM_UNDO:
528 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
529 break;
[2]530
[551]531 case DID_CANCEL:
532 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]533
[551]534 case DID_OK:
535 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
536 break;
[2]537
[551]538 case IDM_HELP:
539 if (hwndHelp)
[1394]540 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
541 MPFROM2SHORT(HELP_CFGS, 0), MPFROMSHORT(HM_RESOURCEID));
[551]542 break;
543 }
544 return 0;
[2]545
[551]546 case WM_CLOSE:
547 fLoadLongnames = WinQueryButtonCheckstate(hwnd, CFGS_LOADLONGNAMES);
548 PrfWriteProfileData(fmprof, appname, "LoadLongname", &fLoadLongnames,
[1394]549 sizeof(BOOL));
[551]550 fLoadSubject = WinQueryButtonCheckstate(hwnd, CFGS_LOADSUBJECTS);
551 PrfWriteProfileData(fmprof, appname, "LoadSubject", &fLoadSubject,
[1394]552 sizeof(BOOL));
[551]553 fRemoteBug = WinQueryButtonCheckstate(hwnd, CFGS_REMOTEBUG);
554 PrfWriteProfileData(fmprof, appname, "RemoteBug", &fRemoteBug,
[1394]555 sizeof(BOOL));
[1354]556 fRScanLocal = WinQueryButtonCheckstate(hwnd, CFGS_RSCANLOCAL);
557 PrfWriteProfileData(fmprof, appname, "RScanLocal", &fRScanLocal,
[1394]558 sizeof(BOOL));
[1354]559 fRScanRemote = WinQueryButtonCheckstate(hwnd, CFGS_RSCANREMOTE);
560 PrfWriteProfileData(fmprof, appname, "RScanRemote", &fRScanRemote,
[1394]561 sizeof(BOOL));
[1354]562 fRScanVirtual = WinQueryButtonCheckstate(hwnd, CFGS_RSCANVIRTUAL);
563 PrfWriteProfileData(fmprof, appname, "RScanVirtual", &fRScanVirtual,
[1394]564 sizeof(BOOL));
[1354]565 fRScanSlow = WinQueryButtonCheckstate(hwnd, CFGS_RSCANSLOW);
566 PrfWriteProfileData(fmprof, appname, "RScanSlow", &fRScanSlow,
[1394]567 sizeof(BOOL));
[1354]568 fRScanNoWrite = WinQueryButtonCheckstate(hwnd, CFGS_RSCANNOWRITE);
569 PrfWriteProfileData(fmprof, appname, "RScanNoWrite", &fRScanNoWrite,
[1394]570 sizeof(BOOL));
[551]571 fNoRemovableScan = WinQueryButtonCheckstate(hwnd, CFGS_NOREMOVABLESCAN);
[1365]572 PrfWriteProfileData(fmprof, appname, "NoRemovableScan", &fNoRemovableScan,
[1394]573 sizeof(BOOL));
[1365]574 fEjectRemovableScan = WinQueryButtonCheckstate(hwnd, CFGS_EJECTREMOVABLESCAN);
575 PrfWriteProfileData(fmprof, appname, "EjectRemovableScan", &fEjectRemovableScan,
[1394]576 sizeof(BOOL));
[1365]577 fEjectCDScan = WinQueryButtonCheckstate(hwnd, CFGS_EJECTCDSCAN);
578 PrfWriteProfileData(fmprof, appname, "EjectCDScan", &fEjectCDScan,
[1394]579 sizeof(BOOL));
[1365]580 fEjectFlpyScan = WinQueryButtonCheckstate(hwnd, CFGS_EJECTFLPYSCAN);
581 PrfWriteProfileData(fmprof, appname, "EjectFlpyScan", &fEjectFlpyScan,
[1394]582 sizeof(BOOL));
[551]583 fNoIconsFiles = WinQueryButtonCheckstate(hwnd, CFGS_NOICONSFILES);
584 fNoIconsFiles = (fNoIconsFiles) ? FALSE : TRUE;
585 PrfWriteProfileData(fmprof, appname, "NoIconsFiles",
[1394]586 &fNoIconsFiles, sizeof(BOOL));
[551]587 fNoIconsDirs = WinQueryButtonCheckstate(hwnd, CFGS_NOICONSDIRS);
588 fNoIconsDirs = (fNoIconsDirs) ? FALSE : TRUE;
589 PrfWriteProfileData(fmprof, appname, "NoIconsDirs",
[1394]590 &fNoIconsDirs, sizeof(BOOL));
[551]591 fForceUpper = WinQueryButtonCheckstate(hwnd, CFGS_FORCEUPPER);
592 PrfWriteProfileData(fmprof, appname, "ForceUpper",
[1394]593 &fForceUpper, sizeof(BOOL));
[551]594 fForceLower = WinQueryButtonCheckstate(hwnd, CFGS_FORCELOWER);
595 PrfWriteProfileData(fmprof, appname, "ForceLower",
[1394]596 &fForceLower, sizeof(BOOL));
[551]597 {
598 WinSendDlgItemMsg(hwnd, CFGS_FILESTOGET, SPBM_QUERYVALUE,
[1394]599 MPFROMP(&FilesToGet), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
[789]600 if (FilesToGet < FILESTOGET_MIN)
[1394]601 FilesToGet = FILESTOGET_MIN;
[789]602 else if (FilesToGet > FILESTOGET_MAX)
[1394]603 FilesToGet = FILESTOGET_MAX;
[551]604 PrfWriteProfileData(fmprof,
[1394]605 appname, "FilesToGet", &FilesToGet, sizeof(ULONG));
[551]606 }
607 break;
[2]608 }
[551]609 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]610}
611
[551]612MRESULT EXPENTRY CfgVDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]613{
[1080]614
[551]615 switch (msg) {
616 case WM_INITDLG:
617 WinSendDlgItemMsg(hwnd, CFGV_VIEWER, EM_SETTEXTLIMIT,
[1394]618 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[551]619 WinSendDlgItemMsg(hwnd, CFGV_EDITOR, EM_SETTEXTLIMIT,
[1394]620 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[551]621 WinSendDlgItemMsg(hwnd, CFGV_BINVIEW, EM_SETTEXTLIMIT,
[1394]622 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[551]623 WinSendDlgItemMsg(hwnd, CFGV_BINED, EM_SETTEXTLIMIT,
[1394]624 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[551]625 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE);
626 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
627 break;
[2]628
[1080]629 case WM_HELP:
630 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
631 break;
632
633 case WM_CHAR:
634 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
635 switch (CHARMSG(&msg)->vkey) {
[1394]636 case VK_F3:
637 case VK_ENTER:
638 case VK_NEWLINE:
639 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
640 return 0;
641 break;
642 case VK_ESC:
643 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
644 return 0;
645 break;
646 case VK_F1:
647 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
648 return 0;
649 break;
[1080]650 }
651 }
652 break;
653
[551]654 case UM_UNDO:
655 WinSetDlgItemText(hwnd, CFGV_VIEWER, viewer);
656 WinSetDlgItemText(hwnd, CFGV_EDITOR, editor);
657 WinSetDlgItemText(hwnd, CFGV_BINVIEW, binview);
658 WinSetDlgItemText(hwnd, CFGV_BINED, bined);
659 WinCheckButton(hwnd, CFGV_USENEWVIEWER, fUseNewViewer);
660 WinCheckButton(hwnd, CFGV_GUESSTYPE, fGuessType);
661 WinCheckButton(hwnd, CFGV_VIEWCHILD, fViewChild);
662 WinCheckButton(hwnd, CFGV_CHECKMM, fCheckMM);
663 return 0;
[2]664
[551]665 case WM_CONTROL:
666 switch (SHORT1FROMMP(mp1)) {
667 case CFGV_VIEWER:
668 case CFGV_EDITOR:
669 case CFGV_BINVIEW:
670 case CFGV_BINED:
671 switch (SHORT2FROMMP(mp1)) {
672 case EN_KILLFOCUS:
[1394]673 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE);
674 break;
[551]675 case EN_SETFOCUS:
[1394]676 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), TRUE);
677 break;
[2]678 }
[551]679 break;
680 }
681 return 0;
[2]682
[551]683 case WM_COMMAND:
684 switch (SHORT1FROMMP(mp1)) {
685 case IDM_UNDO:
686 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
687 break;
[2]688
[551]689 case DID_CANCEL:
690 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]691
[551]692 case DID_OK:
693 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
694 break;
[2]695
[551]696 case IDM_HELP:
697 if (hwndHelp)
[1394]698 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
699 MPFROM2SHORT(HELP_CFGV, 0), MPFROMSHORT(HM_RESOURCEID));
[551]700 break;
[2]701
[551]702 case CFGV_FIND:
703 {
[1394]704 CHAR filename[CCHMAXPATH + 9], szfilename[CCHMAXPATH + 9];
705 USHORT id;
706 HWND hwndFocus;
[2]707
[1395]708 strcpy(filename, PCSZ_STARDOTEXE);
[1394]709 hwndFocus = WinQueryFocus(HWND_DESKTOP);
710 if (hwndFocus) {
711 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
712 switch (id) {
713 case CFGV_BINVIEW:
714 case CFGV_BINED:
715 case CFGV_VIEWER:
716 case CFGV_EDITOR:
717 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
718 BldQuotedFileName(szfilename, filename);
719 strcat(szfilename, " %a");
720 WinSetDlgItemText(hwnd, id, szfilename);
721 }
722 break;
723 default:
724 Runtime_Error(pszSrcFile, __LINE__, "bad case %d", id);
725 break;
726 }
727 }
[2]728 }
[551]729 break;
730 }
731 return 0;
[2]732
[551]733 case WM_CLOSE:
[888]734 {
[985]735 CHAR *szCLBuf;
[920]736 PSZ pszWorkBuf;
[888]737
[985]738 szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
[1394]739 if (!szCLBuf)
740 return 0; //already complained
[985]741 pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
742 if (!pszWorkBuf) {
[1394]743 free(szCLBuf);
744 return 0; //already complained
[985]745 }
746 WinQueryDlgItemText(hwnd, CFGV_VIEWER, MaxComLineStrg, szCLBuf);
747 szCLBuf[MaxComLineStrg - 1] = 0;
[918]748 if (strcmp(szCLBuf, viewer)){
[1394]749 NormalizeCmdLine(pszWorkBuf, szCLBuf);
750 memcpy(viewer, pszWorkBuf, strlen(pszWorkBuf) + 1);
751 if (!strchr(viewer, '%') && strlen(viewer) > 3)
752 strcat(viewer, " %a");
[906]753 }
[985]754 WinQueryDlgItemText(hwnd, CFGV_EDITOR, MaxComLineStrg, szCLBuf);
755 szCLBuf[MaxComLineStrg - 1] = 0;
[918]756 if (strcmp(szCLBuf, editor)){
[1394]757 NormalizeCmdLine(pszWorkBuf, szCLBuf);
758 memcpy(editor, pszWorkBuf, strlen(pszWorkBuf) + 1);
759 if (!strchr(editor, '%') && strlen(editor) > 3)
760 strcat(editor, " %a");
[906]761 }
[985]762 WinQueryDlgItemText(hwnd, CFGV_BINVIEW, MaxComLineStrg, szCLBuf);
763 szCLBuf[MaxComLineStrg - 1] = 0;
[918]764 if (strcmp(szCLBuf, binview)){
[1394]765 NormalizeCmdLine(pszWorkBuf, szCLBuf);
766 memcpy(binview, pszWorkBuf, strlen(pszWorkBuf) + 1);
767 if (!strchr(binview, '%') && strlen(binview) > 3)
768 strcat(binview, " %a");
[906]769 }
[985]770 WinQueryDlgItemText(hwnd, CFGV_BINED, MaxComLineStrg, szCLBuf);
771 szCLBuf[MaxComLineStrg - 1] = 0;
[918]772 if (strcmp(szCLBuf, bined)){
[1394]773 NormalizeCmdLine(pszWorkBuf, szCLBuf);
774 memcpy(bined, pszWorkBuf, strlen(pszWorkBuf) + 1);
775 if (!strchr(bined, '%') && strlen(bined) > 3)
776 strcat(bined, " %a");
[906]777 }
[1039]778 free(pszWorkBuf);
779 free(szCLBuf);
[888]780 PrfWriteProfileString(fmprof, appname, "Viewer", viewer);
781 PrfWriteProfileString(fmprof, appname, "Editor", editor);
782 PrfWriteProfileString(fmprof, appname, "BinView", binview);
783 PrfWriteProfileString(fmprof, appname, "BinEd", bined);
784 fUseNewViewer = WinQueryButtonCheckstate(hwnd, CFGV_USENEWVIEWER);
785 PrfWriteProfileData(fmprof, appname, "UseNewViewer", &fUseNewViewer,
[1394]786 sizeof(BOOL));
[888]787 fGuessType = WinQueryButtonCheckstate(hwnd, CFGV_GUESSTYPE);
788 PrfWriteProfileData(fmprof, appname, "GuessType", &fGuessType,
[1394]789 sizeof(BOOL));
[888]790 fViewChild = WinQueryButtonCheckstate(hwnd, CFGV_VIEWCHILD);
791 PrfWriteProfileData(fmprof, appname, "ViewChild", &fViewChild,
[1394]792 sizeof(BOOL));
[888]793 fCheckMM = WinQueryButtonCheckstate(hwnd, CFGV_CHECKMM);
794 PrfWriteProfileData(fmprof, appname, "CheckMM", &fCheckMM, sizeof(BOOL));
[892]795
[888]796 break;
797 }
[2]798 }
[917]799 if (fCancelAction) {
[906]800 fCancelAction = FALSE;
801 WinDlgBox(HWND_DESKTOP,
[1394]802 hwnd,
803 CfgDlgProc,
804 FM3ModHandle,
805 CFG_FRAME,
806 MPFROMLONG(IDM_VIEWERSETTINGS));
[906]807 }
[551]808 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]809}
810
[892]811MRESULT EXPENTRY CfgHDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
812{
813 switch (msg) {
814 case WM_INITDLG:
815 WinSendDlgItemMsg(hwnd, CFGH_RUNFTPWORKDIR, EM_SETTEXTLIMIT,
[1394]816 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[892]817 WinSendDlgItemMsg(hwnd, CFGH_RUNHTTPWORKDIR, EM_SETTEXTLIMIT,
[1394]818 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[892]819 WinSendDlgItemMsg(hwnd, CFGH_FTPRUN, EM_SETTEXTLIMIT,
[1394]820 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[892]821 WinSendDlgItemMsg(hwnd, CFGH_HTTPRUN, EM_SETTEXTLIMIT,
[1394]822 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[892]823 WinSendDlgItemMsg(hwnd, CFGH_MAILRUN, EM_SETTEXTLIMIT,
[1394]824 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[892]825 WinSendDlgItemMsg(hwnd, CFGH_RUNMAILWORKDIR, EM_SETTEXTLIMIT,
[1394]826 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[892]827 WinEnableWindow(WinWindowFromID(hwnd, CFGH_FIND), FALSE);
828 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
829 break;
830
[1080]831 case WM_HELP:
832 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
833 break;
834
835 case WM_CHAR:
836 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
837 switch (CHARMSG(&msg)->vkey) {
[1394]838 case VK_F3:
839 case VK_ENTER:
840 case VK_NEWLINE:
841 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
842 return 0;
843 break;
844 case VK_ESC:
845 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
846 return 0;
847 break;
848 case VK_F1:
849 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
850 return 0;
851 break;
[1080]852 }
853 }
854 break;
855
[892]856 case UM_UNDO:
857 WinSetDlgItemText(hwnd, CFGH_RUNFTPWORKDIR, ftprundir);
858 WinSetDlgItemText(hwnd, CFGH_RUNHTTPWORKDIR, httprundir);
859 WinSetDlgItemText(hwnd, CFGH_RUNMAILWORKDIR, mailrundir);
860 WinSetDlgItemText(hwnd, CFGH_MAILRUN, mailrun);
861 WinSetDlgItemText(hwnd, CFGH_FTPRUN, ftprun);
862 WinSetDlgItemText(hwnd, CFGH_HTTPRUN, httprun);
863 WinCheckButton(hwnd, CFGH_HTTPRUNWPSDEFAULT, fHttpRunWPSDefault);
864 WinCheckButton(hwnd, CFGH_FTPRUNWPSDEFAULT, fFtpRunWPSDefault);
865 WinCheckButton(hwnd, CFGH_LIBPATHSTRICTHTTPRUN, fLibPathStrictHttpRun);
866 WinCheckButton(hwnd, CFGH_LIBPATHSTRICTFTPRUN, fLibPathStrictFtpRun);
[896]867 WinCheckButton(hwnd, CFGH_LIBPATHSTRICTMAILRUN, fLibPathStrictMailRun);
[898]868 WinCheckButton(hwnd, CFGH_NOMAILTOMAILRUN, fNoMailtoMailRun);
[892]869 return 0;
870
871 case WM_CONTROL:
872 switch (SHORT1FROMMP(mp1)) {
873 case CFGH_HTTPRUN:
874 case CFGH_FTPRUN:
875 case CFGH_RUNFTPWORKDIR:
876 case CFGH_RUNHTTPWORKDIR:
877 case CFGH_RUNMAILWORKDIR:
878 case CFGH_MAILRUN:
879 switch (SHORT2FROMMP(mp1)) {
880 case EN_KILLFOCUS:
[1394]881 WinEnableWindow(WinWindowFromID(hwnd, CFGH_FIND), FALSE);
882 break;
[892]883 case EN_SETFOCUS:
[1394]884 WinEnableWindow(WinWindowFromID(hwnd, CFGH_FIND), TRUE);
885 break;
[892]886 }
887 break;
888 }
889 return 0;
890
891 case WM_COMMAND:
892 switch (SHORT1FROMMP(mp1)) {
893 case IDM_UNDO:
894 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
895 break;
896
897 case DID_CANCEL:
898 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
899
900 case DID_OK:
901 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
902 break;
903
904 case IDM_HELP:
905 if (hwndHelp)
[1394]906 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
907 MPFROM2SHORT(HELP_CFGH, 0), MPFROMSHORT(HM_RESOURCEID));
[892]908 break;
909
910 case CFGH_FIND:
911 {
[1394]912 CHAR filename[CCHMAXPATH + 9], szfilename[CCHMAXPATH + 9];
913 USHORT id;
914 HWND hwndFocus;
[892]915
[1395]916 strcpy(filename, PCSZ_STARDOTEXE);
[1394]917 hwndFocus = WinQueryFocus(HWND_DESKTOP);
918 if (hwndFocus) {
919 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
920 switch (id) {
921 case CFGH_HTTPRUN:
922 case CFGH_FTPRUN:
923 case CFGH_MAILRUN:
924 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
925 BldQuotedFileName(szfilename, filename);
926 WinSetDlgItemText(hwnd, id, szfilename);
927 }
928 break;
929 case CFGH_RUNFTPWORKDIR:
930 strcpy(filename, ftprundir);
931 if (WinDlgBox(HWND_DESKTOP, hwndNotebook,
932 WalkExtractDlgProc, FM3ModHandle, WALK_FRAME,
933 MPFROMP(filename)) && *filename)
934 WinSetDlgItemText(hwnd, id, filename);
935 break;
936 case CFGH_RUNHTTPWORKDIR:
937 strcpy(filename, httprundir);
938 if (WinDlgBox(HWND_DESKTOP, hwndNotebook,
939 WalkExtractDlgProc, FM3ModHandle, WALK_FRAME,
940 MPFROMP(filename)) && *filename)
941 WinSetDlgItemText(hwnd, id, filename);
942 break;
943 case CFGH_RUNMAILWORKDIR:
944 strcpy(filename, mailrundir);
945 if (WinDlgBox(HWND_DESKTOP, hwndNotebook,
946 WalkExtractDlgProc, FM3ModHandle, WALK_FRAME,
947 MPFROMP(filename)) && *filename)
948 WinSetDlgItemText(hwnd, id, filename);
949 break;
950 default:
951 Runtime_Error(pszSrcFile, __LINE__, "bad case %d", id);
952 break;
953 }
954 }
[892]955 }
956 break;
957 }
958 return 0;
959
960 case WM_CLOSE:
[959]961 {
[985]962 CHAR *szCLBuf;
963 CHAR szPathBuf[CCHMAXPATH];
[953]964 PSZ pszWorkBuf;
[892]965
[985]966 szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
[1394]967 if (!szCLBuf)
968 return 0; //already complained
[985]969 pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
970 if (!pszWorkBuf) {
[1394]971 free(szCLBuf);
972 return 0; //already complained
[985]973 }
[918]974 WinQueryDlgItemText(hwnd, CFGH_RUNHTTPWORKDIR, CCHMAXPATH, szPathBuf);
975 szPathBuf[CCHMAXPATH - 1] = 0;
976 bstrip(szPathBuf);
977 memcpy(httprundir, szPathBuf, strlen(szPathBuf) + 1);
978 WinQueryDlgItemText(hwnd, CFGH_RUNFTPWORKDIR, CCHMAXPATH, szPathBuf);
979 szPathBuf[CCHMAXPATH - 1] = 0;
980 bstrip(szPathBuf);
981 memcpy(ftprundir, szPathBuf, strlen(szPathBuf) + 1);
982 WinQueryDlgItemText(hwnd, CFGH_RUNMAILWORKDIR, CCHMAXPATH, szPathBuf);
983 szPathBuf[CCHMAXPATH - 1] = 0;
984 bstrip(szPathBuf);
985 memcpy(mailrundir, szPathBuf, strlen(szPathBuf) + 1);
[985]986 WinQueryDlgItemText(hwnd, CFGH_FTPRUN, MaxComLineStrg, szCLBuf);
987 szCLBuf[MaxComLineStrg - 1] = 0;
[918]988 if (strcmp(szCLBuf, ftprun)){
[1394]989 NormalizeCmdLine(pszWorkBuf, szCLBuf);
990 memcpy(ftprun, pszWorkBuf, strlen(pszWorkBuf) + 1);
[906]991 }
[985]992 WinQueryDlgItemText(hwnd, CFGH_HTTPRUN, MaxComLineStrg, szCLBuf);
993 szCLBuf[MaxComLineStrg - 1] = 0;
[918]994 if (strcmp(szCLBuf, httprun)){
[1394]995 NormalizeCmdLine(pszWorkBuf, szCLBuf);
996 memcpy(httprun, pszWorkBuf, strlen(pszWorkBuf) + 1);
[906]997 }
[985]998 WinQueryDlgItemText(hwnd, CFGH_MAILRUN, MaxComLineStrg, szCLBuf);
999 szCLBuf[MaxComLineStrg - 1] = 0;
[918]1000 if (strcmp(szCLBuf, mailrun)){
[1394]1001 NormalizeCmdLine(pszWorkBuf, szCLBuf);
1002 memcpy(mailrun, pszWorkBuf, strlen(pszWorkBuf) + 1);
[906]1003 }
[1039]1004 free(pszWorkBuf);
1005 free(szCLBuf);
[892]1006 PrfWriteProfileString(fmprof, appname, "HttpRunDir", httprundir);
1007 PrfWriteProfileString(fmprof, appname, "FtpRunDir", ftprundir);
1008 PrfWriteProfileString(fmprof, appname, "MailRunDir", mailrundir);
1009 PrfWriteProfileString(fmprof, appname, "FTPRun", ftprun);
1010 PrfWriteProfileString(fmprof, appname, "HTTPRun", httprun);
1011 PrfWriteProfileString(fmprof, appname, "MailRun", mailrun);
1012 fHttpRunWPSDefault = WinQueryButtonCheckstate(hwnd, CFGH_HTTPRUNWPSDEFAULT);
1013 PrfWriteProfileData(fmprof, appname, "HttpRunWPSDefault", &fHttpRunWPSDefault,
[1394]1014 sizeof(BOOL));
[892]1015 fFtpRunWPSDefault = WinQueryButtonCheckstate(hwnd, CFGH_FTPRUNWPSDEFAULT);
1016 PrfWriteProfileData(fmprof, appname, "FtpRunWPSDefault", &fFtpRunWPSDefault,
[1394]1017 sizeof(BOOL));
[892]1018 fLibPathStrictHttpRun = WinQueryButtonCheckstate(hwnd, CFGH_LIBPATHSTRICTHTTPRUN);
1019 PrfWriteProfileData(fmprof, appname, "LibPathStrictHttpRun",
[1394]1020 &fLibPathStrictHttpRun, sizeof(BOOL));
[892]1021 fLibPathStrictFtpRun = WinQueryButtonCheckstate(hwnd, CFGH_LIBPATHSTRICTFTPRUN);
1022 PrfWriteProfileData(fmprof, appname, "LibPathStrictFtpRun",
[1394]1023 &fLibPathStrictFtpRun, sizeof(BOOL));
[896]1024 fLibPathStrictMailRun = WinQueryButtonCheckstate(hwnd, CFGH_LIBPATHSTRICTMAILRUN);
1025 PrfWriteProfileData(fmprof, appname, "LibPathStrictMailRun",
[1394]1026 &fLibPathStrictMailRun, sizeof(BOOL));
[898]1027 fNoMailtoMailRun = WinQueryButtonCheckstate(hwnd, CFGH_NOMAILTOMAILRUN);
1028 PrfWriteProfileData(fmprof, appname, "NoMailtoMailRun",
[1394]1029 &fNoMailtoMailRun, sizeof(BOOL));
[892]1030 break;
1031 }
1032 }
[917]1033 if (fCancelAction) {
[906]1034 fCancelAction = FALSE;
1035 WinDlgBox(HWND_DESKTOP,
[1394]1036 hwnd,
1037 CfgDlgProc,
1038 FM3ModHandle,
1039 CFG_FRAME,
1040 MPFROMLONG(IDM_VIEWERSETTINGS));
[906]1041 }
[892]1042 return WinDefDlgProc(hwnd, msg, mp1, mp2);
1043}
1044
[551]1045MRESULT EXPENTRY CfgBDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1046{
[551]1047 switch (msg) {
1048 case WM_INITDLG:
1049 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1050 break;
[2]1051
[551]1052 case UM_UNDO:
1053 WinCheckButton(hwnd, CFGB_TOOLBARHELP, fToolbarHelp);
1054 WinCheckButton(hwnd, CFGB_DRIVEBARHELP, fDrivebarHelp);
1055 WinCheckButton(hwnd, CFGB_OTHERHELP, fOtherHelp);
1056 return 0;
[2]1057
[1080]1058 case WM_HELP:
1059 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1060 break;
1061
1062 case WM_CHAR:
1063 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1064 switch (CHARMSG(&msg)->vkey) {
[1394]1065 case VK_F3:
1066 case VK_ENTER:
1067 case VK_NEWLINE:
1068 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1069 return 0;
1070 break;
1071 case VK_ESC:
1072 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1073 return 0;
1074 break;
1075 case VK_F1:
1076 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1077 return 0;
1078 break;
[1080]1079 }
1080 }
1081 break;
1082
[551]1083 case WM_COMMAND:
1084 switch (SHORT1FROMMP(mp1)) {
1085 case IDM_UNDO:
1086 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1087 break;
[2]1088
[551]1089 case DID_CANCEL:
1090 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]1091
[551]1092 case DID_OK:
1093 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1094 break;
[2]1095
[551]1096 case IDM_HELP:
1097 if (hwndHelp)
[1394]1098 WinSendMsg(hwndHelp,
1099 HM_DISPLAY_HELP,
1100 MPFROM2SHORT(HELP_CFGB, 0), MPFROMSHORT(HM_RESOURCEID));
[551]1101 break;
1102 }
1103 return 0;
[2]1104
[551]1105 case WM_CLOSE:
1106 fToolbarHelp = WinQueryButtonCheckstate(hwnd, CFGB_TOOLBARHELP);
1107 PrfWriteProfileData(fmprof,
[1394]1108 FM3Str, "ToolbarHelp", &fToolbarHelp, sizeof(BOOL));
[551]1109 fDrivebarHelp = WinQueryButtonCheckstate(hwnd, CFGB_DRIVEBARHELP);
1110 PrfWriteProfileData(fmprof,
[1394]1111 FM3Str, "DrivebarHelp", &fDrivebarHelp, sizeof(BOOL));
[551]1112 fOtherHelp = WinQueryButtonCheckstate(hwnd, CFGB_OTHERHELP);
1113 PrfWriteProfileData(fmprof,
[1394]1114 FM3Str, "OtherHelp", &fOtherHelp, sizeof(BOOL));
[551]1115 break;
[2]1116 }
[551]1117 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]1118}
1119
[551]1120MRESULT EXPENTRY CfgTSDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1121{
[2]1122 static MASK mask;
1123
[551]1124 switch (msg) {
1125 case WM_INITDLG:
1126 WinSendDlgItemMsg(hwnd,
[1394]1127 CFG5_FILTER,
1128 EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[551]1129 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1130 break;
[2]1131
[1080]1132 case WM_HELP:
1133 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1134 break;
1135
1136 case WM_CHAR:
1137 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1138 switch (CHARMSG(&msg)->vkey) {
[1394]1139 case VK_F3:
1140 case VK_ENTER:
1141 case VK_NEWLINE:
1142 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1143 return 0;
1144 break;
1145 case VK_ESC:
1146 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1147 return 0;
1148 break;
1149 case VK_F1:
1150 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1151 return 0;
1152 break;
[1080]1153 }
1154 }
1155 break;
1156
[551]1157 case UM_FOCUSME:
1158 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, IDM_HELP));
1159 return 0;
[2]1160
[551]1161 case UM_UNDO:
1162 {
[917]1163 ULONG flWindowAttr = 0;
1164 ULONG ulSize = sizeof(ULONG);
[2]1165
[551]1166 if (!PrfQueryProfileData(fmprof,
[1394]1167 appname,
1168 "TreeflWindowAttr",
1169 (PVOID) & flWindowAttr, &ulSize))
1170 flWindowAttr |= (CV_TREE | CA_TREELINE | CV_ICON | CV_MINI | CV_FLOW);
[551]1171 WinCheckButton(hwnd, CFG5_ICON, ((flWindowAttr & CV_ICON) != FALSE));
1172 WinCheckButton(hwnd, CFG5_MINIICONS,
[1394]1173 ((flWindowAttr & CV_MINI) != FALSE));
[551]1174 memset(&mask, 0, sizeof(mask));
1175 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
[1394]1176 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
[551]1177 mask.fIsTree = TRUE;
[917]1178 ulSize = sizeof(MASK);
1179 if (PrfQueryProfileData(fmprof, appname, "TreeFilter", &mask, &ulSize)) {
[1394]1180 SetMask(NULL, &mask);
[2]1181 }
[551]1182 if (!mask.attrFile)
[1394]1183 mask.attrFile = (FILE_READONLY | FILE_NORMAL |
1184 FILE_ARCHIVED | FILE_DIRECTORY |
1185 FILE_HIDDEN | FILE_SYSTEM);
[551]1186 strcpy(mask.prompt, GetPString(IDS_TREEFILTERTITLETEXT));
1187 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1188 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
1189 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
1190 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
1191 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
1192 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
1193 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
1194 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
1195 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
1196 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
1197 if (TreesortFlags & SORT_FIRSTEXTENSION)
[1394]1198 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
[551]1199 else if (TreesortFlags & SORT_LASTEXTENSION)
[1394]1200 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
[551]1201 else if (TreesortFlags & SORT_SIZE)
[1394]1202 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
[551]1203 else if (TreesortFlags & SORT_EASIZE)
[1394]1204 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
[551]1205 else if (TreesortFlags & SORT_LWDATE)
[1394]1206 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
[551]1207 else if (TreesortFlags & SORT_LADATE)
[1394]1208 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
[551]1209 else if (TreesortFlags & SORT_CRDATE)
[1394]1210 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
[551]1211 else if (TreesortFlags & SORT_FILENAME)
[1394]1212 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
[551]1213 else
[1394]1214 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
[551]1215 if (TreesortFlags & SORT_REVERSE)
[1394]1216 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
[551]1217 }
1218 return 0;
[2]1219
[551]1220 case UM_SETUP5:
1221 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
[1394]1222 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
[551]1223 SetMask(NULL, &mask);
1224 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
1225 }
1226 return 0;
[2]1227
[551]1228 case WM_CONTROL:
1229 switch (SHORT1FROMMP(mp1)) {
1230 case CFG5_FILTER:
1231 switch (SHORT2FROMMP(mp1)) {
1232 case EN_SETFOCUS:
[1394]1233 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
1234 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
1235 break;
[2]1236 }
[551]1237 break;
1238 }
1239 return 0;
[2]1240
[551]1241 case WM_COMMAND:
1242 switch (SHORT1FROMMP(mp1)) {
1243 case IDM_UNDO:
1244 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1245 break;
[2]1246
[551]1247 case DID_CANCEL:
1248 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]1249
[551]1250 case DID_OK:
1251 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1252 break;
[2]1253
[551]1254 case IDM_HELP:
1255 if (hwndHelp)
[1394]1256 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1257 MPFROM2SHORT(HELP_TREEVIEW, 0),
1258 MPFROMSHORT(HM_RESOURCEID));
[551]1259 break;
1260 }
1261 return 0;
[2]1262
[551]1263 case WM_CLOSE:
1264 {
1265 ULONG flWindowAttr = 0;
[2]1266
[551]1267 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
[1394]1268 flWindowAttr |= CV_ICON;
[551]1269 else
[1394]1270 flWindowAttr |= CV_TEXT;
[551]1271 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
[1394]1272 flWindowAttr |= CV_MINI;
[551]1273 flWindowAttr |= (CV_TREE | CV_FLOW | CA_TREELINE);
1274 PrfWriteProfileData(fmprof,
[1394]1275 appname,
1276 "TreeflWindowAttr", &flWindowAttr, sizeof(ULONG));
[551]1277 if (hwndTree) {
[2]1278
[1394]1279 CNRINFO cnri;
[2]1280
[1394]1281 memset(&cnri, 0, sizeof(cnri));
1282 cnri.cb = sizeof(cnri);
1283 WinSendMsg(WinWindowFromID
1284 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
1285 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
1286 cnri.flWindowAttr = flWindowAttr;
1287 WinSendMsg(WinWindowFromID
1288 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
1289 CM_SETCNRINFO, MPFROMP(&cnri),
1290 MPFROMLONG(CMA_FLWINDOWATTR));
[2]1291 }
[551]1292 }
1293 TreesortFlags = 0;
1294 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
1295 TreesortFlags |= SORT_FILENAME;
1296 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
1297 TreesortFlags |= SORT_SIZE;
1298 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
1299 TreesortFlags |= SORT_EASIZE;
1300 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
1301 TreesortFlags |= SORT_FIRSTEXTENSION;
1302 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
1303 TreesortFlags |= SORT_LASTEXTENSION;
1304 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
1305 TreesortFlags |= SORT_LWDATE;
1306 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
1307 TreesortFlags |= SORT_LADATE;
1308 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
1309 TreesortFlags |= SORT_CRDATE;
1310 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
1311 TreesortFlags |= SORT_DIRSFIRST;
1312 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
1313 TreesortFlags |= SORT_DIRSLAST;
1314 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
1315 TreesortFlags |= SORT_REVERSE;
1316 PrfWriteProfileData(fmprof, appname, "TreeSort", &TreesortFlags,
[1394]1317 sizeof(INT));
[551]1318 if (hwndTree)
1319 PostMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_RESORT, 0), MPVOID);
1320 *mask.prompt = 0;
1321 PrfWriteProfileData(fmprof, appname, "TreeFilter", &mask, sizeof(MASK));
1322 if (hwndTree) {
[2]1323
[551]1324 DIRCNRDATA *dcd;
[2]1325
[551]1326 dcd = WinQueryWindowPtr(WinWindowFromID(WinWindowFromID(hwndTree,
[1394]1327 FID_CLIENT),
1328 TREE_CNR), QWL_USER);
[551]1329 if (dcd && dcd->size == sizeof(DIRCNRDATA)) {
[1394]1330 dcd->mask = mask;
1331 PostMsg(hwndTree, UM_FILTER, MPVOID, MPVOID);
[2]1332 }
[551]1333 }
1334 break;
[2]1335 }
[551]1336 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]1337}
1338
[551]1339MRESULT EXPENTRY CfgTDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1340{
[1096]1341 BOOL fShowEnvChanged = FALSE;
1342 BOOL fTreeEnvVarListChanged = FALSE;
1343
[551]1344 switch (msg) {
1345 case WM_INITDLG:
[1083]1346 WinSendDlgItemMsg(hwnd, CFGT_ENVVARLIST, EM_SETTEXTLIMIT,
[1394]1347 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[551]1348 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1349 break;
[2]1350
[551]1351 case UM_UNDO:
1352 WinCheckButton(hwnd, CFGT_FOLLOWTREE, fFollowTree);
1353 WinCheckButton(hwnd, CFGT_TOPDIR, fTopDir);
1354 WinCheckButton(hwnd, CFGT_DCOPENS, fDCOpens);
1355 WinCheckButton(hwnd, CFGT_VTREEOPENSWPS, fVTreeOpensWPS);
1356 WinCheckButton(hwnd, CFGT_COLLAPSEFIRST, fCollapseFirst);
1357 WinCheckButton(hwnd, CFGT_SWITCHTREEONFOCUS, fSwitchTreeOnFocus);
1358 WinCheckButton(hwnd, CFGT_SWITCHTREE, fSwitchTree);
1359 WinCheckButton(hwnd, CFGT_SWITCHTREEEXPAND, fSwitchTreeExpand);
1360 WinCheckButton(hwnd, CFGT_SHOWENV, fShowEnv);
[1083]1361 WinSetDlgItemText(hwnd, CFGT_ENVVARLIST, pszTreeEnvVarList);
[551]1362 return 0;
[2]1363
[1080]1364 case WM_HELP:
1365 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1366 break;
1367
1368 case WM_CHAR:
1369 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1370 switch (CHARMSG(&msg)->vkey) {
[1394]1371 case VK_F3:
1372 case VK_ENTER:
1373 case VK_NEWLINE:
1374 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1375 return 0;
1376 break;
1377 case VK_ESC:
1378 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1379 return 0;
1380 break;
1381 case VK_F1:
1382 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1383 return 0;
1384 break;
[1080]1385 }
1386 }
1387 break;
1388
[551]1389 case WM_COMMAND:
1390 switch (SHORT1FROMMP(mp1)) {
1391 case IDM_UNDO:
1392 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1393 break;
[2]1394
[551]1395 case DID_CANCEL:
1396 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]1397
[551]1398 case DID_OK:
1399 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1400 break;
[2]1401
[551]1402 case IDM_HELP:
1403 if (hwndHelp)
[1394]1404 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1405 MPFROM2SHORT(HELP_CFGT, 0), MPFROMSHORT(HM_RESOURCEID));
[551]1406 break;
1407 }
1408 return 0;
[2]1409
[551]1410 case WM_CLOSE:
1411 fVTreeOpensWPS = WinQueryButtonCheckstate(hwnd, CFGT_VTREEOPENSWPS);
1412 PrfWriteProfileData(fmprof, FM3Str, "VTreeOpensWPS", &fVTreeOpensWPS,
[1394]1413 sizeof(BOOL));
[551]1414 fCollapseFirst = WinQueryButtonCheckstate(hwnd, CFGT_COLLAPSEFIRST);
1415 PrfWriteProfileData(fmprof, appname, "CollapseFirst", &fCollapseFirst,
[1394]1416 sizeof(BOOL));
[551]1417 fSwitchTreeOnFocus = WinQueryButtonCheckstate(hwnd,
[1394]1418 CFGT_SWITCHTREEONFOCUS);
[551]1419 PrfWriteProfileData(fmprof, appname, "SwitchTreeOnFocus",
[1394]1420 &fSwitchTreeOnFocus, sizeof(BOOL));
[551]1421 fSwitchTreeExpand = WinQueryButtonCheckstate(hwnd, CFGT_SWITCHTREEEXPAND);
1422 PrfWriteProfileData(fmprof, appname, "SwitchTreeExpand",
[1394]1423 &fSwitchTreeExpand, sizeof(BOOL));
[551]1424 fSwitchTree = WinQueryButtonCheckstate(hwnd, CFGT_SWITCHTREE);
1425 PrfWriteProfileData(fmprof, appname, "SwitchTree", &fSwitchTree,
[1394]1426 sizeof(BOOL));
[551]1427 fFollowTree = WinQueryButtonCheckstate(hwnd, CFGT_FOLLOWTREE);
1428 PrfWriteProfileData(fmprof, appname, "FollowTree", &fFollowTree,
[1394]1429 sizeof(BOOL));
[551]1430 fTopDir = WinQueryButtonCheckstate(hwnd, CFGT_TOPDIR);
1431 PrfWriteProfileData(fmprof, appname, "TopDir", (PVOID) & fTopDir,
[1394]1432 sizeof(BOOL));
[551]1433 fDCOpens = WinQueryButtonCheckstate(hwnd, CFGT_DCOPENS);
1434 PrfWriteProfileData(fmprof, FM3Str, "DoubleClickOpens", &fDCOpens,
[1394]1435 sizeof(BOOL));
[1096]1436 fShowEnvChanged = (fShowEnv != WinQueryButtonCheckstate(hwnd, CFGT_SHOWENV));
[551]1437 fShowEnv = WinQueryButtonCheckstate(hwnd, CFGT_SHOWENV);
1438 PrfWriteProfileData(fmprof, appname, "ShowEnv", &fShowEnv, sizeof(BOOL));
[1083]1439 {
[1096]1440 char * pszTemp = xmalloc(WinQueryDlgItemTextLength(hwnd, CFGT_ENVVARLIST) + 1, pszSrcFile, __LINE__);
[1103]1441 if (pszTemp) {
[1394]1442 WinQueryDlgItemText(hwnd, CFGT_ENVVARLIST, MaxComLineStrg, pszTemp);
1443 strupr(pszTemp);
1444 if (strcmp(pszTemp, pszTreeEnvVarList)) {
1445 fTreeEnvVarListChanged = TRUE;
1446 strcpy(pszTreeEnvVarList, pszTemp);
1447 PrfWriteProfileString(fmprof, appname, "TreeEnvVarList", pszTreeEnvVarList);
1448 }
1449 free(pszTemp);
[1083]1450 }
[1096]1451 if (hwndTree && (fShowEnvChanged || (fShowEnv && fTreeEnvVarListChanged)))
1452 {
[1394]1453 PCNRITEM pci = WinSendMsg(WinWindowFromID
1454 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR), CM_QUERYRECORDEMPHASIS,
1455 MPFROMLONG(CMA_FIRST),
1456 MPFROMSHORT(CRA_SELECTED));
1457 PostMsg(WinWindowFromID
1458 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR), WM_COMMAND,
1459 MPFROM2SHORT(IDM_RESCAN, 0), MPVOID);
1460 pszTemp = xstrdup(pci->pszFileName, pszSrcFile, __LINE__);
1461 if (pszTemp) {
1462 if (!PostMsg(hwndTree, UM_SHOWME, MPFROMP(pszTemp), MPVOID))
1463 free(pszTemp);
1464 /* pszTemp is freed in the UM_SHOWME code */
1465 }
[1096]1466 }
[1083]1467 }
[551]1468 break;
[2]1469 }
[551]1470 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]1471}
1472
[551]1473MRESULT EXPENTRY CfgGDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1474{
[551]1475 switch (msg) {
1476 case WM_INITDLG:
[985]1477 WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_SETTEXTLIMIT,
[1394]1478 MPFROMSHORT(8), MPVOID);
[985]1479 WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_OVERRIDESETLIMITS,
[1394]1480 MPFROMLONG(CMDLNLNGTH_MAX), MPFROMLONG(CMDLNLNGTH_MIN));
[551]1481 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1482 break;
[2]1483
[1080]1484 case WM_HELP:
1485 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1486 break;
1487
1488 case WM_CHAR:
1489 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1490 switch (CHARMSG(&msg)->vkey) {
[1394]1491 case VK_F3:
1492 case VK_ENTER:
1493 case VK_NEWLINE:
1494 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1495 return 0;
1496 break;
1497 case VK_ESC:
1498 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1499 return 0;
1500 break;
1501 case VK_F1:
1502 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1503 return 0;
1504 break;
[1080]1505 }
1506 }
1507 break;
1508
[551]1509 case UM_UNDO:
1510 WinCheckButton(hwnd, CFGG_CONFIRMDELETE, fConfirmDelete);
1511 WinCheckButton(hwnd, CFGG_VERIFYWRITES, fVerify);
1512 WinCheckButton(hwnd, CFGG_LINKSETSICON, fLinkSetsIcon);
1513 WinCheckButton(hwnd, CFGG_DONTMOVEMOUSE, fDontMoveMouse);
1514 WinCheckButton(hwnd, CFGG_DEFAULTCOPY, fCopyDefault);
1515 WinCheckButton(hwnd, CFGG_IDLECOPY, fRealIdle);
1516 WinCheckButton(hwnd, CFGG_DNDDLG, fDragndropDlg);
1517 WinCheckButton(hwnd, CFGG_DEFAULTDELETEPERM, fDefaultDeletePerm);
[1395]1518 WinCheckButton(hwnd, CFGG_ERRORBEEPOFF, fErrorBeepOff);
1519 WinCheckButton(hwnd, CFGG_ALERTBEEPOFF, fAlertBeepOff);
[551]1520 {
[575]1521 long th = fNoFinger ? 2 : (fNoDead ? 1 : 0);
[551]1522 WinCheckButton(hwnd, CFGG_NODEAD, th);
1523 }
1524 WinCheckButton(hwnd, CFGG_BORING, fDullMin);
1525 WinCheckButton(hwnd, CFGG_CUSTOMFILEDLG, fCustomFileDlg);
1526 WinCheckButton(hwnd, CFGG_FM2DELETES, fFM2Deletes);
1527 WinCheckButton(hwnd, CFGG_CONFIRMTARGET, fConfirmTarget);
1528 WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
[1041]1529 WinCheckButton(hwnd, CFGG_TRASHCAN, fTrashCan);
[985]1530 WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_SETCURRENTVALUE,
[1394]1531 MPFROMLONG(MaxComLineStrg), MPVOID);
[551]1532 return 0;
[2]1533
[551]1534 case UM_FOCUSME:
1535 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, IDM_HELP));
1536 return 0;
[2]1537
[551]1538 case UM_SETUP5:
1539 SetTargetDir(hwnd, FALSE);
1540 WinSetDlgItemText(hwnd, CFGG_TARGETDIR, targetdir);
1541 return 0;
[2]1542
[551]1543 case WM_CONTROL:
1544 switch (SHORT1FROMMP(mp1)) {
1545 case CFGG_TARGETDIR:
1546 switch (SHORT2FROMMP(mp1)) {
1547 case EN_SETFOCUS:
[1394]1548 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
1549 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
1550 break;
[2]1551 }
[551]1552 break;
1553 }
1554 return 0;
[2]1555
[551]1556 case WM_COMMAND:
1557 switch (SHORT1FROMMP(mp1)) {
1558 case IDM_UNDO:
1559 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1560 break;
[2]1561
[551]1562 case DID_CANCEL:
1563 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]1564
[551]1565 case DID_OK:
1566 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1567 break;
[2]1568
[551]1569 case IDM_HELP:
1570 if (hwndHelp)
[1394]1571 WinSendMsg(hwndHelp,
1572 HM_DISPLAY_HELP,
1573 MPFROM2SHORT(HELP_CFGG, 0), MPFROMSHORT(HM_RESOURCEID));
[551]1574 break;
1575 }
1576 return 0;
[2]1577
[551]1578 case WM_CLOSE:
1579 {
1580 long test;
[2]1581
[551]1582 test = WinQueryButtonCheckstate(hwnd, CFGG_NODEAD);
1583 fNoDead = (test == 1);
1584 fNoFinger = (test == 2);
1585 PrfWriteProfileData(fmprof, FM3Str, "NoDead", &fNoDead, sizeof(BOOL));
[2]1586 PrfWriteProfileData(fmprof,
[1394]1587 FM3Str, "NoFinger", &fNoFinger, sizeof(BOOL));
[551]1588 WinDestroyPointer(hptrFinger);
1589 if (!fNoDead)
[1394]1590 hptrFinger = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, FINGER_ICON);
[551]1591 else
[1394]1592 hptrFinger = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, FINGER2_ICON);
[551]1593 }
1594 fLinkSetsIcon = WinQueryButtonCheckstate(hwnd, CFGG_LINKSETSICON);
1595 PrfWriteProfileData(fmprof,
[1394]1596 appname,
1597 "LinkSetsIcon", &fLinkSetsIcon, sizeof(BOOL));
[551]1598 fCustomFileDlg = WinQueryButtonCheckstate(hwnd, CFGG_CUSTOMFILEDLG);
1599 PrfWriteProfileData(fmprof,
[1394]1600 FM3Str,
1601 "CustomFileDlg", &fCustomFileDlg, sizeof(BOOL));
[551]1602 fDullMin = WinQueryButtonCheckstate(hwnd, CFGG_BORING);
1603 PrfWriteProfileData(fmprof,
[1394]1604 FM3Str, "DullDatabar", &fDullMin, sizeof(BOOL));
[551]1605 fConfirmDelete = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMDELETE);
1606 PrfWriteProfileData(fmprof,
[1394]1607 appname,
1608 "ConfirmDelete", &fConfirmDelete, sizeof(BOOL));
[551]1609 fDontMoveMouse = WinQueryButtonCheckstate(hwnd, CFGG_DONTMOVEMOUSE);
1610 PrfWriteProfileData(fmprof,
[1394]1611 appname,
1612 "DontMoveMouse", &fDontMoveMouse, sizeof(BOOL));
[551]1613 fCopyDefault = WinQueryButtonCheckstate(hwnd, CFGG_DEFAULTCOPY);
1614 PrfWriteProfileData(fmprof, appname, "DefaultCopy",
[1394]1615 &fCopyDefault, sizeof(BOOL));
[551]1616 fRealIdle = WinQueryButtonCheckstate(hwnd, CFGG_IDLECOPY);
1617 PrfWriteProfileData(fmprof, appname, "IdleCopy",
[1394]1618 &fRealIdle, sizeof(BOOL));
[551]1619 fDragndropDlg = WinQueryButtonCheckstate(hwnd, CFGG_DNDDLG);
1620 PrfWriteProfileData(fmprof, appname, "Drag&DropDlg",
[1394]1621 &fDragndropDlg, sizeof(BOOL));
[551]1622 fVerify = WinQueryButtonCheckstate(hwnd, CFGG_VERIFYWRITES);
1623 PrfWriteProfileData(fmprof, appname, "VerifyWrites",
[1394]1624 &fVerify, sizeof(BOOL));
[551]1625 DosSetVerify(fVerify);
1626 fDefaultDeletePerm = WinQueryButtonCheckstate(hwnd,
[1394]1627 CFGG_DEFAULTDELETEPERM);
[551]1628 PrfWriteProfileData(fmprof, appname, "DefaultDeletePerm",
[1394]1629 &fDefaultDeletePerm, sizeof(BOOL));
[551]1630 fFM2Deletes = WinQueryButtonCheckstate(hwnd, CFGG_FM2DELETES);
1631 PrfWriteProfileData(fmprof, FM3Str, "FM2Deletes",
[1394]1632 &fFM2Deletes, sizeof(BOOL));
[1041]1633 fTrashCan = WinQueryButtonCheckstate(hwnd, CFGG_TRASHCAN);
1634 PrfWriteProfileData(fmprof, FM3Str, "TrashCan",
[1394]1635 &fTrashCan, sizeof(BOOL));
[551]1636 fConfirmTarget = WinQueryButtonCheckstate(hwnd, CFGG_CONFIRMTARGET);
1637 PrfWriteProfileData(fmprof, appname, "ConfirmTarget",
[1395]1638 &fConfirmTarget, sizeof(BOOL));
1639 fAlertBeepOff = WinQueryButtonCheckstate(hwnd, CFGG_ALERTBEEPOFF);
1640 PrfWriteProfileData(fmprof, appname, "AlertBeepOff",
1641 &fAlertBeepOff, sizeof(BOOL));
1642 fErrorBeepOff = WinQueryButtonCheckstate(hwnd, CFGG_ERRORBEEPOFF);
1643 PrfWriteProfileData(fmprof, appname, "ErrorBeepOff",
1644 &fErrorBeepOff, sizeof(BOOL));
[985]1645 {
1646 WinSendDlgItemMsg(hwnd, CFGG_CMDLNLNGTH, SPBM_QUERYVALUE,
[1394]1647 MPFROMP(&MaxComLineStrg), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
[985]1648 if (MaxComLineStrg < CMDLNLNGTH_MIN)
[1394]1649 MaxComLineStrg = CMDLNLNGTH_MIN;
[985]1650 else if (MaxComLineStrg > CMDLNLNGTH_MAX)
[1394]1651 MaxComLineStrg = CMDLNLNGTH_MAX;
[985]1652 PrfWriteProfileData(fmprof,
[1394]1653 appname, "MaxComLineStrg", &MaxComLineStrg, sizeof(ULONG));
[985]1654 }
[551]1655 break;
[2]1656 }
[551]1657 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]1658}
1659
[551]1660MRESULT EXPENTRY CfgCDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1661{
[551]1662 switch (msg) {
1663 case WM_INITDLG:
1664 WinSendDlgItemMsg(hwnd, CFGC_COMPARE, EM_SETTEXTLIMIT,
[1394]1665 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[551]1666 WinSendDlgItemMsg(hwnd, CFGC_DIRCOMPARE, EM_SETTEXTLIMIT,
[1394]1667 MPFROM2SHORT(MaxComLineStrg, 0), MPVOID);
[551]1668 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
1669 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1670 break;
[2]1671
[1080]1672 case WM_HELP:
1673 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1674 break;
1675
1676 case WM_CHAR:
1677 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1678 switch (CHARMSG(&msg)->vkey) {
[1394]1679 case VK_F3:
1680 case VK_ENTER:
1681 case VK_NEWLINE:
1682 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1683 return 0;
1684 break;
1685 case VK_ESC:
1686 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1687 return 0;
1688 break;
1689 case VK_F1:
1690 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1691 return 0;
1692 break;
[1080]1693 }
1694 }
1695 break;
1696
[551]1697 case UM_UNDO:
1698 WinSetDlgItemText(hwnd, CFGC_COMPARE, compare);
1699 WinSetDlgItemText(hwnd, CFGC_DIRCOMPARE, dircompare);
1700 return 0;
[2]1701
[551]1702 case WM_CONTROL:
1703 switch (SHORT1FROMMP(mp1)) {
1704 case CFGC_COMPARE:
1705 case CFGC_DIRCOMPARE:
1706 switch (SHORT2FROMMP(mp1)) {
1707 case EN_KILLFOCUS:
[1394]1708 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE);
1709 break;
[551]1710 case EN_SETFOCUS:
[1394]1711 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), TRUE);
1712 break;
[2]1713 }
[551]1714 break;
1715 }
1716 return 0;
[2]1717
[551]1718 case WM_COMMAND:
1719 switch (SHORT1FROMMP(mp1)) {
1720 case IDM_UNDO:
1721 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1722 break;
[2]1723
[551]1724 case DID_CANCEL:
1725 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]1726
[551]1727 case DID_OK:
1728 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1729 break;
[2]1730
[551]1731 case IDM_HELP:
1732 if (hwndHelp)
[1394]1733 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1734 MPFROM2SHORT(HELP_CFGC, 0), MPFROMSHORT(HM_RESOURCEID));
[551]1735 break;
[2]1736
[551]1737 case CFGC_FIND:
1738 {
[1394]1739 CHAR filename[CCHMAXPATH + 9], szfilename[CCHMAXPATH + 9];
1740 USHORT id;
1741 HWND hwndFocus;
[2]1742
[1395]1743 strcpy(filename, PCSZ_STARDOTEXE);
[1394]1744 hwndFocus = WinQueryFocus(HWND_DESKTOP);
1745 if (hwndFocus) {
1746 id = WinQueryWindowUShort(hwndFocus, QWS_ID);
1747 switch (id) {
1748 case CFGC_COMPARE:
1749 case CFGC_DIRCOMPARE:
1750 if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
1751 BldQuotedFileName(szfilename, filename);
1752 strcat(szfilename, " %a");
1753 WinSetDlgItemText(hwnd, id, szfilename);
1754 }
1755 break;
1756 default:
1757 Runtime_Error(pszSrcFile, __LINE__, "bad case %d", id);
1758 break;
1759 }
1760 }
[2]1761 }
[551]1762 break;
1763 }
1764 return 0;
[2]1765
[551]1766 case WM_CLOSE:
[888]1767 {
[985]1768 CHAR *szCLBuf;
[920]1769 PSZ pszWorkBuf;
[888]1770
[985]1771 szCLBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
[1394]1772 if (!szCLBuf)
1773 return 0; //already complained
[985]1774 pszWorkBuf = xmalloc(MaxComLineStrg, pszSrcFile, __LINE__);
1775 if (!pszWorkBuf) {
[1394]1776 free(szCLBuf);
1777 return 0; //already complained
[985]1778 }
1779 WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, MaxComLineStrg, szCLBuf);
[1394]1780 szCLBuf[MaxComLineStrg - 1] = 0;
1781 if (strcmp(szCLBuf, dircompare)){
1782 NormalizeCmdLine(pszWorkBuf, szCLBuf);
1783 memcpy(dircompare, pszWorkBuf, strlen(pszWorkBuf) + 1);
1784 if (!strchr(dircompare, '%') && strlen(dircompare) > 3)
1785 strcat(dircompare, " %a");
1786 }
[888]1787 PrfWriteProfileString(fmprof, appname, "DirCompare", dircompare);
[985]1788 WinQueryDlgItemText(hwnd, CFGC_COMPARE, MaxComLineStrg, szCLBuf);
1789 szCLBuf[MaxComLineStrg - 1] = 0;
1790 if (strcmp(szCLBuf, compare)){
[1394]1791 NormalizeCmdLine(pszWorkBuf, szCLBuf);
1792 memcpy(compare, pszWorkBuf, strlen(pszWorkBuf) + 1);
1793 if (!strchr(compare, '%') && strlen(compare) > 3)
1794 strcat(compare, " %a");
[985]1795 }
[1039]1796 free(pszWorkBuf);
1797 free(szCLBuf);
[888]1798 PrfWriteProfileString(fmprof, appname, "Compare", compare);
1799 break;
1800 }
[2]1801 }
[917]1802 if (fCancelAction) {
[906]1803 fCancelAction = FALSE;
1804 WinDlgBox(HWND_DESKTOP,
[1394]1805 hwnd,
1806 CfgDlgProc,
1807 FM3ModHandle,
1808 CFG_FRAME,
1809 MPFROMLONG(IDM_COMPARESETTINGS));
[906]1810 }
[551]1811 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]1812}
1813
[551]1814MRESULT EXPENTRY CfgDDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1815{
[1080]1816
[551]1817 switch (msg) {
1818 case WM_INITDLG:
1819 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1820 break;
[2]1821
[551]1822 case UM_UNDO:
1823 WinCheckButton(hwnd, CFGD_UNHILITE, fUnHilite);
1824 WinCheckButton(hwnd, CFGD_SYNCUPDATES, fSyncUpdates);
1825 WinCheckButton(hwnd, CFGD_LOOKINDIR, fLookInDir);
1826 WinCheckButton(hwnd, CFGD_MINONOPEN, fMinOnOpen);
1827 WinCheckButton(hwnd, CFGD_SELECTEDALWAYS, fSelectedAlways);
1828 WinCheckButton(hwnd, CFGD_NOSEARCH, fNoSearch);
1829 WinCheckButton(hwnd, CFGD_EXTENDEDSEL,
[1394]1830 ((ulCnrType & CCS_EXTENDSEL) != 0));
[551]1831 WinCheckButton(hwnd, CFGD_MULTIPLESEL,
[1394]1832 ((ulCnrType & CCS_MULTIPLESEL) != 0));
[551]1833 WinCheckButton(hwnd, CFGD_LEAVETREE, fLeaveTree);
1834 WinCheckButton(hwnd, CFGD_NOFOLDMENU, fNoFoldMenu);
1835 return 0;
[2]1836
[1080]1837 case WM_HELP:
1838 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1839 break;
1840
1841 case WM_CHAR:
1842 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1843 switch (CHARMSG(&msg)->vkey) {
[1394]1844 case VK_F3:
1845 case VK_ENTER:
1846 case VK_NEWLINE:
1847 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1848 return 0;
1849 break;
1850 case VK_ESC:
1851 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1852 return 0;
1853 break;
1854 case VK_F1:
1855 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1856 return 0;
1857 break;
[1080]1858 }
1859 }
1860 break;
1861
[551]1862 case WM_COMMAND:
1863 switch (SHORT1FROMMP(mp1)) {
1864 case IDM_UNDO:
1865 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1866 break;
[2]1867
[551]1868 case DID_CANCEL:
1869 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]1870
[551]1871 case DID_OK:
1872 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
1873 break;
[2]1874
[551]1875 case IDM_HELP:
1876 if (hwndHelp)
[1394]1877 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
1878 MPFROM2SHORT(HELP_CFGD, 0), MPFROMSHORT(HM_RESOURCEID));
[551]1879 break;
1880 }
1881 return 0;
[2]1882
[551]1883 case WM_CLOSE:
1884 ulCnrType = 0;
1885 if (WinQueryButtonCheckstate(hwnd, CFGD_EXTENDEDSEL))
1886 ulCnrType |= CCS_EXTENDSEL;
1887 if (WinQueryButtonCheckstate(hwnd, CFGD_MULTIPLESEL))
1888 ulCnrType |= CCS_MULTIPLESEL;
1889 PrfWriteProfileData(fmprof, appname, "ContainerType",
[1394]1890 (PVOID) & ulCnrType, sizeof(BOOL));
[551]1891 fMinOnOpen = WinQueryButtonCheckstate(hwnd, CFGD_MINONOPEN);
1892 PrfWriteProfileData(fmprof, FM3Str, "MinDirOnOpen", &fMinOnOpen,
[1394]1893 sizeof(BOOL));
[551]1894 fLeaveTree = WinQueryButtonCheckstate(hwnd, CFGD_LEAVETREE);
1895 PrfWriteProfileData(fmprof, appname, "LeaveTree", &fLeaveTree,
[1394]1896 sizeof(BOOL));
[551]1897 fNoFoldMenu = WinQueryButtonCheckstate(hwnd, CFGD_NOFOLDMENU);
1898 PrfWriteProfileData(fmprof, appname, "NoFoldMenu", &fNoFoldMenu,
[1394]1899 sizeof(BOOL));
[551]1900 fSelectedAlways = WinQueryButtonCheckstate(hwnd, CFGD_SELECTEDALWAYS);
1901 PrfWriteProfileData(fmprof, appname, "SelectedAlways", &fSelectedAlways,
[1394]1902 sizeof(BOOL));
[551]1903 fNoSearch = WinQueryButtonCheckstate(hwnd, CFGD_NOSEARCH);
1904 PrfWriteProfileData(fmprof, appname, "NoSearch", &fNoSearch,
[1394]1905 sizeof(BOOL));
[551]1906 fLookInDir = WinQueryButtonCheckstate(hwnd, CFGD_LOOKINDIR);
1907 PrfWriteProfileData(fmprof, FM3Str, "LookInDir", (PVOID) & fLookInDir,
[1394]1908 sizeof(BOOL));
[551]1909 fUnHilite = WinQueryButtonCheckstate(hwnd, CFGD_UNHILITE);
1910 PrfWriteProfileData(fmprof, appname, "UnHilite",
[1394]1911 &fUnHilite, sizeof(BOOL));
[551]1912 {
[961]1913 BOOL fOldSyncUpdates = WinQueryButtonCheckstate(hwnd, CFGD_SYNCUPDATES);
[2]1914
[961]1915 if (fOldSyncUpdates != fSyncUpdates) {
[1394]1916 fSyncUpdates = fOldSyncUpdates;
1917 if (hwndMain && !strcmp(realappname, FM3Str)) {
1918 // Save state and restore to refresh windows with new settings
1919 if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT)) > 0) {
1920 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2));
[1161]1921// PostMsg(hwndMain, UM_RESTORE, MPVOID, MPVOID);
[1394]1922 PostMsg(MainObjectHwnd, UM_RESTORE, (PSZ)GetPString(IDS_FM2TEMPTEXT), MPVOID);
1923 }
1924 }
[2]1925 }
[551]1926 }
1927 PrfWriteProfileData(fmprof, appname, "SyncUpdates",
[1394]1928 &fSyncUpdates, sizeof(BOOL));
[551]1929 if (!(ulCnrType & (CCS_EXTENDSEL | CCS_MULTIPLESEL)))
1930 saymsg(MB_ENTER | MB_ICONEXCLAMATION,
[1394]1931 HWND_DESKTOP,
1932 GetPString(IDS_WARNINGTEXT),
1933 GetPString(IDS_SELECTTYPEERRORTEXT));
[1161]1934 break; // WM_CLOSE
[2]1935 }
[551]1936 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]1937}
1938
[551]1939MRESULT EXPENTRY CfgMDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]1940{
[551]1941 switch (msg) {
1942 case WM_INITDLG:
1943 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
1944 break;
[2]1945
[1080]1946 case WM_HELP:
1947 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
1948 break;
1949
1950 case WM_CHAR:
1951 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
1952 switch (CHARMSG(&msg)->vkey) {
[1394]1953 case VK_F3:
1954 case VK_ENTER:
1955 case VK_NEWLINE:
1956 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
1957 return 0;
1958 break;
1959 case VK_ESC:
1960 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
1961 return 0;
1962 break;
1963 case VK_F1:
1964 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
1965 return 0;
1966 break;
[1080]1967 }
1968 }
1969 break;
1970
[551]1971 case UM_UNDO:
1972 WinCheckButton(hwnd, CFGM_EXTERNALINIS, fExternalINIs);
1973 WinCheckButton(hwnd, CFGM_EXTERNALARCBOXES, fExternalArcboxes);
1974 WinCheckButton(hwnd, CFGM_EXTERNALVIEWER, fExternalViewer);
1975 WinCheckButton(hwnd, CFGM_EXTERNALCOLLECTOR, fExternalCollector);
1976 WinCheckButton(hwnd, CFGM_SAVESTATE, fSaveState);
1977 WinCheckButton(hwnd, CFGM_AUTOTILE, (fAutoTile));
1978 WinCheckButton(hwnd, CFGM_FREETREE, (fFreeTree));
1979 WinCheckButton(hwnd, CFGM_SPLITSTATUS, (fSplitStatus));
1980 WinCheckButton(hwnd, CFGM_NOTREEGAP, (fNoTreeGap));
1981 WinCheckButton(hwnd, CFGM_STARTMIN, (fStartMinimized));
1982 WinCheckButton(hwnd, CFGM_STARTMAX, (fStartMaximized));
1983 WinCheckButton(hwnd, CFGM_DATAMIN, (fDataMin));
1984 WinCheckButton(hwnd, CFGM_TILEBACKWARDS, (fTileBackwards));
1985 {
1986 long th;
[2]1987
[551]1988 th = (fAutoAddDirs && fAutoAddAllDirs) ? 2 : (fAutoAddDirs) ? 1 : 0;
1989 WinCheckButton(hwnd, CFGM_RECENTDIRS, th);
1990 WinSendMsg(hwnd, UM_RESTORE, MPFROM2SHORT(CFGM_RECENTDIRS, 0), MPVOID);
1991 }
1992 WinCheckButton(hwnd, CFGM_USERLISTSWITCHES, fUserListSwitches);
1993 WinCheckButton(hwnd, CFGM_WSANIMATE, (fwsAnimate != 0));
1994 WinCheckButton(hwnd, CFGM_SEPARATEPARMS, fSeparateParms);
1995 WinCheckButton(hwnd, CFGM_BLUELED, fBlueLED);
1996 WinCheckButton(hwnd, CFGM_SHOWTARGET, fShowTarget);
1997 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), !(fStartMinimized));
1998 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), !(fStartMaximized));
1999 return 0;
[2]2000
[551]2001 case UM_RESTORE:
2002 {
2003 long test;
2004 BOOL th, oh;
2005 char s[80];
[2]2006
[551]2007 test = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
2008 th = (test != 0);
2009 oh = (test == 1);
2010 *s = 0;
2011 switch (SHORT1FROMMP(mp1)) {
2012 case CFGM_RECENTDIRS:
[1394]2013 sprintf(s,
2014 GetPString(IDS_RECENTHELPWHICHTEXT),
2015 (!oh && th) ?
2016 GetPString(IDS_RECENTONLYTEXT) :
2017 (oh && th) ?
2018 GetPString(IDS_ALLONLYTEXT) : GetPString(IDS_NONE));
2019 break;
[2]2020 }
[551]2021 if (*s)
[1394]2022 WinSetDlgItemText(hwnd, SHORT1FROMMP(mp1), s);
[551]2023 }
2024 return 0;
[2]2025
[551]2026 case WM_CONTROL:
2027 switch (SHORT1FROMMP(mp1)) {
2028 case CFGM_RECENTDIRS:
2029 WinSendMsg(hwnd, UM_RESTORE, mp1, MPVOID);
2030 break;
2031 case CFGM_STARTMIN:
2032 if (WinQueryButtonCheckstate(hwnd, CFGM_STARTMIN)) {
[1394]2033 WinCheckButton(hwnd, CFGM_STARTMAX, FALSE);
2034 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), FALSE);
[2]2035 }
[551]2036 else
[1394]2037 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMAX), TRUE);
[551]2038 break;
2039 case CFGM_STARTMAX:
2040 if (WinQueryButtonCheckstate(hwnd, CFGM_STARTMAX)) {
[1394]2041 WinCheckButton(hwnd, CFGM_STARTMIN, FALSE);
2042 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), FALSE);
[551]2043 }
2044 else
[1394]2045 WinEnableWindow(WinWindowFromID(hwnd, CFGM_STARTMIN), TRUE);
[551]2046 break;
2047 }
2048 return 0;
[2]2049
[551]2050 case WM_COMMAND:
2051 switch (SHORT1FROMMP(mp1)) {
2052 case IDM_UNDO:
2053 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2054 break;
[2]2055
[551]2056 case DID_CANCEL:
2057 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]2058
[551]2059 case DID_OK:
2060 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2061 break;
[2]2062
[551]2063 case IDM_HELP:
2064 if (hwndHelp)
[1394]2065 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
2066 MPFROM2SHORT(HELP_CFGM, 0), MPFROMSHORT(HM_RESOURCEID));
[551]2067 break;
2068 }
2069 return 0;
[2]2070
[551]2071 case WM_CLOSE:
2072 if (hwndMain && !strcmp(realappname, FM3Str)) {
2073 if (fFreeTree != WinQueryButtonCheckstate(hwnd, CFGM_FREETREE))
[1394]2074 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_FREETREE, 0), MPVOID);
[551]2075 if (fAutoTile != WinQueryButtonCheckstate(hwnd, CFGM_AUTOTILE))
[1394]2076 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_AUTOTILE, 0), MPVOID);
[551]2077 if (fSplitStatus != WinQueryButtonCheckstate(hwnd, CFGM_SPLITSTATUS)) {
[1394]2078 fSplitStatus = (fSplitStatus) ? FALSE : TRUE;
2079 PostMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_BLINK, 0), MPVOID);
2080 PrfWriteProfileData(fmprof, FM3Str, "SplitStatus", &fSplitStatus,
2081 sizeof(BOOL));
[2]2082 }
[551]2083 }
2084 fUserListSwitches = WinQueryButtonCheckstate(hwnd, CFGM_USERLISTSWITCHES);
2085 PrfWriteProfileData(fmprof, FM3Str, "UserListSwitches",
[1394]2086 (PVOID) & fUserListSwitches, sizeof(BOOL));
[551]2087 fExternalINIs = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALINIS);
2088 PrfWriteProfileData(fmprof, FM3Str, "ExternalINIs",
[1394]2089 (PVOID) & fExternalINIs, sizeof(BOOL));
[551]2090 fExternalArcboxes = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALARCBOXES);
2091 PrfWriteProfileData(fmprof, FM3Str, "ExternalArcboxes",
[1394]2092 (PVOID) & fExternalArcboxes, sizeof(BOOL));
[551]2093 fExternalCollector =
2094 WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALCOLLECTOR);
2095 PrfWriteProfileData(fmprof, FM3Str, "ExternalCollector",
[1394]2096 (PVOID) & fExternalCollector, sizeof(BOOL));
[551]2097 fExternalViewer = WinQueryButtonCheckstate(hwnd, CFGM_EXTERNALVIEWER);
2098 PrfWriteProfileData(fmprof, FM3Str, "ExternalViewer",
[1394]2099 (PVOID) & fExternalViewer, sizeof(BOOL));
[551]2100 {
2101 long test;
[2]2102
[551]2103 test = WinQueryButtonCheckstate(hwnd, CFGM_RECENTDIRS);
2104 fAutoAddDirs = (test != 0);
2105 fAutoAddAllDirs = (test == 2);
2106 }
2107 PrfWriteProfileData(fmprof,
[1394]2108 appname,
2109 "AutoAddDirs", (PVOID) & fAutoAddDirs, sizeof(BOOL));
[551]2110 PrfWriteProfileData(fmprof,
[1394]2111 appname,
2112 "AutoAddAllDirs",
2113 (PVOID) & fAutoAddAllDirs, sizeof(BOOL));
[551]2114 fwsAnimate = WinQueryButtonCheckstate(hwnd, CFGM_WSANIMATE);
2115 if (fwsAnimate)
2116 fwsAnimate = WS_ANIMATE;
2117 PrfWriteProfileData(fmprof,
[1394]2118 appname,
2119 "WS_ANIMATE", (PVOID) & fwsAnimate, sizeof(ULONG));
[551]2120 fSaveState = WinQueryButtonCheckstate(hwnd, CFGM_SAVESTATE);
2121 PrfWriteProfileData(fmprof,
[1394]2122 FM3Str,
2123 "SaveState", (PVOID) & fSaveState, sizeof(BOOL));
[551]2124 fStartMinimized = WinQueryButtonCheckstate(hwnd, CFGM_STARTMIN);
2125 PrfWriteProfileData(fmprof,
[1394]2126 appname,
2127 "StartMinimized",
2128 (PVOID) & fStartMinimized, sizeof(BOOL));
[551]2129 fStartMaximized = WinQueryButtonCheckstate(hwnd, CFGM_STARTMAX);
2130 PrfWriteProfileData(fmprof,
[1394]2131 appname,
2132 "StartMaximized",
2133 (PVOID) & fStartMaximized, sizeof(BOOL));
[551]2134 fDataMin = WinQueryButtonCheckstate(hwnd, CFGM_DATAMIN);
2135 PrfWriteProfileData(fmprof,
[1394]2136 FM3Str, "DataMin", (PVOID) & fDataMin, sizeof(BOOL));
[551]2137 fTileBackwards = WinQueryButtonCheckstate(hwnd, CFGM_TILEBACKWARDS);
2138 PrfWriteProfileData(fmprof,
[1394]2139 FM3Str,
2140 "TileBackwards",
2141 (PVOID) & fTileBackwards, sizeof(BOOL));
[551]2142 fNoTreeGap = WinQueryButtonCheckstate(hwnd, CFGM_NOTREEGAP);
2143 PrfWriteProfileData(fmprof,
[1394]2144 FM3Str,
2145 "NoTreeGap", (PVOID) & fNoTreeGap, sizeof(BOOL));
[551]2146 fBlueLED = WinQueryButtonCheckstate(hwnd, CFGM_BLUELED);
2147 PrfWriteProfileData(fmprof,
[1394]2148 appname, "BlueLED", (PVOID) & fBlueLED, sizeof(BOOL));
[551]2149 {
2150 BOOL dummy;
[2]2151
[551]2152 dummy = WinQueryButtonCheckstate(hwnd, CFGM_SHOWTARGET);
2153 if (dummy != fShowTarget) {
[1394]2154 fShowTarget = dummy;
2155 PrfWriteProfileData(fmprof,
2156 appname,
2157 "ShowTarget",
2158 (PVOID) & fShowTarget, sizeof(BOOL));
2159 if (hwndMain)
2160 PostMsg(WinQueryWindow(hwndMain, QW_PARENT),
2161 WM_UPDATEFRAME, MPFROMLONG(FCF_SIZEBORDER), MPVOID);
2162 SetTargetDir(hwnd, TRUE);
[2]2163 }
[551]2164 dummy = WinQueryButtonCheckstate(hwnd, CFGM_SEPARATEPARMS);
2165 if (dummy != fSeparateParms) {
[1394]2166 fSeparateParms = dummy;
2167 PrfWriteProfileData(fmprof,
2168 FM3Str,
2169 "SeparateParms",
2170 (PVOID) & fSeparateParms, sizeof(BOOL));
2171 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER),
2172 UM_UNDO, MPVOID, MPVOID);
[551]2173 }
2174 }
2175 break;
[2]2176 }
[551]2177 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]2178}
2179
[551]2180MRESULT EXPENTRY Cfg5DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]2181{
[2]2182 static MASK mask;
2183
[551]2184 switch (msg) {
2185 case WM_INITDLG:
[796]2186 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_SETTEXTLIMIT,
[1394]2187 MPFROMSHORT(8), MPVOID);
[796]2188 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_OVERRIDESETLIMITS,
[1394]2189 MPFROMLONG(1000), MPFROMLONG(50));
[551]2190 WinSendDlgItemMsg(hwnd,
[1394]2191 CFG5_FILTER,
2192 EM_SETTEXTLIMIT, MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[551]2193 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2194 break;
[2]2195
[1080]2196 case WM_HELP:
2197 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
2198 break;
2199
2200 case WM_CHAR:
2201 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
2202 switch (CHARMSG(&msg)->vkey) {
[1394]2203 case VK_F3:
2204 case VK_ENTER:
2205 case VK_NEWLINE:
2206 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
2207 return 0;
2208 break;
2209 case VK_ESC:
2210 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
2211 return 0;
2212 break;
2213 case VK_F1:
2214 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
2215 return 0;
2216 break;
[1080]2217 }
2218 }
2219 break;
2220
[551]2221 case UM_FOCUSME:
2222 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, CFG5_MINIICONS));
2223 return 0;
[2]2224
[551]2225 case UM_UNDO:
2226 {
[917]2227 ULONG flWindowAttr = 0;
2228 ULONG ulSize = sizeof(ULONG);
[2]2229
[551]2230 if (!PrfQueryProfileData(fmprof,
[1394]2231 appname,
2232 "DirflWindowAttr", &flWindowAttr, &ulSize))
2233 flWindowAttr = (CV_NAME | CV_MINI | CA_DETAILSVIEWTITLES | CV_FLOW);
[551]2234 if (flWindowAttr & CV_ICON)
[1394]2235 WinCheckButton(hwnd, CFG5_ICON, TRUE);
[551]2236 if (flWindowAttr & CV_NAME)
[1394]2237 WinCheckButton(hwnd, CFG5_NAME, TRUE);
[551]2238 if (flWindowAttr & CV_TEXT)
[1394]2239 WinCheckButton(hwnd, CFG5_TEXT, TRUE);
[551]2240 if (flWindowAttr & CV_DETAIL)
[1394]2241 WinCheckButton(hwnd, CFG5_DETAIL, TRUE);
[551]2242 if (flWindowAttr & CV_MINI)
[1394]2243 WinCheckButton(hwnd, CFG5_MINIICONS, TRUE);
[551]2244 if (flWindowAttr & CA_DETAILSVIEWTITLES)
[1394]2245 WinCheckButton(hwnd, CFG5_SHOWTITLES, TRUE);
[1065]2246 WinCheckButton(hwnd, CFG5_SHOWLNAMES, dsDirCnrDefault.detailslongname);
2247 WinCheckButton(hwnd, CFG5_SHOWSUBJECT, dsDirCnrDefault.detailssubject);
2248 WinCheckButton(hwnd, CFG5_SHOWEAS, dsDirCnrDefault.detailsea);
2249 WinCheckButton(hwnd, CFG5_SHOWSIZE, dsDirCnrDefault.detailssize);
2250 WinCheckButton(hwnd, CFG5_SHOWICON, dsDirCnrDefault.detailsicon);
2251 WinCheckButton(hwnd, CFG5_SHOWLWDATE, dsDirCnrDefault.detailslwdate);
2252 WinCheckButton(hwnd, CFG5_SHOWLWTIME, dsDirCnrDefault.detailslwtime);
2253 WinCheckButton(hwnd, CFG5_SHOWLADATE, dsDirCnrDefault.detailsladate);
2254 WinCheckButton(hwnd, CFG5_SHOWLATIME, dsDirCnrDefault.detailslatime);
2255 WinCheckButton(hwnd, CFG5_SHOWCRDATE, dsDirCnrDefault.detailscrdate);
2256 WinCheckButton(hwnd, CFG5_SHOWCRTIME, dsDirCnrDefault.detailscrtime);
2257 WinCheckButton(hwnd, CFG5_SHOWATTR, dsDirCnrDefault.detailsattr);
[551]2258 memset(&mask, 0, sizeof(mask));
2259 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
[1394]2260 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
[917]2261 ulSize = sizeof(MASK);
2262 if (PrfQueryProfileData(fmprof, appname, "DirFilter", &mask, &ulSize))
[1394]2263 SetMask(NULL, &mask);
[551]2264 if (!mask.attrFile)
[1394]2265 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
2266 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
[551]2267 strcpy(mask.prompt, GetPString(IDS_DEFDIRFILTERTITLETEXT));
2268 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
[1065]2269 WinCheckButton(hwnd, CFG5_SUBJECTINLEFTPANE, dsDirCnrDefault.fSubjectInLeftPane);
2270 WinCheckButton(hwnd, CFG5_SUBJECTLENGTHMAX, dsDirCnrDefault.fSubjectLengthMax);
[796]2271 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_SETCURRENTVALUE,
[1394]2272 MPFROMLONG(dsDirCnrDefault.SubjectDisplayWidth), MPVOID);
[551]2273 }
2274 return 0;
[2]2275
[551]2276 case UM_SETUP5:
2277 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
[1394]2278 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
[551]2279 SetMask(NULL, &mask);
2280 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
2281 }
2282 return 0;
[2]2283
[551]2284 case WM_CONTROL:
2285 switch (SHORT1FROMMP(mp1)) {
2286 case CFG5_FILTER:
2287 switch (SHORT2FROMMP(mp1)) {
2288 case EN_SETFOCUS:
[1394]2289 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
2290 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
2291 break;
[2]2292 }
[551]2293 break;
2294 }
2295 return 0;
[2]2296
[551]2297 case WM_COMMAND:
2298 switch (SHORT1FROMMP(mp1)) {
2299 case IDM_UNDO:
2300 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2301 break;
[2]2302
[551]2303 case DID_CANCEL:
2304 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]2305
[551]2306 case DID_OK:
2307 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2308 break;
[2]2309
[551]2310 case IDM_HELP:
2311 if (hwndHelp)
[1394]2312 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
2313 MPFROM2SHORT(HELP_CFG5, 0), MPFROMSHORT(HM_RESOURCEID));
[551]2314 break;
2315 }
2316 return 0;
[2]2317
[551]2318 case WM_CLOSE:
2319 {
2320 ULONG flWindowAttr = 0;
[2]2321
[551]2322 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
[1394]2323 flWindowAttr |= CV_ICON;
[551]2324 if (WinQueryButtonCheckstate(hwnd, CFG5_NAME))
[1394]2325 flWindowAttr |= CV_NAME;
[551]2326 if (WinQueryButtonCheckstate(hwnd, CFG5_TEXT))
[1394]2327 flWindowAttr |= CV_TEXT;
[551]2328 if (WinQueryButtonCheckstate(hwnd, CFG5_DETAIL))
[1394]2329 flWindowAttr |= CV_DETAIL;
[551]2330 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
[1394]2331 flWindowAttr |= CV_MINI;
[551]2332 if (WinQueryButtonCheckstate(hwnd, CFG5_SHOWTITLES))
[1394]2333 flWindowAttr |= CA_DETAILSVIEWTITLES;
[551]2334 flWindowAttr |= CV_FLOW;
[2]2335 PrfWriteProfileData(fmprof,
[1394]2336 appname,
2337 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
[551]2338 }
[1065]2339 dsDirCnrDefault.detailslongname = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLNAMES);
[997]2340 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLongname",
[1394]2341 &dsDirCnrDefault.detailslongname, sizeof(BOOL));
[1065]2342 dsDirCnrDefault.detailssubject = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
[997]2343 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSubject",
[1394]2344 &dsDirCnrDefault.detailssubject, sizeof(BOOL));
[1065]2345 dsDirCnrDefault.detailsea = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
[997]2346 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsEA",
[1394]2347 &dsDirCnrDefault.detailsea, sizeof(BOOL));
[1065]2348 dsDirCnrDefault.detailssize = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSIZE);
[997]2349 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSize",
[1394]2350 &dsDirCnrDefault.detailssize, sizeof(BOOL));
[1065]2351 dsDirCnrDefault.detailsicon = WinQueryButtonCheckstate(hwnd, CFG5_SHOWICON);
[997]2352 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsIcon",
[1394]2353 &dsDirCnrDefault.detailsicon, sizeof(BOOL));
[1065]2354 dsDirCnrDefault.detailslwdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWDATE);
[997]2355 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWDate",
[1394]2356 &dsDirCnrDefault.detailslwdate, sizeof(BOOL));
[1065]2357 dsDirCnrDefault.detailslwtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWTIME);
[997]2358 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWTime",
[1394]2359 &dsDirCnrDefault.detailslwtime, sizeof(BOOL));
[1065]2360 dsDirCnrDefault.detailsladate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLADATE);
[997]2361 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLADate",
[1394]2362 &dsDirCnrDefault.detailsladate, sizeof(BOOL));
[1065]2363 dsDirCnrDefault.detailslatime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLATIME);
[997]2364 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLATime",
[1394]2365 &dsDirCnrDefault.detailslatime, sizeof(BOOL));
[1065]2366 dsDirCnrDefault.detailscrdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRDATE);
[997]2367 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRDate",
[1394]2368 &dsDirCnrDefault.detailscrdate, sizeof(BOOL));
[1065]2369 dsDirCnrDefault.detailscrtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRTIME);
[997]2370 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRTime",
[1394]2371 &dsDirCnrDefault.detailscrtime, sizeof(BOOL));
[1065]2372 dsDirCnrDefault.detailsattr = WinQueryButtonCheckstate(hwnd, CFG5_SHOWATTR);
[997]2373 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsAttr",
[1394]2374 &dsDirCnrDefault.detailsattr, sizeof(BOOL));
[1065]2375 dsDirCnrDefault.fSubjectInLeftPane = WinQueryButtonCheckstate(hwnd, CFG5_SUBJECTINLEFTPANE);
[997]2376 PrfWriteProfileData(fmprof, appname, "DirCnr.SubjectInLeftPane",
[1394]2377 &dsDirCnrDefault.fSubjectInLeftPane, sizeof(BOOL));
[1065]2378 dsDirCnrDefault.fSubjectLengthMax = WinQueryButtonCheckstate(hwnd, CFG5_SUBJECTLENGTHMAX);
[997]2379 PrfWriteProfileData(fmprof, appname, "DirCnr.SubjectLengthMax",
[1394]2380 &dsDirCnrDefault.fSubjectLengthMax, sizeof(BOOL));
[551]2381 *mask.prompt = 0;
2382 PrfWriteProfileData(fmprof, appname, "DirFilter", &mask, sizeof(MASK));
[796]2383 {
[1394]2384 if (!WinQueryButtonCheckstate(hwnd, CFG5_SUBJECTLENGTHMAX)) {
2385 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_QUERYVALUE,
2386 MPFROMP(&dsDirCnrDefault.SubjectDisplayWidth), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
2387 if (dsDirCnrDefault.SubjectDisplayWidth < 50)
2388 dsDirCnrDefault.SubjectDisplayWidth = 0;
2389 else if (dsDirCnrDefault.SubjectDisplayWidth > 1000)
2390 dsDirCnrDefault.SubjectDisplayWidth = 1000;
2391 }
2392 else
2393 dsDirCnrDefault.SubjectDisplayWidth = 0;
2394 PrfWriteProfileData(fmprof,
2395 appname, "DirCnr.SubjectDisplayWidth",
2396 &dsDirCnrDefault.SubjectDisplayWidth, sizeof(ULONG));
[796]2397 }
[551]2398 break;
[2]2399 }
[551]2400 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]2401}
2402
[551]2403MRESULT EXPENTRY Cfg6DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]2404{
[551]2405 switch (msg) {
2406 case WM_INITDLG:
2407 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2408 break;
[2]2409
[1080]2410 case WM_HELP:
2411 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
2412 break;
2413
2414 case WM_CHAR:
2415 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
2416 switch (CHARMSG(&msg)->vkey) {
[1394]2417 case VK_F3:
2418 case VK_ENTER:
2419 case VK_NEWLINE:
2420 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
2421 return 0;
2422 break;
2423 case VK_ESC:
2424 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
2425 return 0;
2426 break;
2427 case VK_F1:
2428 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
2429 return 0;
2430 break;
[1080]2431 }
2432 }
2433 break;
2434
[551]2435 case UM_UNDO:
2436 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
2437 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
2438 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
2439 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
2440 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
2441 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
2442 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
2443 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
2444 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
2445 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
2446 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
2447 if (sortFlags & SORT_FIRSTEXTENSION)
2448 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
2449 else if (sortFlags & SORT_LASTEXTENSION)
2450 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
2451 else if (sortFlags & SORT_SIZE)
2452 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
2453 else if (sortFlags & SORT_EASIZE)
2454 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
2455 else if (sortFlags & SORT_LWDATE)
2456 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
2457 else if (sortFlags & SORT_LADATE)
2458 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
2459 else if (sortFlags & SORT_CRDATE)
2460 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
2461 else if (sortFlags & SORT_FILENAME)
2462 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
2463 else
2464 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
2465 if (sortFlags & SORT_DIRSFIRST)
2466 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, TRUE);
2467 else if (sortFlags & SORT_DIRSLAST)
2468 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, TRUE);
2469 if (sortFlags & SORT_REVERSE)
2470 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
2471 return 0;
[2]2472
[551]2473 case WM_CONTROL:
2474 switch (SHORT1FROMMP(mp1)) {
2475 case CFG6_SORTDIRSFIRST:
2476 case CFG6_SORTDIRSLAST:
2477 {
[1394]2478 BOOL temp;
[2]2479
[1394]2480 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
2481 if (temp) {
2482 switch (SHORT1FROMMP(mp1)) {
2483 case CFG6_SORTDIRSFIRST:
2484 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
2485 break;
2486 case CFG6_SORTDIRSLAST:
2487 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
2488 break;
2489 }
2490 }
[2]2491 }
[551]2492 break;
2493 }
2494 return 0;
[2]2495
[551]2496 case WM_COMMAND:
2497 switch (SHORT1FROMMP(mp1)) {
2498 case IDM_UNDO:
2499 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2500 break;
[2]2501
[551]2502 case DID_CANCEL:
2503 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]2504
[551]2505 case DID_OK:
2506 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2507 break;
[2]2508
[551]2509 case IDM_HELP:
2510 if (hwndHelp)
[1394]2511 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
2512 MPFROM2SHORT(HELP_CFG6, 0), MPFROMSHORT(HM_RESOURCEID));
[551]2513 break;
2514 }
2515 return 0;
[2]2516
[551]2517 case WM_CLOSE:
2518 sortFlags = 0;
2519 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
2520 sortFlags |= SORT_FILENAME;
2521 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
2522 sortFlags |= SORT_SIZE;
2523 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
2524 sortFlags |= SORT_EASIZE;
2525 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
2526 sortFlags |= SORT_FIRSTEXTENSION;
2527 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
2528 sortFlags |= SORT_LASTEXTENSION;
2529 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
2530 sortFlags |= SORT_LWDATE;
2531 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
2532 sortFlags |= SORT_LADATE;
2533 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
2534 sortFlags |= SORT_CRDATE;
2535 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
2536 sortFlags |= SORT_DIRSFIRST;
2537 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
2538 sortFlags |= SORT_DIRSLAST;
2539 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
2540 sortFlags |= SORT_REVERSE;
2541 PrfWriteProfileData(fmprof, appname, "Sort", &sortFlags, sizeof(INT));
2542 break;
[2]2543 }
[551]2544 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]2545}
2546
[551]2547MRESULT EXPENTRY Cfg7DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]2548{
[2]2549 static MASK mask;
2550
[551]2551 switch (msg) {
2552 case WM_INITDLG:
[922]2553 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_SETTEXTLIMIT,
[1394]2554 MPFROMSHORT(8), MPVOID);
[922]2555 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_OVERRIDESETLIMITS,
[1394]2556 MPFROMLONG(1000), MPFROMLONG(50));
[551]2557 WinSendDlgItemMsg(hwnd, CFG5_FILTER, EM_SETTEXTLIMIT,
[1394]2558 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);
[551]2559 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2560 break;
[2]2561
[1080]2562 case WM_HELP:
2563 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
2564 break;
2565
2566 case WM_CHAR:
2567 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
2568 switch (CHARMSG(&msg)->vkey) {
[1394]2569 case VK_F3:
2570 case VK_ENTER:
2571 case VK_NEWLINE:
2572 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
2573 return 0;
2574 break;
2575 case VK_ESC:
2576 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
2577 return 0;
2578 break;
2579 case VK_F1:
2580 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
2581 return 0;
2582 break;
[1080]2583 }
2584 }
2585 break;
2586
[551]2587 case UM_FOCUSME:
2588 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, CFG5_MINIICONS));
2589 return 0;
[2]2590
[551]2591 case UM_UNDO:
2592 WinCheckButton(hwnd, CFG5_EXTERNALCOLLECTOR, fExternalCollector);
2593 {
[917]2594 ULONG flWindowAttr = 0;
2595 ULONG ulSize = sizeof(ULONG);
[2]2596
[551]2597 if (!PrfQueryProfileData(fmprof,
[1394]2598 appname,
2599 "CollectorflWindowAttr", &flWindowAttr, &ulSize))
2600 flWindowAttr = (CV_NAME | CA_DETAILSVIEWTITLES | CV_MINI | CV_FLOW);
[551]2601 if (flWindowAttr & CV_ICON)
[1394]2602 WinCheckButton(hwnd, CFG5_ICON, TRUE);
[551]2603 if (flWindowAttr & CV_NAME)
[1394]2604 WinCheckButton(hwnd, CFG5_NAME, TRUE);
[551]2605 if (flWindowAttr & CV_TEXT)
[1394]2606 WinCheckButton(hwnd, CFG5_TEXT, TRUE);
[551]2607 if (flWindowAttr & CV_DETAIL)
[1394]2608 WinCheckButton(hwnd, CFG5_DETAIL, TRUE);
[551]2609 if (flWindowAttr & CV_MINI)
[1394]2610 WinCheckButton(hwnd, CFG5_MINIICONS, TRUE);
[551]2611 if (flWindowAttr & CA_DETAILSVIEWTITLES)
[1394]2612 WinCheckButton(hwnd, CFG5_SHOWTITLES, TRUE);
[551]2613 memset(&mask, 0, sizeof(mask));
2614 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
[1394]2615 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
[917]2616 ulSize = sizeof(MASK);
[551]2617 if (PrfQueryProfileData(fmprof,
[1394]2618 appname, "CollectorFilter", &mask, &ulSize)) {
2619 SetMask(NULL, &mask);
[2]2620 }
[551]2621 if (!mask.attrFile)
[1394]2622 mask.attrFile = FILE_DIRECTORY | FILE_ARCHIVED | FILE_HIDDEN |
2623 FILE_SYSTEM | FILE_NORMAL | FILE_READONLY;
[551]2624 strcpy(mask.prompt, GetPString(IDS_DEFCOLFILTERTITLETEXT));
2625 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
2626 }
2627 {
[1065]2628 DETAILS_SETTINGS ds;
[2]2629
[1065]2630 memset(&ds, 0, sizeof(ds));
2631 LoadDetailsSwitches("Collector", &ds);
2632 WinCheckButton(hwnd, CFG5_SHOWLNAMES, ds.detailslongname);
2633 WinCheckButton(hwnd, CFG5_SHOWSUBJECT, ds.detailssubject);
2634 WinCheckButton(hwnd, CFG5_SHOWEAS, ds.detailsea);
2635 WinCheckButton(hwnd, CFG5_SHOWSIZE, ds.detailssize);
2636 WinCheckButton(hwnd, CFG5_SHOWICON, ds.detailsicon);
2637 WinCheckButton(hwnd, CFG5_SHOWLWDATE, ds.detailslwdate);
2638 WinCheckButton(hwnd, CFG5_SHOWLWTIME, ds.detailslwtime);
2639 WinCheckButton(hwnd, CFG5_SHOWLADATE, ds.detailsladate);
2640 WinCheckButton(hwnd, CFG5_SHOWLATIME, ds.detailslatime);
2641 WinCheckButton(hwnd, CFG5_SHOWCRDATE, ds.detailscrdate);
2642 WinCheckButton(hwnd, CFG5_SHOWCRTIME, ds.detailscrtime);
2643 WinCheckButton(hwnd, CFG5_SHOWATTR, ds.detailsattr);
2644 WinCheckButton(hwnd, CFG5_SUBJECTINLEFTPANE, ds.fSubjectInLeftPane);
2645 WinCheckButton(hwnd, CFG5_SUBJECTLENGTHMAX, ds.fSubjectLengthMax);
[922]2646 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_SETCURRENTVALUE,
[1394]2647 MPFROMLONG(ds.SubjectDisplayWidth), MPVOID);
[922]2648
[551]2649 }
2650 return 0;
[2]2651
[551]2652 case UM_SETUP5:
2653 if (WinDlgBox(HWND_DESKTOP, hwndNotebook, PickMaskDlgProc,
[1394]2654 FM3ModHandle, MSK_FRAME, MPFROMP(&mask))) {
[551]2655 SetMask(NULL, &mask);
2656 WinSetDlgItemText(hwnd, CFG5_FILTER, mask.szMask);
2657 }
2658 return 0;
[2]2659
[551]2660 case WM_CONTROL:
2661 switch (SHORT1FROMMP(mp1)) {
2662 case CFG5_FILTER:
2663 switch (SHORT2FROMMP(mp1)) {
2664 case EN_SETFOCUS:
[1394]2665 PostMsg(hwnd, UM_FOCUSME, MPVOID, MPVOID);
2666 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID);
2667 break;
[2]2668 }
[551]2669 break;
2670 }
2671 return 0;
[2]2672
[551]2673 case WM_COMMAND:
2674 switch (SHORT1FROMMP(mp1)) {
2675 case IDM_UNDO:
2676 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2677 break;
[2]2678
[551]2679 case DID_CANCEL:
2680 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]2681
[551]2682 case DID_OK:
2683 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2684 break;
[2]2685
[551]2686 case IDM_HELP:
2687 if (hwndHelp)
[1394]2688 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
2689 MPFROM2SHORT(HELP_CFG7, 0), MPFROMSHORT(HM_RESOURCEID));
[551]2690 break;
2691 }
2692 return 0;
[2]2693
[551]2694 case WM_CLOSE:
2695 fExternalCollector = WinQueryButtonCheckstate(hwnd,
[1394]2696 CFG5_EXTERNALCOLLECTOR);
[551]2697 PrfWriteProfileData(fmprof, FM3Str, "ExternalCollector",
[1394]2698 &fExternalCollector, sizeof(BOOL));
[551]2699 {
2700 ULONG flWindowAttr = 0;
[2]2701
[551]2702 if (WinQueryButtonCheckstate(hwnd, CFG5_ICON))
[1394]2703 flWindowAttr |= CV_ICON;
[551]2704 if (WinQueryButtonCheckstate(hwnd, CFG5_NAME))
[1394]2705 flWindowAttr |= CV_NAME;
[551]2706 if (WinQueryButtonCheckstate(hwnd, CFG5_TEXT))
[1394]2707 flWindowAttr |= CV_TEXT;
[551]2708 if (WinQueryButtonCheckstate(hwnd, CFG5_DETAIL))
[1394]2709 flWindowAttr |= CV_DETAIL;
[551]2710 if (WinQueryButtonCheckstate(hwnd, CFG5_MINIICONS))
[1394]2711 flWindowAttr |= CV_MINI;
[551]2712 if (WinQueryButtonCheckstate(hwnd, CFG5_SHOWTITLES))
[1394]2713 flWindowAttr |= CA_DETAILSVIEWTITLES;
[551]2714 flWindowAttr |= CV_FLOW;
2715 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
[1394]2716 &flWindowAttr, sizeof(ULONG));
[551]2717 }
2718 {
[1065]2719 DETAILS_SETTINGS ds;
[2]2720
[1065]2721 memset(&ds, 0, sizeof(ds));
2722 ds.detailslongname = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLNAMES);
[551]2723 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLongname",
[1394]2724 &ds.detailslongname, sizeof(BOOL));
[1065]2725 ds.detailssubject = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSUBJECT);
[551]2726 PrfWriteProfileData(fmprof, appname, "Collector.DetailsSubject",
[1394]2727 &ds.detailssubject, sizeof(BOOL));
[1065]2728 ds.detailsea = WinQueryButtonCheckstate(hwnd, CFG5_SHOWEAS);
[551]2729 PrfWriteProfileData(fmprof, appname, "Collector.DetailsEA",
[1394]2730 &ds.detailsea, sizeof(BOOL));
[1065]2731 ds.detailssize = WinQueryButtonCheckstate(hwnd, CFG5_SHOWSIZE);
[551]2732 PrfWriteProfileData(fmprof, appname, "Collector.DetailsSize",
[1394]2733 &ds.detailssize, sizeof(BOOL));
[1065]2734 ds.detailsicon = WinQueryButtonCheckstate(hwnd, CFG5_SHOWICON);
[551]2735 PrfWriteProfileData(fmprof, appname, "Collector.DetailsIcon",
[1394]2736 &ds.detailsicon, sizeof(BOOL));
[1065]2737 ds.detailslwdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWDATE);
[551]2738 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLWDate",
[1394]2739 &ds.detailslwdate, sizeof(BOOL));
[1065]2740 ds.detailslwtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLWTIME);
[551]2741 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLWTime",
[1394]2742 &ds.detailslwtime, sizeof(BOOL));
[1065]2743 ds.detailsladate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLADATE);
[551]2744 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLADate",
[1394]2745 &ds.detailsladate, sizeof(BOOL));
[1065]2746 ds.detailslatime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWLATIME);
[551]2747 PrfWriteProfileData(fmprof, appname, "Collector.DetailsLATime",
[1394]2748 &ds.detailslatime, sizeof(BOOL));
[1065]2749 ds.detailscrdate = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRDATE);
[551]2750 PrfWriteProfileData(fmprof, appname, "Collector.DetailsCRDate",
[1394]2751 &ds.detailscrdate, sizeof(BOOL));
[1065]2752 ds.detailscrtime = WinQueryButtonCheckstate(hwnd, CFG5_SHOWCRTIME);
[551]2753 PrfWriteProfileData(fmprof, appname, "Collector.DetailsCRTime",
[1394]2754 &ds.detailscrtime, sizeof(BOOL));
[1065]2755 ds.detailsattr = WinQueryButtonCheckstate(hwnd, CFG5_SHOWATTR);
[551]2756 PrfWriteProfileData(fmprof, appname, "Collector.DetailsAttr",
[1394]2757 &ds.detailsattr, sizeof(BOOL));
[1065]2758 ds.fSubjectInLeftPane = WinQueryButtonCheckstate(hwnd, CFG5_SUBJECTINLEFTPANE);
[922]2759 PrfWriteProfileData(fmprof, appname, "Collector.SubjectInLeftPane",
[1394]2760 &ds.fSubjectInLeftPane, sizeof(BOOL));
[1065]2761 ds.fSubjectLengthMax = WinQueryButtonCheckstate(hwnd, CFG5_SUBJECTLENGTHMAX);
[922]2762 PrfWriteProfileData(fmprof, appname, "Collector.SubjectLengthMax",
[1394]2763 &ds.fSubjectLengthMax, sizeof(BOOL));
[551]2764 *mask.prompt = 0;
2765 PrfWriteProfileData(fmprof,
[1394]2766 appname, "CollectorFilter", &mask, sizeof(MASK));
[922]2767 {
[1394]2768 if (!WinQueryButtonCheckstate(hwnd, CFG5_SUBJECTLENGTHMAX)) {
2769 WinSendDlgItemMsg(hwnd, CFG5_SUBJECTDISPLAYWIDTH, SPBM_QUERYVALUE,
2770 MPFROMP(&ds.SubjectDisplayWidth), MPFROM2SHORT(0, SPBQ_DONOTUPDATE));
2771 if (ds.SubjectDisplayWidth < 50)
2772 ds.SubjectDisplayWidth = 0;
2773 else if (ds.SubjectDisplayWidth > 1000)
2774 ds.SubjectDisplayWidth = 1000;
2775 }
2776 else
2777 ds.SubjectDisplayWidth = 0;
2778 PrfWriteProfileData(fmprof,
2779 appname, "Collector.SubjectDisplayWidth",
2780 &ds.SubjectDisplayWidth, sizeof(ULONG));
[922]2781 }
[551]2782 }
2783 break;
[2]2784 }
[551]2785 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]2786}
2787
[551]2788MRESULT EXPENTRY Cfg8DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]2789{
[551]2790 switch (msg) {
2791 case WM_INITDLG:
2792 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2793 break;
[2]2794
[1080]2795 case WM_HELP:
2796 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
2797 break;
2798
2799 case WM_CHAR:
2800 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
2801 switch (CHARMSG(&msg)->vkey) {
[1394]2802 case VK_F3:
2803 case VK_ENTER:
2804 case VK_NEWLINE:
2805 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
2806 return 0;
2807 break;
2808 case VK_ESC:
2809 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
2810 return 0;
2811 break;
2812 case VK_F1:
2813 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
2814 return 0;
2815 break;
[1080]2816 }
2817 }
2818 break;
2819
[551]2820 case UM_UNDO:
2821 WinCheckButton(hwnd, CFG6_SORTFIRST, FALSE);
2822 WinCheckButton(hwnd, CFG6_SORTLAST, FALSE);
2823 WinCheckButton(hwnd, CFG6_SORTSIZE, FALSE);
2824 WinCheckButton(hwnd, CFG6_SORTEASIZE, FALSE);
2825 WinCheckButton(hwnd, CFG6_SORTLWDATE, FALSE);
2826 WinCheckButton(hwnd, CFG6_SORTLADATE, FALSE);
2827 WinCheckButton(hwnd, CFG6_SORTCRDATE, FALSE);
2828 WinCheckButton(hwnd, CFG6_SORTNAME, FALSE);
2829 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
2830 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
2831 WinCheckButton(hwnd, CFG6_SORTREVERSE, FALSE);
2832 if (CollectorsortFlags & SORT_FIRSTEXTENSION)
2833 WinCheckButton(hwnd, CFG6_SORTFIRST, TRUE);
2834 else if (CollectorsortFlags & SORT_LASTEXTENSION)
2835 WinCheckButton(hwnd, CFG6_SORTLAST, TRUE);
2836 else if (CollectorsortFlags & SORT_SIZE)
2837 WinCheckButton(hwnd, CFG6_SORTSIZE, TRUE);
2838 else if (CollectorsortFlags & SORT_EASIZE)
2839 WinCheckButton(hwnd, CFG6_SORTEASIZE, TRUE);
2840 else if (CollectorsortFlags & SORT_LWDATE)
2841 WinCheckButton(hwnd, CFG6_SORTLWDATE, TRUE);
2842 else if (CollectorsortFlags & SORT_LADATE)
2843 WinCheckButton(hwnd, CFG6_SORTLADATE, TRUE);
2844 else if (CollectorsortFlags & SORT_CRDATE)
2845 WinCheckButton(hwnd, CFG6_SORTCRDATE, TRUE);
2846 else if (CollectorsortFlags & SORT_FILENAME)
2847 WinCheckButton(hwnd, CFG6_SORTFILENAME, TRUE);
2848 else
2849 WinCheckButton(hwnd, CFG6_SORTNAME, TRUE);
2850 if (CollectorsortFlags & SORT_DIRSFIRST)
2851 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, TRUE);
2852 else if (CollectorsortFlags & SORT_DIRSLAST)
2853 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, TRUE);
2854 if (CollectorsortFlags & SORT_REVERSE)
2855 WinCheckButton(hwnd, CFG6_SORTREVERSE, TRUE);
2856 return 0;
[2]2857
[551]2858 case WM_CONTROL:
2859 switch (SHORT1FROMMP(mp1)) {
2860 case CFG6_SORTDIRSFIRST:
2861 case CFG6_SORTDIRSLAST:
2862 {
[1394]2863 BOOL temp;
[2]2864
[1394]2865 temp = WinQueryButtonCheckstate(hwnd, SHORT1FROMMP(mp1));
2866 if (temp) {
2867 switch (SHORT1FROMMP(mp1)) {
2868 case CFG6_SORTDIRSFIRST:
2869 WinCheckButton(hwnd, CFG6_SORTDIRSLAST, FALSE);
2870 break;
2871 case CFG6_SORTDIRSLAST:
2872 WinCheckButton(hwnd, CFG6_SORTDIRSFIRST, FALSE);
2873 break;
2874 }
2875 }
[2]2876 }
[551]2877 break;
2878 }
2879 return 0;
[2]2880
[551]2881 case WM_COMMAND:
2882 switch (SHORT1FROMMP(mp1)) {
2883 case IDM_UNDO:
2884 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
2885 break;
[2]2886
[551]2887 case DID_CANCEL:
2888 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]2889
[551]2890 case DID_OK:
2891 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
2892 break;
[2]2893
[551]2894 case IDM_HELP:
2895 if (hwndHelp)
[1394]2896 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
2897 MPFROM2SHORT(HELP_CFG8, 0), MPFROMSHORT(HM_RESOURCEID));
[551]2898 break;
2899 }
2900 return 0;
[2]2901
[551]2902 case WM_CLOSE:
2903 CollectorsortFlags = 0;
2904 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFILENAME))
2905 CollectorsortFlags |= SORT_FILENAME;
2906 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTSIZE))
2907 CollectorsortFlags |= SORT_SIZE;
2908 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTEASIZE))
2909 CollectorsortFlags |= SORT_EASIZE;
2910 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTFIRST))
2911 CollectorsortFlags |= SORT_FIRSTEXTENSION;
2912 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLAST))
2913 CollectorsortFlags |= SORT_LASTEXTENSION;
2914 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLWDATE))
2915 CollectorsortFlags |= SORT_LWDATE;
2916 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTLADATE))
2917 CollectorsortFlags |= SORT_LADATE;
2918 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTCRDATE))
2919 CollectorsortFlags |= SORT_CRDATE;
2920 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSFIRST))
2921 CollectorsortFlags |= SORT_DIRSFIRST;
2922 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTDIRSLAST))
2923 CollectorsortFlags |= SORT_DIRSLAST;
2924 if (WinQueryButtonCheckstate(hwnd, CFG6_SORTREVERSE))
2925 CollectorsortFlags |= SORT_REVERSE;
2926 PrfWriteProfileData(fmprof,
[1394]2927 appname,
2928 "CollectorSort", &CollectorsortFlags, sizeof(INT));
[551]2929 break;
[2]2930 }
[551]2931 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]2932}
2933
[551]2934MRESULT EXPENTRY Cfg9DlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]2935{
[551]2936 switch (msg) {
2937 case WM_INITDLG:
2938 break;
[2]2939
[1080]2940 case WM_HELP:
2941 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
2942 break;
2943
2944 case WM_CHAR:
2945 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
2946 switch (CHARMSG(&msg)->vkey) {
[1394]2947 case VK_F3:
2948 case VK_ENTER:
2949 case VK_NEWLINE:
2950 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
2951 return 0;
2952 break;
2953 case VK_ESC:
2954 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
2955 return 0;
2956 break;
2957 case VK_F1:
2958 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
2959 return 0;
2960 break;
[1080]2961 }
2962 }
2963 break;
2964
[551]2965 case WM_COMMAND:
2966 switch (SHORT1FROMMP(mp1)) {
2967 case IDM_HELP:
2968 if (hwndHelp)
[1394]2969 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
2970 MPFROM2SHORT(HELP_CFG9, 0), MPFROMSHORT(HM_RESOURCEID));
[551]2971 return 0;
2972 case CFG9_MAXIMUMUI:
2973 if (hwndMain) {
[1394]2974 if (MenuInvisible)
2975 WinSendMsg(hwndMain, WM_COMMAND,
2976 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
2977 if (!fAutoView)
2978 WinSendMsg(hwndMain, WM_COMMAND,
2979 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
2980 if (!fDrivebar)
2981 WinSendMsg(hwndMain, WM_COMMAND,
2982 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
2983 if (!fToolbar)
2984 WinSendMsg(hwndMain, WM_COMMAND,
2985 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
2986 if (!fMoreButtons)
2987 WinSendMsg(hwndMain, WM_COMMAND,
2988 MPFROM2SHORT(IDM_MOREBUTTONS, 0), MPVOID);
2989 if (!fUserComboBox)
2990 WinSendMsg(hwndMain, WM_COMMAND,
2991 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
[551]2992 }
2993 return 0;
2994 case CFG9_MINIMUMUI:
2995 if (hwndMain) {
[1394]2996 if (!MenuInvisible)
2997 WinSendMsg(hwndMain, WM_COMMAND,
2998 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
2999 if (fAutoView)
3000 WinSendMsg(hwndMain, WM_COMMAND,
3001 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
3002 if (fToolbar)
3003 WinSendMsg(hwndMain, WM_COMMAND,
3004 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
3005 if (fMoreButtons)
3006 WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_MOREBUTTONS, 0),
3007 MPVOID);
3008 if (fUserComboBox)
3009 WinSendMsg(hwndMain, WM_COMMAND,
3010 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
3011 saymsg(MB_ENTER | MB_ICONASTERISK,
3012 hwnd,
3013 GetPString(IDS_DONTFORGETTEXT),
3014 GetPString(IDS_UNHIDEMENUWARNTEXT));
[551]3015 }
3016 return 0;
3017 case CFG9_MAXINFOPRETTY:
3018 fLoadSubject = TRUE;
3019 fLoadLongnames = TRUE;
3020 fNoIconsFiles = FALSE;
3021 fNoIconsDirs = FALSE;
3022 fForceUpper = FALSE;
3023 fForceLower = FALSE;
3024 fArcStuffVisible = TRUE;
3025 fSplitStatus = TRUE;
3026 fDragndropDlg = TRUE;
3027 {
[1394]3028 ULONG flWindowAttr;
[2]3029
[1394]3030 flWindowAttr = CV_DETAIL | CV_FLOW | CA_DETAILSVIEWTITLES;
3031 PrfWriteProfileData(fmprof,
3032 appname,
3033 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
3034 PrfWriteProfileData(fmprof,
3035 appname,
3036 "CollectorflWindowAttr",
3037 &flWindowAttr, sizeof(ULONG));
3038 PrfWriteProfileData(fmprof,
3039 appname, "Collector.Fontnamesize", NULL, 0);
[551]3040 }
[1065]3041 dsDirCnrDefault.detailslongname = TRUE;
3042 dsDirCnrDefault.detailssubject = TRUE;
3043 dsDirCnrDefault.detailsea = TRUE;
3044 dsDirCnrDefault.detailssize = TRUE;
3045 dsDirCnrDefault.detailsicon = TRUE;
3046 dsDirCnrDefault.detailslwdate = TRUE;
3047 dsDirCnrDefault.detailslwtime = TRUE;
3048 dsDirCnrDefault.detailsladate = TRUE;
3049 dsDirCnrDefault.detailslatime = TRUE;
3050 dsDirCnrDefault.detailscrdate = TRUE;
3051 dsDirCnrDefault.detailscrtime = TRUE;
3052 dsDirCnrDefault.detailsattr = TRUE;
[551]3053 if (hwndTree) {
[2]3054
[1394]3055 CNRINFO cnri;
3056 ULONG flWindowAttr = CV_TREE | CV_ICON | CV_FLOW | CA_TREELINE;
[2]3057
[1394]3058 memset(&cnri, 0, sizeof(cnri));
3059 cnri.cb = sizeof(cnri);
3060 WinSendMsg(WinWindowFromID
3061 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3062 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3063 cnri.flWindowAttr = flWindowAttr;
3064 WinSendMsg(WinWindowFromID
3065 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3066 CM_SETCNRINFO, MPFROMP(&cnri),
3067 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3068 }
3069 break;
[2]3070
[551]3071 case CFG9_MAXINFOPLAIN:
3072 fLoadSubject = TRUE;
3073 fLoadLongnames = TRUE;
3074 fNoIconsFiles = TRUE;
3075 fNoIconsDirs = TRUE;
3076 fForceUpper = FALSE;
3077 fForceLower = FALSE;
3078 fArcStuffVisible = TRUE;
3079 fSplitStatus = TRUE;
3080 fDragndropDlg = TRUE;
3081 {
[1394]3082 ULONG flWindowAttr;
[2]3083
[1394]3084 flWindowAttr = CV_DETAIL | CV_FLOW | CV_MINI;
3085 PrfWriteProfileData(fmprof,
3086 appname,
3087 "DirflWindowAttr", &flWindowAttr, sizeof(ULONG));
3088 PrfWriteProfileData(fmprof,
3089 appname,
3090 "CollectorflWindowAttr",
3091 &flWindowAttr, sizeof(ULONG));
3092 //fixme to allow user to change presparams 1-10-09 GKY
3093 PrfWriteProfileData(fmprof,
3094 appname,
3095 "Collector.Fontnamesize",
3096 FNT_8HELVETICA,
3097 strlen(FNT_8HELVETICA) + 1);
[551]3098 }
[1065]3099 dsDirCnrDefault.detailslongname = TRUE;
3100 dsDirCnrDefault.detailssubject = TRUE;
3101 dsDirCnrDefault.detailsea = TRUE;
3102 dsDirCnrDefault.detailssize = TRUE;
3103 dsDirCnrDefault.detailsicon = TRUE;
3104 dsDirCnrDefault.detailslwdate = TRUE;
3105 dsDirCnrDefault.detailslwtime = TRUE;
3106 dsDirCnrDefault.detailsladate = TRUE;
3107 dsDirCnrDefault.detailslatime = TRUE;
3108 dsDirCnrDefault.detailscrdate = TRUE;
3109 dsDirCnrDefault.detailscrtime = TRUE;
3110 dsDirCnrDefault.detailsattr = TRUE;
[551]3111 if (hwndTree) {
[2]3112
[1394]3113 CNRINFO cnri;
3114 ULONG flWindowAttr = CV_TREE | CV_MINI | CV_TEXT |
3115 CV_FLOW | CA_TREELINE;
[2]3116
[1394]3117 memset(&cnri, 0, sizeof(cnri));
3118 cnri.cb = sizeof(cnri);
3119 WinSendMsg(WinWindowFromID
3120 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3121 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3122 cnri.flWindowAttr = flWindowAttr;
3123 WinSendMsg(WinWindowFromID
3124 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3125 CM_SETCNRINFO, MPFROMP(&cnri),
3126 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3127 }
3128 break;
3129 case CFG9_MAXFILENAMES:
3130 if (hwndMain && fAutoView)
[1394]3131 WinSendMsg(hwndMain, WM_COMMAND,
3132 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
[551]3133 fForceUpper = FALSE;
3134 fForceLower = TRUE;
3135 fExternalViewer = TRUE;
3136 fExternalArcboxes = TRUE;
3137 fExternalCollector = TRUE;
3138 fExternalINIs = TRUE;
3139 fLoadSubject = FALSE;
3140 fLoadLongnames = FALSE;
3141 fNoIconsFiles = TRUE;
3142 fNoIconsDirs = TRUE;
3143 {
[1394]3144 ULONG flWindowAttr;
[2]3145
[1394]3146 flWindowAttr = CV_TEXT | CV_FLOW;
3147 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
3148 &flWindowAttr, sizeof(ULONG));
3149 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
3150 &flWindowAttr, sizeof(ULONG));
3151 //fixme to allow user to change presparams 1-10-09 GKY
3152 PrfWriteProfileData(fmprof, appname, "Collector.Fontnamesize",
3153 FNT_8HELVETICA,
3154 strlen(FNT_8HELVETICA) + 1);
[551]3155 }
3156 if (hwndTree) {
[2]3157
[1394]3158 CNRINFO cnri;
3159 ULONG flWindowAttr = CV_TREE | CV_TEXT | CV_FLOW | CA_TREELINE;
[2]3160
[1394]3161 memset(&cnri, 0, sizeof(cnri));
3162 cnri.cb = sizeof(cnri);
3163 WinSendMsg(WinWindowFromID
3164 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3165 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3166 cnri.flWindowAttr = flWindowAttr;
3167 WinSendMsg(WinWindowFromID
3168 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3169 CM_SETCNRINFO, MPFROMP(&cnri),
3170 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3171 }
3172 break;
3173 case CFG9_MAXSPEED:
3174 fLoadSubject = FALSE;
3175 fLoadLongnames = FALSE;
3176 fVerify = FALSE;
3177 DosSetVerify(FALSE);
[783]3178 FilesToGet = FILESTOGET_MAX;
[551]3179 fQuickArcFind = TRUE;
3180 fMinOnOpen = TRUE;
3181 fRealIdle = FALSE;
3182 fNoIconsFiles = TRUE;
3183 fNoIconsDirs = TRUE;
3184 fSyncUpdates = FALSE;
3185 fArcStuffVisible = FALSE;
3186 fForceUpper = FALSE;
3187 fForceLower = FALSE;
[1065]3188 dsDirCnrDefault.detailslongname = FALSE;
3189 dsDirCnrDefault.detailssubject = FALSE;
[551]3190 break;
[2]3191
[551]3192 case CFG9_HECTOR:
3193 fSwitchTree = TRUE;
3194 fSwitchTreeOnFocus = FALSE;
3195 fSwitchTreeExpand = TRUE;
3196 fCollapseFirst = TRUE;
3197 fSelectedAlways = FALSE;
3198 fTileBackwards = FALSE;
3199 fExternalViewer = FALSE;
3200 fExternalArcboxes = TRUE;
3201 fExternalCollector = FALSE;
3202 fExternalINIs = TRUE;
3203 fCopyDefault = FALSE;
3204 fFollowTree = FALSE;
3205 fLoadSubject = FALSE;
3206 fLoadLongnames = FALSE;
3207 fDontMoveMouse = FALSE;
3208 fUnHilite = TRUE;
3209 fUserListSwitches = TRUE;
3210 fDCOpens = FALSE;
3211 fLinkSetsIcon = FALSE;
3212 fConfirmDelete = TRUE;
3213 fSyncUpdates = FALSE;
3214 fRealIdle = FALSE;
3215 fNoIconsFiles = FALSE;
3216 fNoIconsDirs = TRUE;
3217 fFolderAfterExtract = FALSE;
3218 fVerify = TRUE;
3219 DosSetVerify(TRUE);
3220 fForceUpper = FALSE;
3221 fForceLower = TRUE;
3222 fArcStuffVisible = FALSE;
3223 fVTreeOpensWPS = FALSE;
3224 fRemoteBug = FALSE;
3225 fDragndropDlg = TRUE;
3226 fMinOnOpen = FALSE;
3227 fQuickArcFind = TRUE;
3228 fNoRemovableScan = TRUE;
[783]3229 FilesToGet = FILESTOGET_MIN;
[551]3230 fFreeTree = FALSE;
3231 fSplitStatus = TRUE;
3232 fAutoTile = TRUE;
3233 fSaveState = TRUE;
3234 fStartMinimized = FALSE;
3235 fStartMaximized = FALSE;
3236 fDataMin = FALSE;
3237 ulCnrType = CCS_EXTENDSEL | CCS_MULTIPLESEL;
3238 fNoTreeGap = TRUE;
3239 {
[1394]3240 ULONG flWindowAttr;
[2]3241
[1394]3242 flWindowAttr = (CV_NAME | CV_MINI | CV_FLOW | CA_DETAILSVIEWTITLES);
3243 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
3244 &flWindowAttr, sizeof(ULONG));
3245 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
3246 &flWindowAttr, sizeof(ULONG));
[551]3247 }
[1065]3248 dsDirCnrDefault.detailslongname = FALSE;
3249 dsDirCnrDefault.detailssubject = FALSE;
3250 dsDirCnrDefault.detailsea = TRUE;
3251 dsDirCnrDefault.detailssize = TRUE;
3252 dsDirCnrDefault.detailsicon = TRUE;
3253 dsDirCnrDefault.detailslwdate = TRUE;
3254 dsDirCnrDefault.detailslwtime = TRUE;
3255 dsDirCnrDefault.detailsladate = FALSE;
3256 dsDirCnrDefault.detailslatime = FALSE;
3257 dsDirCnrDefault.detailscrdate = FALSE;
3258 dsDirCnrDefault.detailscrtime = FALSE;
3259 dsDirCnrDefault.detailsattr = TRUE;
[551]3260 sortFlags = SORT_FILENAME | SORT_DIRSFIRST;
3261 CollectorsortFlags = SORT_FILENAME | SORT_DIRSFIRST;
3262 if (hwndMain) {
[2]3263
[1394]3264 SWP swp;
[2]3265
[1394]3266 if (WinQueryWindowPos(hwndMain, &swp)) {
3267 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
3268 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
3269 }
3270 if (MenuInvisible)
3271 WinSendMsg(hwndMain, WM_COMMAND,
3272 MPFROM2SHORT(IDM_HIDEMENU, 0), MPVOID);
3273 if (fAutoView)
3274 WinSendMsg(hwndMain, WM_COMMAND,
3275 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
3276 if (fToolbar)
3277 WinSendMsg(hwndMain, WM_COMMAND,
3278 MPFROM2SHORT(IDM_TOOLBAR, 0), MPVOID);
3279 if (!fDrivebar)
3280 WinSendMsg(hwndMain, WM_COMMAND,
3281 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
3282 if (!fMoreButtons)
3283 WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_MOREBUTTONS, 0),
3284 MPVOID);
3285 if (!fUserComboBox)
3286 WinSendMsg(hwndMain, WM_COMMAND,
3287 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
[551]3288 }
3289 if (hwndTree) {
[2]3290
[1394]3291 CNRINFO cnri;
3292 ULONG flWindowAttr = (CV_TREE | CV_TEXT | CV_MINI |
3293 CV_FLOW | CA_TREELINE);
[2]3294
[1394]3295 memset(&cnri, 0, sizeof(cnri));
3296 cnri.cb = sizeof(cnri);
3297 WinSendMsg(WinWindowFromID
3298 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3299 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3300 cnri.flWindowAttr = flWindowAttr;
3301 WinSendMsg(WinWindowFromID
3302 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3303 CM_SETCNRINFO, MPFROMP(&cnri),
3304 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3305 }
3306 break;
[2]3307
[551]3308 case CFG9_DEFAULT:
3309 fSwitchTree = FALSE;
3310 fSwitchTreeOnFocus = FALSE;
3311 fSwitchTreeExpand = FALSE;
3312 fCollapseFirst = FALSE;
3313 fSelectedAlways = FALSE;
3314 fTileBackwards = FALSE;
3315 fExternalViewer = FALSE;
3316 fExternalArcboxes = FALSE;
3317 fExternalCollector = FALSE;
3318 fExternalINIs = FALSE;
3319 fCopyDefault = FALSE;
3320 fFollowTree = FALSE;
3321 fLoadSubject = TRUE;
3322 fLoadLongnames = TRUE;
3323 fDontMoveMouse = FALSE;
3324 fUnHilite = TRUE;
3325 fUserListSwitches = FALSE;
3326 fDCOpens = FALSE;
3327 fLinkSetsIcon = FALSE;
3328 fConfirmDelete = TRUE;
3329 fSyncUpdates = FALSE;
3330 fRealIdle = FALSE;
3331 fNoIconsFiles = FALSE;
3332 fNoIconsDirs = FALSE;
3333 fFolderAfterExtract = FALSE;
3334 fVerify = TRUE;
[1354]3335 DosSetVerify(TRUE);
[551]3336 fNoSearch = TRUE;
3337 fForceUpper = FALSE;
3338 fForceLower = TRUE;
3339 fArcStuffVisible = TRUE;
3340 fVTreeOpensWPS = FALSE;
3341 fRemoteBug = TRUE;
3342 fDragndropDlg = TRUE;
3343 fMinOnOpen = FALSE;
3344 fQuickArcFind = TRUE;
3345 fNoRemovableScan = FALSE;
[783]3346 FilesToGet = FILESTOGET_MAX;
[551]3347 fFreeTree = FALSE;
3348 fSplitStatus = TRUE;
3349 fAutoTile = TRUE;
3350 fSaveState = TRUE;
3351 fStartMinimized = FALSE;
3352 fStartMaximized = FALSE;
3353 fDataMin = TRUE;
3354 ulCnrType = CCS_EXTENDSEL;
3355 fNoTreeGap = FALSE;
3356 {
[1394]3357 ULONG flWindowAttr;
[2]3358
[1394]3359 flWindowAttr = (CV_NAME | CV_MINI | CV_FLOW | CA_DETAILSVIEWTITLES);
3360 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
3361 &flWindowAttr, sizeof(ULONG));
3362 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
3363 &flWindowAttr, sizeof(ULONG));
[551]3364 }
[1065]3365 dsDirCnrDefault.detailslongname = FALSE;
3366 dsDirCnrDefault.detailssubject = FALSE;
3367 dsDirCnrDefault.detailsea = TRUE;
3368 dsDirCnrDefault.detailssize = TRUE;
3369 dsDirCnrDefault.detailsicon = TRUE;
3370 dsDirCnrDefault.detailslwdate = TRUE;
3371 dsDirCnrDefault.detailslwtime = TRUE;
3372 dsDirCnrDefault.detailsladate = FALSE;
3373 dsDirCnrDefault.detailslatime = FALSE;
3374 dsDirCnrDefault.detailscrdate = FALSE;
3375 dsDirCnrDefault.detailscrtime = FALSE;
3376 dsDirCnrDefault.detailsattr = TRUE;
[551]3377 sortFlags = SORT_FILENAME | SORT_DIRSFIRST;
3378 CollectorsortFlags = SORT_FILENAME | SORT_DIRSFIRST;
3379 if (hwndMain) {
[2]3380
[1394]3381 SWP swp;
[2]3382
[1394]3383 if (WinQueryWindowPos(hwndMain, &swp)) {
3384 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
3385 swp.cx / 5,
3386 swp.cy -
3387 (WinQuerySysValue(HWND_DESKTOP, SV_CYICON) * 2),
3388 SWP_MOVE | SWP_SIZE);
3389 }
[551]3390 }
3391 if (hwndTree) {
[2]3392
[1394]3393 CNRINFO cnri;
3394 ULONG flWindowAttr = (CV_TREE | CV_TEXT |
3395 CV_FLOW | CA_TREELINE | CV_MINI);
[2]3396
[1394]3397 memset(&cnri, 0, sizeof(cnri));
3398 cnri.cb = sizeof(cnri);
3399 WinSendMsg(WinWindowFromID
3400 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3401 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3402 cnri.flWindowAttr = flWindowAttr;
3403 WinSendMsg(WinWindowFromID
3404 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3405 CM_SETCNRINFO, MPFROMP(&cnri),
3406 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3407 }
3408 break;
[2]3409
[551]3410 case CFG9_WINDOZETHINK:
3411 fTileBackwards = FALSE;
3412 ulCnrType = CCS_MULTIPLESEL;
3413 fFollowTree = TRUE;
3414 fTopDir = FALSE;
3415 fSwitchTree = TRUE;
3416 fSwitchTreeOnFocus = FALSE;
3417 fSwitchTreeExpand = TRUE;
3418 fCollapseFirst = TRUE;
3419 fDCOpens = FALSE;
3420 {
[1394]3421 ULONG flWindowAttr;
[2]3422
[1394]3423 flWindowAttr = CV_NAME | CV_FLOW | CA_DETAILSVIEWTITLES;
3424 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
3425 &flWindowAttr, sizeof(ULONG));
3426 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
3427 &flWindowAttr, sizeof(ULONG));
[551]3428 }
3429 fLinkSetsIcon = FALSE;
3430 fFreeTree = FALSE;
3431 fNoTreeGap = TRUE;
3432 fExternalArcboxes = TRUE;
3433 fExternalViewer = TRUE;
3434 fExternalCollector = TRUE;
3435 fExternalINIs = TRUE;
3436 fUserListSwitches = TRUE;
3437 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), UM_UNDO, MPVOID,
[1394]3438 MPVOID);
[551]3439 if (hwndTree) {
[2]3440
[1394]3441 CNRINFO cnri;
3442 ULONG flWindowAttr = CV_TREE | CV_MINI | CV_ICON |
3443 CV_FLOW | CA_TREELINE;
[2]3444
[1394]3445 memset(&cnri, 0, sizeof(cnri));
3446 cnri.cb = sizeof(cnri);
3447 WinSendMsg(WinWindowFromID
3448 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3449 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3450 cnri.flWindowAttr = flWindowAttr;
3451 WinSendMsg(WinWindowFromID
3452 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3453 CM_SETCNRINFO, MPFROMP(&cnri),
3454 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3455 }
3456 if (hwndMain) {
[1394]3457 if (fAutoView)
3458 WinSendMsg(hwndMain, WM_COMMAND,
3459 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
3460 if (!fDrivebar)
3461 WinSendMsg(hwndMain, WM_COMMAND,
3462 MPFROM2SHORT(IDM_DRIVEBAR, 0), MPVOID);
3463 {
3464 SWP swp;
[2]3465
[1394]3466 if (WinQueryWindowPos(hwndMain, &swp)) {
3467 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
3468 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
3469 }
3470 }
3471 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
3472 PostMsg(MainObjectHwnd, UM_SETDIR, MPFROMLONG(1L), MPVOID);
[551]3473 }
3474 return 0;
[2]3475
[551]3476 case CFG9_DOSTHINK:
3477 fTileBackwards = TRUE;
3478 ulCnrType = CCS_MULTIPLESEL;
3479 fSwitchTree = TRUE;
3480 fSwitchTreeOnFocus = FALSE;
3481 fSwitchTreeExpand = TRUE;
3482 fCollapseFirst = TRUE;
3483 fFollowTree = TRUE;
3484 fTopDir = FALSE;
3485 if (hwndMain) {
[1394]3486 if (!fTextTools)
3487 WinSendMsg(hwndMain, WM_COMMAND,
3488 MPFROM2SHORT(IDM_TEXTTOOLS, 0), MPVOID);
[551]3489 }
3490 {
[1394]3491 ULONG flWindowAttr;
[2]3492
[1394]3493 flWindowAttr = CV_TEXT | CV_FLOW | CA_DETAILSVIEWTITLES;
3494 PrfWriteProfileData(fmprof, appname, "DirflWindowAttr",
3495 &flWindowAttr, sizeof(ULONG));
3496 PrfWriteProfileData(fmprof, appname, "CollectorflWindowAttr",
3497 &flWindowAttr, sizeof(ULONG));
[551]3498 }
3499 if (hwndTree) {
[2]3500
[1394]3501 CNRINFO cnri;
3502 ULONG flWindowAttr = CV_TREE | CV_TEXT | CV_FLOW | CA_TREELINE;
[2]3503
[1394]3504 memset(&cnri, 0, sizeof(cnri));
3505 cnri.cb = sizeof(cnri);
3506 WinSendMsg(WinWindowFromID
3507 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3508 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3509 cnri.flWindowAttr = flWindowAttr;
3510 WinSendMsg(WinWindowFromID
3511 (WinWindowFromID(hwndTree, FID_CLIENT), TREE_CNR),
3512 CM_SETCNRINFO, MPFROMP(&cnri),
3513 MPFROMLONG(CMA_FLWINDOWATTR));
[551]3514 }
3515 /* intentional fallthru */
3516 case CFG9_1X:
3517 if (SHORT1FROMMP(mp1) == CFG9_1X) {
[1394]3518 fTileBackwards = FALSE;
3519 ulCnrType = CCS_MULTIPLESEL | CCS_EXTENDSEL;
3520 fSwitchTree = FALSE;
3521 fSwitchTreeOnFocus = FALSE;
3522 fSwitchTreeExpand = FALSE;
3523 fCollapseFirst = FALSE;
3524 fFollowTree = FALSE;
3525 fNoSearch = TRUE;
[551]3526 }
3527 fAutoTile = TRUE;
3528 fSaveState = TRUE;
3529 fDCOpens = FALSE;
3530 fLinkSetsIcon = FALSE;
3531 fFreeTree = FALSE;
3532 fNoTreeGap = TRUE;
3533 fExternalArcboxes = TRUE;
3534 fExternalViewer = TRUE;
3535 fExternalCollector = TRUE;
3536 fExternalINIs = TRUE;
3537 fUserListSwitches = TRUE;
3538 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), UM_UNDO, MPVOID,
[1394]3539 MPVOID);
[551]3540 if (hwndTree) {
[2]3541
[1394]3542 CNRINFO cnri;
3543 ULONG flWindowAttr = CV_TREE | CV_ICON | CV_FLOW | CA_TREELINE;
[2]3544
[1394]3545 memset(&cnri, 0, sizeof(cnri));
3546 cnri.cb = sizeof(cnri);
3547 WinSendMsg(WinWindowFromID(WinWindowFromID(hwndTree, FID_CLIENT),
3548 TREE_CNR),
3549 CM_QUERYCNRINFO, MPFROMP(&cnri), MPFROMLONG(sizeof(cnri)));
3550 cnri.flWindowAttr = flWindowAttr;
3551 WinSendMsg(WinWindowFromID(WinWindowFromID(hwndTree, FID_CLIENT),
3552 TREE_CNR),
3553 CM_SETCNRINFO,
3554 MPFROMP(&cnri), MPFROMLONG(CMA_FLWINDOWATTR));
[551]3555 }
3556 if (hwndMain) {
[1394]3557 if (fAutoView)
3558 WinSendMsg(hwndMain, WM_COMMAND,
3559 MPFROM2SHORT(IDM_AUTOVIEW, 0), MPVOID);
3560 if (fUserComboBox)
3561 WinSendMsg(hwndMain, WM_COMMAND,
3562 MPFROM2SHORT(IDM_USERLIST, 0), MPVOID);
3563 {
3564 SWP swp;
[2]3565
[1394]3566 if (WinQueryWindowPos(hwndMain, &swp)) {
3567 WinSetWindowPos(hwndTree, HWND_TOP, 0, 0,
3568 swp.cx / 5, swp.cy, SWP_MOVE | SWP_SIZE);
3569 }
3570 }
3571 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2L));
3572 PostMsg(MainObjectHwnd, UM_SETDIR, MPVOID, MPVOID);
[551]3573 }
3574 return 0;
[2]3575
[551]3576 case DID_CANCEL:
3577 WinSendMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
[187]3578
[551]3579 case DID_OK:
3580 PostMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER), msg, mp1, mp2);
3581 return 0;
[2]3582
[551]3583 default:
3584 return 0;
3585 }
[961]3586 // Save new details settings and refresh windows
[997]3587 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLongname",
[1394]3588 &dsDirCnrDefault.detailslongname, sizeof(BOOL));
[997]3589 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSubject",
[1394]3590 &dsDirCnrDefault.detailssubject, sizeof(BOOL));
[997]3591 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsEA",
[1394]3592 &dsDirCnrDefault.detailsea, sizeof(BOOL));
[997]3593 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsSize",
[1394]3594 &dsDirCnrDefault.detailssize, sizeof(BOOL));
[997]3595 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsIcon",
[1394]3596 &dsDirCnrDefault.detailsicon, sizeof(BOOL));
[997]3597 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWDate",
[1394]3598 &dsDirCnrDefault.detailslwdate, sizeof(BOOL));
[997]3599 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLWTime",
[1394]3600 &dsDirCnrDefault.detailslwtime, sizeof(BOOL));
[997]3601 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLADate",
[1394]3602 &dsDirCnrDefault.detailsladate, sizeof(BOOL));
[997]3603 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsLATime",
[1394]3604 &dsDirCnrDefault.detailslatime, sizeof(BOOL));
[997]3605 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRDate",
[1394]3606 &dsDirCnrDefault.detailscrdate, sizeof(BOOL));
[997]3607 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsCRTime",
[1394]3608 &dsDirCnrDefault.detailscrtime, sizeof(BOOL));
[997]3609 PrfWriteProfileData(fmprof, appname, "DirCnr.DetailsAttr",
[1394]3610 &dsDirCnrDefault.detailsattr, sizeof(BOOL));
[551]3611 if (hwndMain) {
[961]3612 // Save state and restore to refresh windows with new settings
[789]3613 if (SaveDirCnrState(hwndMain, GetPString(IDS_FM2TEMPTEXT)) > 0) {
[1394]3614 // Tell window procedure to close container windows
3615 PostMsg(MainObjectHwnd, UM_RESTORE, MPVOID, MPFROMLONG(2));
3616 // Restore saved state
3617 PostMsg(MainObjectHwnd, UM_RESTORE, (PSZ)GetPString(IDS_FM2TEMPTEXT), MPVOID);
[2]3618 }
[551]3619 }
3620 WinSendMsg((HWND) WinQueryWindowULong(hwnd, QWL_USER),
[1394]3621 UM_UNDO, MPVOID, MPVOID);
[551]3622 return 0;
[2]3623
[551]3624 case WM_CLOSE:
3625 break;
[2]3626 }
[551]3627 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]3628}
3629
[917]3630struct
3631{
3632 USHORT usMenuId;
3633 USHORT usFrameId;
3634 ULONG ulTitle;
3635 PFNWP pfnPageProc;
3636 HWND hwnd;
3637 ULONG ulHelpId;
3638 ULONG ulPageId;
3639} np[] = {
3640 { IDM_DIRCNRSETTINGS, CFGD_FRAME, IDS_NOTEDIRCNRS1TEXT, CfgDDlgProc, 0, 0, 0 },
[953]3641 { IDM_DIRVIEWSETTINGS, CFG5_FRAME, IDS_NOTEDIRVIEW1TEXT, Cfg5DlgProc, 0, 0, 0},
3642 { IDM_DIRSORTSETTINGS, CFG6_FRAME, IDS_NOTEDIRSORT1TEXT, Cfg6DlgProc, 0, 0, 0 },
3643 { IDM_COLLECTORVIEWSETTINGS, CFG5_FRAME, IDS_NOTECOLVIEW1TEXT, Cfg7DlgProc, 0, 0, 0 },
3644 { IDM_COLLECTORSORTSETTINGS, CFG6_FRAME, IDS_NOTECOLSORT1TEXT, Cfg8DlgProc, 0, 0, 0 },
[917]3645 { IDM_ARCHIVERSETTINGS, CFGA_FRAME, IDS_NOTEARCHIVER1TEXT, CfgADlgProc, 0, 0, 0 },
[953]3646 { IDM_TREECNRVIEWSETTINGS, CFGT_FRAME, IDS_NOTETREE1TEXT, CfgTDlgProc, 0, 0, 0 },
3647 { IDM_TREECNRSORTSETTINGS, CFGTS_FRAME, IDS_NOTETREESORT1TEXT, CfgTSDlgProc, 0, 0, 0 },
3648 { IDM_VIEWERSETTINGS, CFGV_FRAME, IDS_NOTEVIEWERS1TEXT, CfgVDlgProc, 0, 0, 0 },
3649 { IDM_VIEWERSETTINGS2, CFGH_FRAME, IDS_NOTEVIEWERS3TEXT, CfgHDlgProc, 0, 0, 0 },
[917]3650 { IDM_COMPARESETTINGS, CFGC_FRAME, IDS_NOTECOMPARE1TEXT, CfgCDlgProc, 0, 0, 0 },
[953]3651 { IDM_MONOLITHICSETTINGS, CFGM_FRAME, IDS_NOTEMONOLITHIC1TEXT, CfgMDlgProc, 0, 0, 0 },
3652 { IDM_GENERALSETTINGS, CFGG_FRAME, IDS_NOTEGENERAL1TEXT, CfgGDlgProc, 0, 0, 0 },
3653 { IDM_SCANSETTINGS, CFGS_FRAME, IDS_NOTESCANNING1TEXT, CfgSDlgProc, 0, 0, 0 },
3654 { IDM_BUBBLESSETTINGS, CFGB_FRAME, IDS_NOTEBUBBLE1TEXT, CfgBDlgProc, 0, 0, 0 },
[917]3655 { IDM_QUICKSETTINGS, CFG9_FRAME, IDS_NOTEQUICK1TEXT, Cfg9DlgProc, 0, 0, 0 },
[1161]3656 { 0, 0, 0, NULL, 0, 0, 0 } // usFrameId 0 is end marker
[551]3657};
[2]3658
[953]3659static PSZ pszIK_LastSettingsPage = "LastSettingsPage";
3660
[551]3661MRESULT EXPENTRY CfgDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[187]3662{
[551]3663 HWND hwndTemp;
[2]3664 USHORT attrib = BKA_FIRST;
[551]3665 INT x;
[917]3666 ULONG ulPageId;
[953]3667 UINT uPageIndex;
[1080]3668 HAB hab;
3669 static HACCEL haccelCfg = NULLHANDLE;
[2]3670
[551]3671 switch (msg) {
3672 case WM_INITDLG:
3673 hwndNotebook = hwnd;
[953]3674 uPageIndex = 0;
[1080]3675 hab = WinQueryAnchorBlock(hwnd);
3676 if (haccelCfg == NULLHANDLE) {
3677 haccelCfg = WinLoadAccelTable(hab, FM3ModHandle, CFG_FRAME);
3678 if (haccelCfg == NULLHANDLE)
[1394]3679 Win_Error(hwndNotebook, HWND_DESKTOP, pszSrcFile, __LINE__, "WinLoadAccelTable");
[1080]3680 }
3681 if (haccelCfg != NULLHANDLE) {
3682 if (!WinSetAccelTable(hab, haccelCfg, hwndNotebook))
[1394]3683 Win_Error(hwndNotebook, HWND_DESKTOP, pszSrcFile, __LINE__, "WinSetAccelTable");
[1080]3684 // else
[1394]3685 // DbgMsg(pszSrcFile, __LINE__, "WinSetAccelTable MAIN_DRIVELIST %x %x", hwndFrame, haccelDriveList);
[1080]3686 }
[953]3687
3688 // If generic call, try to find conditional cascade default
3689 // 15 Feb 08 SHL fixme to be gone when/if IDM_NOTEBOOK gone?
3690 if (mp2 == MPFROMLONG(IDM_NOTEBOOK)) {
3691 DbgMsg(pszSrcFile, __LINE__, "Trying to translate IDM_NOTEBOOK");
3692 hwndTemp = WinQueryWindow(hwnd, QW_OWNER);
3693 if (hwndTemp != HWND_DESKTOP) {
[1394]3694 HWND hwndMenu;
3695 // Owner is frame if not applet
3696 hwndMenu = WinWindowFromID(hwndTemp, FID_MENU);
3697 if (hwndMenu == NULLHANDLE)
3698 Runtime_Error(pszSrcFile, __LINE__, "FID_MENU");
3699 else {
3700 MENUITEM mi;
3701 BOOL ok;
3702 memset(&mi, 0, sizeof(mi));
3703 ok = (BOOL)WinSendMsg(hwndMenu,
3704 MM_QUERYITEM,
3705 MPFROM2SHORT(IDM_NOTEBOOKSUBMENU, TRUE),
3706 MPFROMP(&mi));
3707 if (!ok)
3708 Runtime_Error(pszSrcFile, __LINE__, "IDM_NOTEBOOKSUBMENU");
3709 else {
3710 mp2 = WinSendMsg(mi.hwndSubMenu, MM_QUERYDEFAULTITEMID, MPVOID, MPVOID);
3711 //if (!mp2) // causes spurious error message on new installs GKY 1-9-09
3712 // mp2 = MPFROMLONG(IDM_QUICKSETTINGS);
3713 //Runtime_Error(pszSrcFile, __LINE__, "MM_QUERYDEFAULTITEMID");
3714 }
3715 }
[2]3716 }
[551]3717 }
[953]3718
[551]3719 PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID);
3720 WinSendDlgItemMsg(hwnd,
[1394]3721 CFG_NOTEBOOK,
3722 BKM_SETDIMENSIONS,
3723 MPFROM2SHORT(82, 24), MPFROMLONG(BKA_MAJORTAB));
[551]3724 WinSendDlgItemMsg(hwnd,
[1394]3725 CFG_NOTEBOOK,
3726 BKM_SETDIMENSIONS,
3727 MPFROM2SHORT(20, 20), MPFROMLONG(BKA_PAGEBUTTON));
[551]3728 WinSendDlgItemMsg(hwnd,
[1394]3729 CFG_NOTEBOOK,
3730 BKM_SETDIMENSIONS,
3731 MPFROM2SHORT(0, 0), MPFROMLONG(BKA_MINORTAB));
[953]3732
3733 // Build and insert notebook pages
[917]3734 for (x = 0; np[x].usFrameId; x++) {
[551]3735 hwndTemp = WinLoadDlg(HWND_DESKTOP,
[1394]3736 HWND_DESKTOP,
3737 np[x].pfnPageProc, FM3ModHandle, np[x].usFrameId, MPVOID);
[917]3738 if (!hwndTemp) {
[1394]3739 Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
3740 "Can not load settings page %u", x);
[917]3741 }
3742 else {
[1394]3743 WinSetWindowULong(hwndTemp, QWL_USER, (ULONG)hwnd);
3744 np[x].hwnd = hwndTemp;
3745 np[x].ulPageId = (ULONG)WinSendDlgItemMsg(hwnd,
3746 CFG_NOTEBOOK,
3747 BKM_INSERTPAGE,
3748 MPFROMLONG(BKA_FIRST),
3749 MPFROM2SHORT(BKA_AUTOPAGESIZE |
3750 BKA_STATUSTEXTON |
3751 BKA_MAJOR, attrib));
3752 attrib = BKA_LAST;
3753 WinSendDlgItemMsg(hwnd,
3754 CFG_NOTEBOOK,
3755 BKM_SETPAGEWINDOWHWND,
3756 MPFROMLONG(np[x].ulPageId), MPFROMLONG(np[x].hwnd));
3757 WinSendDlgItemMsg(hwnd,
3758 CFG_NOTEBOOK,
3759 BKM_SETTABTEXT,
3760 MPFROMLONG(np[x].ulPageId),
3761 MPFROMP(GetPString(np[x].ulTitle)));
3762 WinSendDlgItemMsg(hwnd,
3763 CFG_NOTEBOOK,
3764 BKM_SETSTATUSLINETEXT,
3765 MPFROMLONG(np[x].ulPageId),
3766 MPFROMP(GetPString(np[x].ulTitle + 1)));
[1096]3767
[1394]3768 if (LONGFROMMP(mp2) == np[x].usMenuId)
3769 uPageIndex = x; // Remember selected page
[2]3770 }
[953]3771 } // for pages
3772
[917]3773 // If quick settings page requested, assume request is for first time init
3774 // Turn to cfg page and show help
3775 // Page will not be available if running fm/2 lite or if load error
[953]3776 // 15 Feb 08 SHL fixme to do just once?
[917]3777 if (mp2 == MPFROMLONG(IDM_QUICKSETTINGS) &&
[1394]3778 x-- > 0 &&
3779 np[x].hwnd &&
3780 np[x].usFrameId == CFG9_FRAME)
[953]3781 {
[919]3782 // 10 Jan 08 SHL fixme to document what UM_SETDIR 1 means
[1109]3783 //PostMsg(MainObjectHwnd, UM_SETDIR, MPFROMLONG(1), MPVOID);
[917]3784 PostMsg(WinWindowFromID(hwnd, CFG_NOTEBOOK),
[1394]3785 BKM_TURNTOPAGE, MPFROMLONG(np[x].ulPageId), MPVOID);
[917]3786 PostMsg(hwnd, UM_FOCUSME, MPFROMLONG(np[x].hwnd), MPVOID);
3787 PostMsg(np[x].hwnd, WM_COMMAND, MPFROM2SHORT(IDM_HELP, 0), MPVOID);
[551]3788 }
[953]3789 else if (uPageIndex >= x) {
3790 Runtime_Error(pszSrcFile, __LINE__, "uPageIndex corrupted (%u)",
[1394]3791 uPageIndex);
[953]3792 uPageIndex = 0;
[551]3793 }
[953]3794 PostMsg(WinWindowFromID(hwnd, CFG_NOTEBOOK),
[1394]3795 BKM_TURNTOPAGE, MPFROMLONG(np[uPageIndex].ulPageId), MPVOID);
[953]3796 // 15 Feb 08 SHL fixme to put focus on first field of page
[2]3797
[906]3798 break;
3799
[551]3800 case UM_FOCUSME:
3801 if (mp1)
3802 WinSetActiveWindow(HWND_DESKTOP, (HWND) mp1);
3803 break;
[2]3804
[551]3805 case UM_SETUP:
3806 WinSetActiveWindow(HWND_DESKTOP, WinQueryWindow(hwnd, QW_OWNER));
3807 WinSetActiveWindow(HWND_DESKTOP, hwnd);
3808 return 0;
[2]3809
[1080]3810 case WM_HELP:
3811 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, mp2);
3812 break;
3813
3814 case WM_CHAR:
3815 if (CHARMSG(&msg)->fs & KC_VIRTUALKEY) {
3816 switch (CHARMSG(&msg)->vkey) {
[1394]3817 case VK_F3:
3818 case VK_ENTER:
3819 case VK_NEWLINE:
3820 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_OK, MPVOID);
3821 return 0;
3822 break;
3823 case VK_ESC:
3824 PostMsg(hwnd, WM_COMMAND, (MPARAM)DID_CANCEL, MPVOID);
3825 return 0;
3826 break;
3827 case VK_F1:
3828 PostMsg(hwnd, WM_COMMAND, (MPARAM)IDM_HELP, MPVOID);
3829 return 0;
3830 break;
[1080]3831 }
3832 }
3833 break;
3834
[551]3835 case WM_COMMAND:
3836 switch (SHORT1FROMMP(mp1)) {
3837 case DID_OK:
[1109]3838 SaveLastPageIndex(hwnd);
[551]3839 WinDismissDlg(hwnd, 1);
3840 break;
[2]3841
[551]3842 case DID_CANCEL:
3843 // Tell current page to undo itself in case changed and still alive
[953]3844 SaveLastPageIndex(hwnd);
[917]3845 ulPageId = (ULONG) WinSendDlgItemMsg(hwnd,
[1394]3846 CFG_NOTEBOOK,
3847 BKM_QUERYPAGEID,
3848 MPFROMLONG(0),
3849 MPFROM2SHORT(BKA_TOP, 0));
[551]3850 hwndTemp = (HWND) WinSendDlgItemMsg(hwnd,
[1394]3851 CFG_NOTEBOOK,
3852 BKM_QUERYPAGEWINDOWHWND,
3853 MPFROMLONG(ulPageId), MPVOID);
[551]3854 if (hwndTemp)
[1394]3855 WinSendMsg(hwndTemp, UM_UNDO, MPVOID, MPVOID);
[187]3856
[551]3857 WinDismissDlg(hwnd, 0);
3858 break;
[2]3859
[1161]3860 case IDM_HELP: /* relay message to appropriate page's window */
[917]3861 ulPageId = (ULONG) WinSendDlgItemMsg(hwnd,
[1394]3862 CFG_NOTEBOOK,
3863 BKM_QUERYPAGEID,
3864 MPFROMLONG(0),
3865 MPFROM2SHORT(BKA_TOP, 0));
[551]3866 hwndTemp = (HWND) WinSendDlgItemMsg(hwnd,
[1394]3867 CFG_NOTEBOOK,
3868 BKM_QUERYPAGEWINDOWHWND,
3869 MPFROMLONG(ulPageId), MPVOID);
[551]3870 if (hwndTemp)
[1394]3871 PostMsg(hwndTemp, WM_COMMAND, MPFROM2SHORT(IDM_HELP, 0), MPVOID);
[2]3872 break;
[551]3873 }
3874 return 0;
[2]3875
[551]3876 case UM_UNDO:
[917]3877 for (x = 0; np[x].usFrameId; x++) {
[551]3878 if (np[x].hwnd)
[1394]3879 WinSendMsg(np[x].hwnd, UM_UNDO, MPVOID, MPVOID);
[551]3880 }
3881 break;
3882
3883 case WM_DESTROY:
[917]3884 if (np[0].usFrameId) {
3885 for (x = 1; np[x].usFrameId; x++) {
[1394]3886 if (np[x].hwnd) {
3887 WinSendMsg(np[x].hwnd, WM_CLOSE, MPVOID, MPVOID);
3888 np[x].hwnd = (HWND) 0;
3889 np[x].ulPageId = 0;
3890 }
[2]3891 }
[551]3892 WinSendMsg(np[0].hwnd, WM_CLOSE, MPVOID, MPVOID);
3893 np[0].hwnd = (HWND) 0;
[917]3894 np[0].ulPageId = 0;
[551]3895 }
3896 hwndNotebook = (HWND) 0;
3897 break;
[917]3898 case WM_CLOSE:
[1109]3899 //SaveLastPageIndex(hwnd);
[917]3900 break;
[2]3901 }
[551]3902 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]3903}
[953]3904/**
3905 * Initialize config submenu
3906 * @param hwndMenu is window handle
3907 * @param fIsLite is true if called for fm/2 lite
3908 */
[783]3909
[953]3910VOID CfgMenuInit(HWND hwndMenu, BOOL fIsLite)
3911{
3912 UINT uPageIndex;
3913 ULONG ulSize = sizeof(uPageIndex);
3914 UINT x;
3915 PrfQueryProfileData(fmprof, appname, pszIK_LastSettingsPage, &uPageIndex, &ulSize);
3916 for (x = 0; x < uPageIndex && np[x].usFrameId; x++)
[1161]3917 ; // Search
[953]3918 if (np[x].usMenuId)
3919 SetConditionalCascade(hwndMenu, IDM_NOTEBOOKSUBMENU, np[uPageIndex].usMenuId);
3920 // If lite, delete excess items from menus and tables
3921 if (fIsLite) {
3922 WinSendMsg(hwndMenu,
[1394]3923 MM_DELETEITEM,
3924 MPFROM2SHORT(IDM_QUICKSETTINGS, FALSE), MPVOID);
[953]3925 // If fm/2 lite drop quick setting page
3926 for (x = 0; np[x].usFrameId && np[x].usFrameId != CFG9_FRAME; x++)
3927 ; // Scan
3928 np[x].usFrameId = 0;
3929 }
3930}
3931
3932static VOID SaveLastPageIndex(HWND hwnd)
3933{
3934 HWND hwndOwner;
3935 HWND hwndMenu;
3936 UINT x;
3937 ULONG ulPageId;
3938
3939 // Owner is frame if not applet
3940 hwndOwner = WinQueryWindow(hwnd, QW_OWNER);
3941 if (hwndOwner != HWND_DESKTOP) {
3942 ulPageId = (ULONG)WinSendDlgItemMsg(hwnd,
[1394]3943 CFG_NOTEBOOK,
3944 BKM_QUERYPAGEID,
3945 MPFROMLONG(0),
3946 MPFROM2SHORT(BKA_TOP, 0));
[953]3947 if (!ulPageId)
3948 Runtime_Error(pszSrcFile, __LINE__, "BKM_QUERYPAGEID");
3949 else {
3950 for (x = 0; np[x].usMenuId && np[x].ulPageId != ulPageId; x++)
[1394]3951 ; // Scan
[953]3952 if (!np[x].usMenuId)
[1394]3953 Runtime_Error(pszSrcFile, __LINE__, "bad menu id %lu", ulPageId);
[953]3954 else {
[1394]3955 PrfWriteProfileData(fmprof, FM3Str, pszIK_LastSettingsPage,
3956 (PVOID)&x, sizeof(x));
3957 hwndMenu = WinWindowFromID(hwndOwner, FID_MENU);
3958 SetConditionalCascade(hwndMenu, IDM_NOTEBOOKSUBMENU, np[x].usMenuId);
[953]3959 }
3960 }
3961 }
3962}
3963
[783]3964#pragma alloc_text(NOTEBOOK,CfgTDlgProc,CfgTSDlgProc,CfgMDlgProc)
[892]3965#pragma alloc_text(NOTEBOOK2,CfgADlgProc,CfgSDlgProc,CfgVDlgProc,CfgHDlgProc)
[783]3966#pragma alloc_text(NOTEBOOK3,CfgDDlgProc,Cfg5DlgProc,Cfg6DlgProc)
3967#pragma alloc_text(NOTEBOOK4,Cfg7DlgProc,Cfg8DlgProc,CfgCDlgProc)
3968#pragma alloc_text(NOTEBOOK5,CfgGDlgProc,CfgDlgProc,CfgBDlgProc)
[953]3969#pragma alloc_text(NOTEBOOK5,CfgMenuInit,SaveLastPageIndex)
Note: See TracBrowser for help on using the repository browser.