Changeset 551 for trunk/dll/notebook.c


Ignore:
Timestamp:
Feb 28, 2007, 2:33:51 AM (18 years ago)
Author:
Gregg Young
Message:

Indentation cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/notebook.c

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