Changeset 551 for trunk/dll/common.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/common.c

    r536 r551  
    4848#pragma alloc_text(COMMON5,OpenDirCnr)
    4949
    50 
    51 MRESULT EXPENTRY CommonFrameWndProc (USHORT id,
    52                                      HWND hwnd,
    53                                      ULONG msg,
    54                                      MPARAM mp1,
    55                                      MPARAM mp2)
    56 {
    57   PFNWP oldproc = (PFNWP)WinQueryWindowPtr(hwnd,0);
    58 
    59   switch(msg) {
    60     case UM_TIMER:
    61     case UM_ACTION:
    62     case UM_SHOWME:
    63     case UM_OPENWINDOWFORME:
    64     case UM_MINIMIZE:
    65     case UM_MAXIMIZE:
    66     case UM_CONTAINERDIR:
    67     case UM_FILTER:
    68     case UM_INITMENU:
    69     case UM_COMMAND:
    70     case UM_UPDATERECORD:
    71     case UM_UPDATERECORDLIST:
    72     case WM_COMMAND:
    73     case MM_PORTHOLEINIT:
    74     case WM_INITMENU:
    75     case UM_CONTAINER_FILLED:
    76     case UM_FILESMENU:
    77       return WinSendMsg(WinWindowFromID(hwnd,FID_CLIENT),msg,mp1,mp2);
    78 
    79     case UM_CONTEXTMENU:
    80       PostMsg(WinWindowFromID(hwnd,FID_CLIENT),msg,mp1,mp2);
    81       return 0;
    82 
    83     case UM_CONTAINERHWND:
    84       return MRFROMLONG(WinWindowFromID(hwnd,id));
    85 
    86     case DM_DROP:
    87     case DM_DRAGOVER:
    88     case DM_DRAGLEAVE:
    89     case DM_DROPHELP:
    90       {
    91         CNRDRAGINFO cnd;
    92         USHORT      dcmd;
    93 
    94         switch(msg) {
    95           case DM_DROP:
    96             dcmd = CN_DROP;
    97             break;
    98           case DM_DRAGOVER:
    99             dcmd = CN_DRAGOVER;
    100             break;
    101           case DM_DRAGLEAVE:
    102             dcmd = CN_DRAGLEAVE;
    103             break;
    104           case DM_DROPHELP:
    105             dcmd = CN_DROPHELP;
    106             break;
    107         }
    108         cnd.pDragInfo = (PDRAGINFO)mp1;
    109         cnd.pRecord = NULL;
    110         return WinSendMsg(WinWindowFromID(hwnd,FID_CLIENT),
    111                           WM_CONTROL,
    112                           MPFROM2SHORT(id,dcmd),
    113                           MPFROMP(&cnd));
    114       }
    115 
    116     case UM_RESCAN:
    117       if(fAutoTile &&
    118          !fAmClosing &&
    119          !fNoTileUpdate &&
    120          !ParentIsDesktop(hwnd,(HWND)0))
    121         PostMsg(WinQueryWindow(hwnd,QW_PARENT),
    122                 UM_RESCAN,
    123                 MPVOID,
    124                 MPVOID);
    125       return 0;
    126 
    127     case WM_MINMAXFRAME:
    128       {
    129         PSWP    pswp = (PSWP)mp1;
    130         MRESULT rc;
    131 
    132         rc = oldproc(hwnd,msg,mp1,mp2);
    133         if(pswp->fl & (SWP_MINIMIZE | SWP_HIDE | SWP_RESTORE))
    134           WinSendMsg(hwnd,UM_RESCAN,MPVOID,MPVOID);
    135         return rc;
    136       }
    137 
    138     case WM_DESTROY:
    139       WinSendMsg(hwnd,UM_RESCAN,MPVOID,MPVOID);
    140       break;
    141   }
    142   return oldproc(hwnd,msg,mp1,mp2);
    143 }
    144 
    145 
    146 MRESULT EXPENTRY CommonTextProc (HWND hwnd,
    147                                  ULONG msg,
    148                                  MPARAM mp1,
    149                                  MPARAM mp2)
    150 {
    151   switch(msg) {
    152     case WM_CREATE:
    153       {
    154         MRESULT rc;
    155         char    font[] = "8.Helv";
    156 
    157         rc = PFNWPStatic(hwnd,msg,mp1,mp2);
    158         switch(WinQueryWindowUShort(hwnd,QWS_ID)) {
    159           case DIR_SORT:
    160           case DIR_VIEW:
    161           case DIR_FILTER:
    162             *font = '7';
    163         }
    164         SetPresParams(hwnd,
    165                       &RGBGREY,
    166                       &RGBBLACK,
    167                       &RGBBLACK,
    168                       font);
    169         return rc;
    170       }
    171   }
    172   return PFNWPStatic(hwnd,msg,mp1,mp2);
    173 }
    174 
    175 
    176 void CommonTextPaint (HWND hwnd,HPS hps)
     50MRESULT EXPENTRY CommonFrameWndProc(USHORT id,
     51                                    HWND hwnd,
     52                                    ULONG msg, MPARAM mp1, MPARAM mp2)
     53{
     54  PFNWP oldproc = (PFNWP) WinQueryWindowPtr(hwnd, 0);
     55
     56  switch (msg) {
     57  case UM_TIMER:
     58  case UM_ACTION:
     59  case UM_SHOWME:
     60  case UM_OPENWINDOWFORME:
     61  case UM_MINIMIZE:
     62  case UM_MAXIMIZE:
     63  case UM_CONTAINERDIR:
     64  case UM_FILTER:
     65  case UM_INITMENU:
     66  case UM_COMMAND:
     67  case UM_UPDATERECORD:
     68  case UM_UPDATERECORDLIST:
     69  case WM_COMMAND:
     70  case MM_PORTHOLEINIT:
     71  case WM_INITMENU:
     72  case UM_CONTAINER_FILLED:
     73  case UM_FILESMENU:
     74    return WinSendMsg(WinWindowFromID(hwnd, FID_CLIENT), msg, mp1, mp2);
     75
     76  case UM_CONTEXTMENU:
     77    PostMsg(WinWindowFromID(hwnd, FID_CLIENT), msg, mp1, mp2);
     78    return 0;
     79
     80  case UM_CONTAINERHWND:
     81    return MRFROMLONG(WinWindowFromID(hwnd, id));
     82
     83  case DM_DROP:
     84  case DM_DRAGOVER:
     85  case DM_DRAGLEAVE:
     86  case DM_DROPHELP:
     87    {
     88      CNRDRAGINFO cnd;
     89      USHORT dcmd;
     90
     91      switch (msg) {
     92      case DM_DROP:
     93        dcmd = CN_DROP;
     94        break;
     95      case DM_DRAGOVER:
     96        dcmd = CN_DRAGOVER;
     97        break;
     98      case DM_DRAGLEAVE:
     99        dcmd = CN_DRAGLEAVE;
     100        break;
     101      case DM_DROPHELP:
     102        dcmd = CN_DROPHELP;
     103        break;
     104      }
     105      cnd.pDragInfo = (PDRAGINFO) mp1;
     106      cnd.pRecord = NULL;
     107      return WinSendMsg(WinWindowFromID(hwnd, FID_CLIENT),
     108                        WM_CONTROL, MPFROM2SHORT(id, dcmd), MPFROMP(&cnd));
     109    }
     110
     111  case UM_RESCAN:
     112    if (fAutoTile &&
     113        !fAmClosing && !fNoTileUpdate && !ParentIsDesktop(hwnd, (HWND) 0))
     114      PostMsg(WinQueryWindow(hwnd, QW_PARENT), UM_RESCAN, MPVOID, MPVOID);
     115    return 0;
     116
     117  case WM_MINMAXFRAME:
     118    {
     119      PSWP pswp = (PSWP) mp1;
     120      MRESULT rc;
     121
     122      rc = oldproc(hwnd, msg, mp1, mp2);
     123      if (pswp->fl & (SWP_MINIMIZE | SWP_HIDE | SWP_RESTORE))
     124        WinSendMsg(hwnd, UM_RESCAN, MPVOID, MPVOID);
     125      return rc;
     126    }
     127
     128  case WM_DESTROY:
     129    WinSendMsg(hwnd, UM_RESCAN, MPVOID, MPVOID);
     130    break;
     131  }
     132  return oldproc(hwnd, msg, mp1, mp2);
     133}
     134
     135MRESULT EXPENTRY CommonTextProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
     136{
     137  switch (msg) {
     138  case WM_CREATE:
     139    {
     140      MRESULT rc;
     141      char font[] = "8.Helv";
     142
     143      rc = PFNWPStatic(hwnd, msg, mp1, mp2);
     144      switch (WinQueryWindowUShort(hwnd, QWS_ID)) {
     145      case DIR_SORT:
     146      case DIR_VIEW:
     147      case DIR_FILTER:
     148        *font = '7';
     149      }
     150      SetPresParams(hwnd, &RGBGREY, &RGBBLACK, &RGBBLACK, font);
     151      return rc;
     152    }
     153  }
     154  return PFNWPStatic(hwnd, msg, mp1, mp2);
     155}
     156
     157void CommonTextPaint(HWND hwnd, HPS hps)
    177158{
    178159  int x;
    179   USHORT ids[]   = {DIR_FOLDERICON,DIR_TOTALS,DIR_SELECTED,DIR_VIEW,
    180                     DIR_FILTER,DIR_SORT,DIR_MAX,0};
    181   BOOL   bools[] = {TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE};
    182 
    183   for(x = 0;ids[x];x++) {
    184     if(WinWindowFromID(hwnd,ids[x]) != (HWND)0)
    185       PaintRecessedWindow(WinWindowFromID(hwnd,ids[x]),hps,
    186                           bools[x],FALSE);
    187   }
    188 }
    189 
    190 
    191 void CommonCreateTextChildren (HWND hwnd,char *class,USHORT *ids)
    192 {
    193   int   x;
    194   CHAR  s[33];
     160  USHORT ids[] = { DIR_FOLDERICON, DIR_TOTALS, DIR_SELECTED, DIR_VIEW,
     161    DIR_FILTER, DIR_SORT, DIR_MAX, 0
     162  };
     163  BOOL bools[] = { TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE };
     164
     165  for (x = 0; ids[x]; x++) {
     166    if (WinWindowFromID(hwnd, ids[x]) != (HWND) 0)
     167      PaintRecessedWindow(WinWindowFromID(hwnd, ids[x]), hps,
     168                          bools[x], FALSE);
     169  }
     170}
     171
     172void CommonCreateTextChildren(HWND hwnd, char *class, USHORT * ids)
     173{
     174  int x;
     175  CHAR s[33];
    195176  ULONG attrs;
    196177  HWND hwndTmp;
     
    201182  }
    202183
    203   for(x = 0;ids[x];x++) {
     184  for (x = 0; ids[x]; x++) {
    204185    *s = 0;
    205     switch(ids[x]) {
    206       case DIR_SORT:
    207       case DIR_FILTER:
    208       case DIR_VIEW:
    209         attrs = SS_TEXT | DT_LEFT | DT_VCENTER;
    210         break;
    211       case DIR_FOLDERICON:
    212       case DIR_MAX:
    213         attrs = SS_BITMAP;
    214         sprintf(s,"#%d",ids[x]);
    215         break;
    216       default:
    217         attrs = SS_TEXT | DT_CENTER | DT_VCENTER;
    218         break;
    219     }
    220     hwndTmp = WinCreateWindow(hwnd,class,s,attrs,0,0,0,0,hwnd,
    221                               HWND_TOP,ids[x],NULL,NULL);
     186    switch (ids[x]) {
     187    case DIR_SORT:
     188    case DIR_FILTER:
     189    case DIR_VIEW:
     190      attrs = SS_TEXT | DT_LEFT | DT_VCENTER;
     191      break;
     192    case DIR_FOLDERICON:
     193    case DIR_MAX:
     194      attrs = SS_BITMAP;
     195      sprintf(s, "#%d", ids[x]);
     196      break;
     197    default:
     198      attrs = SS_TEXT | DT_CENTER | DT_VCENTER;
     199      break;
     200    }
     201    hwndTmp = WinCreateWindow(hwnd, class, s, attrs, 0, 0, 0, 0, hwnd,
     202                              HWND_TOP, ids[x], NULL, NULL);
    222203    if (!hwndTmp)
    223       Win_Error2(hwnd,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
    224   } // for
    225 }
    226 
    227 
    228 void CommonDriveCmd (HWND hwnd,char *drive,USHORT cmd)
     204      Win_Error2(hwnd, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
     205  }                                     // for
     206}
     207
     208void CommonDriveCmd(HWND hwnd, char *drive, USHORT cmd)
    229209{
    230210  char dv[CCHMAXPATH];
    231211
    232   if(!drive || !*drive)
     212  if (!drive || !*drive)
    233213    return;
    234   strcpy(dv,drive);
     214  strcpy(dv, drive);
    235215  MakeValidDir(dv);
    236216
    237   switch(cmd) {
    238     case IDM_MKDIR:
    239       PMMkDir(hwnd,
    240               dv,
    241               FALSE);
    242       break;
    243     case IDM_INFO:
    244       WinDlgBox(HWND_DESKTOP,
    245                 HWND_DESKTOP,
    246                 DrvInfoProc,
    247                 FM3ModHandle,
    248                 INFO_FRAME,
    249                 (PVOID)dv);
    250       break;
    251     case IDM_DRVFLAGS:
    252       if(WinDlgBox(HWND_DESKTOP,
    253                    hwnd,
    254                    SetDrvProc,
    255                    FM3ModHandle,
    256                    DVS_FRAME,
    257                    MPFROMP(dv)) &&
    258          hwndTree)
    259         PostMsg(hwndTree,
    260                 WM_COMMAND,
    261                 MPFROM2SHORT(IDM_UPDATE,0),
    262                 MPVOID);
    263       break;
    264     case IDM_SIZES:
    265       WinDlgBox(HWND_DESKTOP,
    266                 HWND_DESKTOP,
    267                 DirSizeProc,
    268                 FM3ModHandle,
    269                 DSZ_FRAME,
    270                 dv);
    271       break;
    272     case IDM_SHOWALLFILES:
    273       StartSeeAll(HWND_DESKTOP,
    274                   FALSE,
    275                   dv);
    276       break;
    277     case IDM_UNDELETE:
    278       WinDlgBox(HWND_DESKTOP,
    279                 hwnd,
    280                 UndeleteDlgProc,
    281                 FM3ModHandle,
    282                 UNDEL_FRAME,
    283                 MPFROMP(dv));
    284       break;
    285     case IDM_CHKDSK:
    286       runemf2(SEPARATE | WINDOWED,
    287               hwnd,
    288               NULL,
    289               NULL,
    290               "PMCHKDSK.EXE %c:",
    291               toupper(*dv));
    292       break;
    293     case IDM_OPTIMIZE:
    294       {
    295         CHAR  FileSystem[CCHMAXPATH];
    296         ULONG type;
    297 
    298         CheckDrive(*dv,FileSystem,&type);
    299         if(*FileSystem) {
    300           strcat(FileSystem,"OPT.CMD");
    301           runemf2(SEPARATE | WINDOWED,
    302                   hwnd,
    303                   NULL,
    304                   NULL,
    305                   "%s /C %s %c:",
    306                   GetCmdSpec(FALSE),
    307                   FileSystem,
    308                   toupper(*dv));
    309         }
    310       }
    311       break;
    312     case IDM_FORMAT:
    313       runemf2(SEPARATE | WINDOWED,
    314               hwnd,
    315               NULL,
    316               NULL,
    317               "PMFORMAT.EXE %c:",
    318               toupper(*dv));
    319       break;
    320 
    321 #if 0 // fixme to be gone?
    322 
    323     case IDM_CLOSETRAY:
    324       if(driveflags[*dv - 'A'] & DRIVE_CDROM) {
    325 
    326         BYTE   parm[4] = {"CD01"};
    327         ULONG  dlen,plen;
    328         HFILE  hfile;
    329         APIRET rc;
    330 
    331         dv[2] = 0;
    332         rc = DosOpen(dv,
    333                      &hfile,
    334                      &dlen,
    335                      0,
    336                      0,
    337                      OPEN_ACTION_OPEN_IF_EXISTS |
    338                      OPEN_ACTION_CREATE_IF_NEW,
    339                      OPEN_FLAGS_DASD |
    340                      OPEN_FLAGS_FAIL_ON_ERROR |
    341                      OPEN_SHARE_DENYNONE,
    342                      NULL);
    343         if (rc)
    344           Dos_Error(MB_CANCEL,rc,hwnd,pszSrcFile,__LINE__,"DosOpen");
    345         else {
    346           dlen = 0;
    347           plen = sizeof(parm);
    348           rc = DosDevIOCtl(hfile,
    349                            0x80,
    350                            0x45,
    351                            &parm,
    352                            sizeof(parm),
    353                            &plen,
    354                            NULL,
    355                            0,
    356                            &dlen);
    357           DosClose(hfile);
    358           if (rc)
    359             Dos_Error(MB_CANCEL,rc,hwnd,pszSrcFile,__LINE__,"DosDevIOCtl");
    360         }
    361       }
    362       break;
     217  switch (cmd) {
     218  case IDM_MKDIR:
     219    PMMkDir(hwnd, dv, FALSE);
     220    break;
     221  case IDM_INFO:
     222    WinDlgBox(HWND_DESKTOP,
     223              HWND_DESKTOP,
     224              DrvInfoProc, FM3ModHandle, INFO_FRAME, (PVOID) dv);
     225    break;
     226  case IDM_DRVFLAGS:
     227    if (WinDlgBox(HWND_DESKTOP,
     228                  hwnd,
     229                  SetDrvProc,
     230                  FM3ModHandle, DVS_FRAME, MPFROMP(dv)) && hwndTree)
     231      PostMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_UPDATE, 0), MPVOID);
     232    break;
     233  case IDM_SIZES:
     234    WinDlgBox(HWND_DESKTOP,
     235              HWND_DESKTOP, DirSizeProc, FM3ModHandle, DSZ_FRAME, dv);
     236    break;
     237  case IDM_SHOWALLFILES:
     238    StartSeeAll(HWND_DESKTOP, FALSE, dv);
     239    break;
     240  case IDM_UNDELETE:
     241    WinDlgBox(HWND_DESKTOP,
     242              hwnd, UndeleteDlgProc, FM3ModHandle, UNDEL_FRAME, MPFROMP(dv));
     243    break;
     244  case IDM_CHKDSK:
     245    runemf2(SEPARATE | WINDOWED,
     246            hwnd, NULL, NULL, "PMCHKDSK.EXE %c:", toupper(*dv));
     247    break;
     248  case IDM_OPTIMIZE:
     249    {
     250      CHAR FileSystem[CCHMAXPATH];
     251      ULONG type;
     252
     253      CheckDrive(*dv, FileSystem, &type);
     254      if (*FileSystem) {
     255        strcat(FileSystem, "OPT.CMD");
     256        runemf2(SEPARATE | WINDOWED,
     257                hwnd,
     258                NULL,
     259                NULL,
     260                "%s /C %s %c:", GetCmdSpec(FALSE), FileSystem, toupper(*dv));
     261      }
     262    }
     263    break;
     264  case IDM_FORMAT:
     265    runemf2(SEPARATE | WINDOWED,
     266            hwnd, NULL, NULL, "PMFORMAT.EXE %c:", toupper(*dv));
     267    break;
     268
     269#if 0                                   // fixme to be gone?
     270
     271  case IDM_CLOSETRAY:
     272    if (driveflags[*dv - 'A'] & DRIVE_CDROM) {
     273
     274      BYTE parm[4] = { "CD01" };
     275      ULONG dlen, plen;
     276      HFILE hfile;
     277      APIRET rc;
     278
     279      dv[2] = 0;
     280      rc = DosOpen(dv,
     281                   &hfile,
     282                   &dlen,
     283                   0,
     284                   0,
     285                   OPEN_ACTION_OPEN_IF_EXISTS |
     286                   OPEN_ACTION_CREATE_IF_NEW,
     287                   OPEN_FLAGS_DASD |
     288                   OPEN_FLAGS_FAIL_ON_ERROR | OPEN_SHARE_DENYNONE, NULL);
     289      if (rc)
     290        Dos_Error(MB_CANCEL, rc, hwnd, pszSrcFile, __LINE__, "DosOpen");
     291      else {
     292        dlen = 0;
     293        plen = sizeof(parm);
     294        rc = DosDevIOCtl(hfile,
     295                         0x80,
     296                         0x45, &parm, sizeof(parm), &plen, NULL, 0, &dlen);
     297        DosClose(hfile);
     298        if (rc)
     299          Dos_Error(MB_CANCEL, rc, hwnd, pszSrcFile, __LINE__, "DosDevIOCtl");
     300      }
     301    }
     302    break;
    363303#endif // fixme to be gone?
    364304
    365 
    366     case IDM_LOCK:
    367     case IDM_UNLOCK:
    368     case IDM_EJECT:
    369       {
    370         BYTE   parm[2];
    371         ULONG  plen = sizeof(parm),dlen = 0L;
    372 
    373         switch(SHORT1FROMMP(cmd)) {
    374           case IDM_LOCK:
    375             parm[0] = 1;
    376             break;
    377           case IDM_UNLOCK:
    378             parm[0] = 0;
    379             break;
    380           case IDM_EJECT:
    381             parm[0] = 2;
    382             break;
    383         }
    384         parm[1] = (BYTE)(*dv - 'A');
    385         DosError(FERR_DISABLEHARDERR);
    386         DosDevIOCtl(-1L,
    387                     8L,
    388                     0x40L,
    389                     &parm,
    390                     sizeof(parm),
    391                     &plen,
    392                     NULL,
    393                     0L,
    394                     &dlen);
    395       }
    396       break;
    397   }
    398 }
    399 
    400 
    401 void CommonCreateMainChildren (HWND hwnd,SWP *swp)
    402 {
    403   HWND hwndFrame = WinQueryWindow(hwnd,QW_PARENT);
     305  case IDM_LOCK:
     306  case IDM_UNLOCK:
     307  case IDM_EJECT:
     308    {
     309      BYTE parm[2];
     310      ULONG plen = sizeof(parm), dlen = 0L;
     311
     312      switch (SHORT1FROMMP(cmd)) {
     313      case IDM_LOCK:
     314        parm[0] = 1;
     315        break;
     316      case IDM_UNLOCK:
     317        parm[0] = 0;
     318        break;
     319      case IDM_EJECT:
     320        parm[0] = 2;
     321        break;
     322      }
     323      parm[1] = (BYTE) (*dv - 'A');
     324      DosError(FERR_DISABLEHARDERR);
     325      DosDevIOCtl(-1L,
     326                  8L, 0x40L, &parm, sizeof(parm), &plen, NULL, 0L, &dlen);
     327    }
     328    break;
     329  }
     330}
     331
     332void CommonCreateMainChildren(HWND hwnd, SWP * swp)
     333{
     334  HWND hwndFrame = WinQueryWindow(hwnd, QW_PARENT);
    404335  HWND hwndTmp;
    405336  PFNWP oldproc;
     
    407338  // Create a children of frame window
    408339  hwndStatus = WinCreateWindow(hwndFrame,
    409                                GetPString(IDS_WCSTATUS),
    410                                "Status",
    411                                WS_VISIBLE | SS_TEXT | DT_LEFT |
    412                                 DT_VCENTER,
    413                                swp->x + 4 +
    414                                 WinQuerySysValue(HWND_DESKTOP,
    415                                                  SV_CXSIZEBORDER),
    416                                swp->y + 4 +
    417                                 WinQuerySysValue(HWND_DESKTOP,
    418                                                  SV_CYSIZEBORDER),
    419                                ((swp->cx / 2) - 8) -
    420                                 (WinQuerySysValue(HWND_DESKTOP,
    421                                                   SV_CXSIZEBORDER) * 2),
    422                                20,
    423                                hwndFrame,
    424                                HWND_TOP,
    425                                MAIN_STATUS,
    426                                NULL,
    427                                NULL);
     340                               GetPString(IDS_WCSTATUS),
     341                               "Status",
     342                               WS_VISIBLE | SS_TEXT | DT_LEFT |
     343                               DT_VCENTER,
     344                               swp->x + 4 +
     345                               WinQuerySysValue(HWND_DESKTOP,
     346                                                SV_CXSIZEBORDER),
     347                               swp->y + 4 +
     348                               WinQuerySysValue(HWND_DESKTOP,
     349                                                SV_CYSIZEBORDER),
     350                               ((swp->cx / 2) - 8) -
     351                               (WinQuerySysValue(HWND_DESKTOP,
     352                                                 SV_CXSIZEBORDER) * 2),
     353                               20,
     354                               hwndFrame, HWND_TOP, MAIN_STATUS, NULL, NULL);
    428355  if (!hwndStatus)
    429     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     356    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    430357
    431358  hwndStatus2 = WinCreateWindow(hwndFrame,
    432                                 GetPString(IDS_WCSTATUS),
    433                                 "Status2",
    434                                 WS_VISIBLE | SS_TEXT | DT_LEFT |
    435                                  DT_VCENTER,
    436                                 ((swp->cx / 2) + 4) +
    437                                  WinQuerySysValue(HWND_DESKTOP,
    438                                                   SV_CXSIZEBORDER),
    439                                 ((swp->cy / 2) + 4) +
    440                                  WinQuerySysValue(HWND_DESKTOP,
    441                                                   SV_CYSIZEBORDER),
    442                                 ((swp->cx / 2) - 8) -
    443                                  (WinQuerySysValue(HWND_DESKTOP,
    444                                                    SV_CXSIZEBORDER) * 2),
    445                                 20,
    446                                 hwndFrame,
    447                                 HWND_TOP,
    448                                 MAIN_STATUS2,
    449                                 NULL,
    450                                 NULL);
     359                                GetPString(IDS_WCSTATUS),
     360                                "Status2",
     361                                WS_VISIBLE | SS_TEXT | DT_LEFT |
     362                                DT_VCENTER,
     363                                ((swp->cx / 2) + 4) +
     364                                WinQuerySysValue(HWND_DESKTOP,
     365                                                 SV_CXSIZEBORDER),
     366                                ((swp->cy / 2) + 4) +
     367                                WinQuerySysValue(HWND_DESKTOP,
     368                                                 SV_CYSIZEBORDER),
     369                                ((swp->cx / 2) - 8) -
     370                                (WinQuerySysValue(HWND_DESKTOP,
     371                                                  SV_CXSIZEBORDER) * 2),
     372                                20,
     373                                hwndFrame,
     374                                HWND_TOP, MAIN_STATUS2, NULL, NULL);
    451375  if (!hwndStatus2)
    452     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     376    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    453377
    454378  hwndAttr = WinCreateWindow(hwndFrame,
    455                              GetPString(IDS_WCSTATUS),
    456                              "Attr",
    457                              WS_VISIBLE | SS_TEXT | DT_CENTER |
    458                               DT_VCENTER,
    459                              swp->x + 4 +
    460                               WinQuerySysValue(HWND_DESKTOP,
    461                                                SV_CXSIZEBORDER),
    462                              swp->y + 4 + 24 +
    463                               WinQuerySysValue(HWND_DESKTOP,
    464                                                SV_CYSIZEBORDER),
    465                              ((swp->cx / 4) - 8) -
    466                               (WinQuerySysValue(HWND_DESKTOP,
    467                                                 SV_CXSIZEBORDER) * 2),
    468                              20,
    469                              hwndFrame,
    470                              HWND_TOP,
    471                              IDM_ATTRS,
    472                              NULL,
    473                              NULL);
     379                             GetPString(IDS_WCSTATUS),
     380                             "Attr",
     381                             WS_VISIBLE | SS_TEXT | DT_CENTER |
     382                             DT_VCENTER,
     383                             swp->x + 4 +
     384                             WinQuerySysValue(HWND_DESKTOP,
     385                                              SV_CXSIZEBORDER),
     386                             swp->y + 4 + 24 +
     387                             WinQuerySysValue(HWND_DESKTOP,
     388                                              SV_CYSIZEBORDER),
     389                             ((swp->cx / 4) - 8) -
     390                             (WinQuerySysValue(HWND_DESKTOP,
     391                                               SV_CXSIZEBORDER) * 2),
     392                             20, hwndFrame, HWND_TOP, IDM_ATTRS, NULL, NULL);
    474393  if (!hwndAttr)
    475     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     394    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    476395
    477396  hwndDate = WinCreateWindow(hwndFrame,
    478                              GetPString(IDS_WCSTATUS),
    479                              "Date",
    480                              WS_VISIBLE | SS_TEXT | DT_CENTER |
    481                               DT_VCENTER,
    482                              ((swp->x / 4) * 2) + 4 +
    483                               WinQuerySysValue(HWND_DESKTOP,
    484                                                SV_CXSIZEBORDER),
    485                              swp->y + 4 + 24 +
    486                               WinQuerySysValue(HWND_DESKTOP,
    487                                                SV_CYSIZEBORDER),
    488                              ((swp->cx / 4) - 8) -
    489                               (WinQuerySysValue(HWND_DESKTOP,
    490                                                 SV_CXSIZEBORDER) * 2),
    491                              20,
    492                              hwndFrame,
    493                              HWND_TOP,
    494                              IDM_INFO,
    495                              NULL,
    496                              NULL);
     397                             GetPString(IDS_WCSTATUS),
     398                             "Date",
     399                             WS_VISIBLE | SS_TEXT | DT_CENTER |
     400                             DT_VCENTER,
     401                             ((swp->x / 4) * 2) + 4 +
     402                             WinQuerySysValue(HWND_DESKTOP,
     403                                              SV_CXSIZEBORDER),
     404                             swp->y + 4 + 24 +
     405                             WinQuerySysValue(HWND_DESKTOP,
     406                                              SV_CYSIZEBORDER),
     407                             ((swp->cx / 4) - 8) -
     408                             (WinQuerySysValue(HWND_DESKTOP,
     409                                               SV_CXSIZEBORDER) * 2),
     410                             20, hwndFrame, HWND_TOP, IDM_INFO, NULL, NULL);
    497411  if (!hwndDate)
    498     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     412    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    499413
    500414  hwndName = WinCreateWindow(hwndFrame,
    501                              GetPString(IDS_WCSTATUS),
    502                              "Name",
    503                              WS_VISIBLE | SS_TEXT | DT_LEFT |
    504                               DT_VCENTER,
    505                              ((swp->x / 4) * 3) + 4 +
    506                               WinQuerySysValue(HWND_DESKTOP,
    507                                                SV_CXSIZEBORDER),
    508                              swp->y + 4 +
    509                               WinQuerySysValue(HWND_DESKTOP,
    510                                                SV_CYSIZEBORDER),
    511                              ((swp->cx / 4) - 8) -
    512                               (WinQuerySysValue(HWND_DESKTOP,
    513                                                 SV_CXSIZEBORDER) * 2),
    514                              20,
    515                              hwndFrame,
    516                              HWND_TOP,
    517                              IDM_RENAME,
    518                              NULL,
    519                              NULL);
     415                             GetPString(IDS_WCSTATUS),
     416                             "Name",
     417                             WS_VISIBLE | SS_TEXT | DT_LEFT |
     418                             DT_VCENTER,
     419                             ((swp->x / 4) * 3) + 4 +
     420                             WinQuerySysValue(HWND_DESKTOP,
     421                                              SV_CXSIZEBORDER),
     422                             swp->y + 4 +
     423                             WinQuerySysValue(HWND_DESKTOP,
     424                                              SV_CYSIZEBORDER),
     425                             ((swp->cx / 4) - 8) -
     426                             (WinQuerySysValue(HWND_DESKTOP,
     427                                               SV_CXSIZEBORDER) * 2),
     428                             20, hwndFrame, HWND_TOP, IDM_RENAME, NULL, NULL);
    520429  if (!hwndName)
    521     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     430    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    522431
    523432  hwndTmp = WinCreateWindow(hwndFrame,
    524                   GetPString(IDS_WCTOOLBACK),
    525                   NullStr,
    526                   WS_VISIBLE | SS_TEXT | DT_CENTER | DT_VCENTER,
    527                   swp->x +
    528                    WinQuerySysValue(HWND_DESKTOP,
    529                                     SV_CXSIZEBORDER),
    530                   (swp->cy -
    531                    WinQuerySysValue(HWND_DESKTOP,
    532                                     SV_CYSIZEBORDER)) - 30,
    533                   swp->cx -
    534                    (WinQuerySysValue(HWND_DESKTOP,
    535                                      SV_CXSIZEBORDER) * 2),
    536                   30,
    537                   hwndFrame,
    538                   HWND_TOP,
    539                   MAIN_TOOLS,
    540                   NULL,
    541                   NULL);
     433                            GetPString(IDS_WCTOOLBACK),
     434                            NullStr,
     435                            WS_VISIBLE | SS_TEXT | DT_CENTER | DT_VCENTER,
     436                            swp->x +
     437                            WinQuerySysValue(HWND_DESKTOP,
     438                                             SV_CXSIZEBORDER),
     439                            (swp->cy -
     440                             WinQuerySysValue(HWND_DESKTOP,
     441                                              SV_CYSIZEBORDER)) - 30,
     442                            swp->cx -
     443                            (WinQuerySysValue(HWND_DESKTOP,
     444                                              SV_CXSIZEBORDER) * 2),
     445                            30, hwndFrame, HWND_TOP, MAIN_TOOLS, NULL, NULL);
    542446  if (!hwndTmp)
    543     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     447    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    544448
    545449  hwndBack = WinCreateWindow(hwndFrame,
    546                              GetPString(IDS_WCDRIVEBACK),
    547                              NullStr,
    548                              WS_VISIBLE | SS_TEXT | DT_RIGHT | DT_BOTTOM,
    549                              swp->x +
    550                              WinQuerySysValue(HWND_DESKTOP,
    551                                               SV_CXSIZEBORDER),
    552                              (swp->cy -
    553                               WinQuerySysValue(HWND_DESKTOP,
    554                                                SV_CYSIZEBORDER)) - 30,
    555                              swp->cx -
    556                               (WinQuerySysValue(HWND_DESKTOP,
    557                                                 SV_CXSIZEBORDER) * 2),
    558                              30,
    559                              hwndFrame,
    560                              HWND_TOP,
    561                              MAIN_DRIVES,
    562                              NULL,
    563                              NULL);
     450                             GetPString(IDS_WCDRIVEBACK),
     451                             NullStr,
     452                             WS_VISIBLE | SS_TEXT | DT_RIGHT | DT_BOTTOM,
     453                             swp->x +
     454                             WinQuerySysValue(HWND_DESKTOP,
     455                                              SV_CXSIZEBORDER),
     456                             (swp->cy -
     457                              WinQuerySysValue(HWND_DESKTOP,
     458                                               SV_CYSIZEBORDER)) - 30,
     459                             swp->cx -
     460                             (WinQuerySysValue(HWND_DESKTOP,
     461                                               SV_CXSIZEBORDER) * 2),
     462                             30,
     463                             hwndFrame, HWND_TOP, MAIN_DRIVES, NULL, NULL);
    564464
    565465  if (!hwndBack)
    566     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     466    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    567467
    568468  hwndLED = WinCreateWindow(hwndFrame,
    569                             GetPString(IDS_WCLED),
    570                             "#920",
    571                             WS_VISIBLE | SS_BITMAP,
    572                             swp->cx - 58,
    573                             swp->y,
    574                             12,
    575                             12,
    576                             hwndFrame,
    577                             HWND_TOP,
    578                             MAIN_LED,
    579                             NULL,
    580                             NULL);
     469                            GetPString(IDS_WCLED),
     470                            "#920",
     471                            WS_VISIBLE | SS_BITMAP,
     472                            swp->cx - 58,
     473                            swp->y,
     474                            12,
     475                            12, hwndFrame, HWND_TOP, MAIN_LED, NULL, NULL);
    581476  if (!hwndLED)
    582     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     477    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    583478
    584479  hwndLEDHdr = WinCreateWindow(hwndFrame,
    585                                GetPString(IDS_WCLED),
    586                                "0",
    587                                WS_VISIBLE | SS_TEXT | DT_VCENTER |
    588                                 DT_CENTER,
    589                                swp->cx - 58,
    590                                swp->y + 12,
    591                                12,
    592                                12,
    593                                hwndFrame,
    594                                HWND_TOP,
    595                                MAIN_LEDHDR,
    596                                NULL,
    597                                NULL);
     480                               GetPString(IDS_WCLED),
     481                               "0",
     482                               WS_VISIBLE | SS_TEXT | DT_VCENTER |
     483                               DT_CENTER,
     484                               swp->cx - 58,
     485                               swp->y + 12,
     486                               12,
     487                               12,
     488                               hwndFrame, HWND_TOP, MAIN_LEDHDR, NULL, NULL);
    598489  if (!hwndLEDHdr)
    599     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     490    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    600491
    601492  hwndAutoview = WinCreateWindow(hwndFrame,
    602                                  GetPString(IDS_WCAUTOVIEW),
    603                                  NullStr,
    604                                  WS_VISIBLE | SS_TEXT | DT_LEFT |
    605                                  DT_TOP | DT_WORDBREAK,
    606                                  swp->x + 4 +
    607                                   WinQuerySysValue(HWND_DESKTOP,
    608                                                    SV_CXSIZEBORDER),
    609                                  swp->y + 4 +
    610                                   WinQuerySysValue(HWND_DESKTOP,
    611                                                    SV_CYSIZEBORDER) + 16,
    612                                  (swp->cx - 8) -
    613                                   (WinQuerySysValue(HWND_DESKTOP,
    614                                                     SV_CXSIZEBORDER) * 2),
    615                                  48,
    616                                  hwndFrame,
    617                                  HWND_TOP,
    618                                  MAIN_AUTOVIEW,
    619                                  NULL,
    620                                  NULL);
     493                                 GetPString(IDS_WCAUTOVIEW),
     494                                 NullStr,
     495                                 WS_VISIBLE | SS_TEXT | DT_LEFT |
     496                                 DT_TOP | DT_WORDBREAK,
     497                                 swp->x + 4 +
     498                                 WinQuerySysValue(HWND_DESKTOP,
     499                                                  SV_CXSIZEBORDER),
     500                                 swp->y + 4 +
     501                                 WinQuerySysValue(HWND_DESKTOP,
     502                                                  SV_CYSIZEBORDER) + 16,
     503                                 (swp->cx - 8) -
     504                                 (WinQuerySysValue(HWND_DESKTOP,
     505                                                   SV_CXSIZEBORDER) * 2),
     506                                 48,
     507                                 hwndFrame,
     508                                 HWND_TOP, MAIN_AUTOVIEW, NULL, NULL);
    621509  if (!hwndAutoview)
    622     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     510    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
    623511
    624512  hwndAutoMLE = WinCreateWindow(hwndFrame,
    625                                 // GetPString(IDS_WCAUTOVIEW),
    626                                 WC_MLE,
    627                                 NullStr,
    628                                 WS_VISIBLE | MLS_HSCROLL |
    629                                 MLS_VSCROLL | MLS_BORDER,
    630                                 swp->x + 4 +
    631                                  WinQuerySysValue(HWND_DESKTOP,
    632                                                   SV_CXSIZEBORDER),
    633                                 swp->y + 4 +
    634                                  WinQuerySysValue(HWND_DESKTOP,
    635                                                   SV_CYSIZEBORDER) + 16,
    636                                 (swp->cx - 8) -
    637                                  (WinQuerySysValue(HWND_DESKTOP,
    638                                                    SV_CXSIZEBORDER) * 2),
    639                                 48,
    640                                 hwndFrame,
    641                                 HWND_TOP,
    642                                 MAIN_AUTOVIEWMLE,
    643                                 NULL,
    644                                 NULL);
     513                                // GetPString(IDS_WCAUTOVIEW),
     514                                WC_MLE,
     515                                NullStr,
     516                                WS_VISIBLE | MLS_HSCROLL |
     517                                MLS_VSCROLL | MLS_BORDER,
     518                                swp->x + 4 +
     519                                WinQuerySysValue(HWND_DESKTOP,
     520                                                 SV_CXSIZEBORDER),
     521                                swp->y + 4 +
     522                                WinQuerySysValue(HWND_DESKTOP,
     523                                                 SV_CYSIZEBORDER) + 16,
     524                                (swp->cx - 8) -
     525                                (WinQuerySysValue(HWND_DESKTOP,
     526                                                  SV_CXSIZEBORDER) * 2),
     527                                48,
     528                                hwndFrame,
     529                                HWND_TOP, MAIN_AUTOVIEWMLE, NULL, NULL);
    645530  if (!hwndAutoMLE)
    646     Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
    647 
    648   oldproc = WinSubclassWindow(hwndAutoMLE,AutoViewProc);
    649   WinSetWindowPtr(hwndAutoMLE,0,(PVOID)oldproc);
    650   PostMsg(hwndAutoMLE,UM_SETUP,MPVOID,MPVOID);
    651 }
    652 
    653 MRESULT EXPENTRY CommonMainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
    654 {
    655   switch(msg) {
    656     case UM_THREADUSE:
    657       if (hbmLEDon && hbmLEDoff) {
    658         static LONG threaduse;
    659         CHAR ts[33];
    660 
    661         if(mp1) {
    662           threaduse++;
    663           if (threaduse == 1)
    664             WinSendMsg(hwndLED,
    665                        SM_SETHANDLE,
    666                        MPFROMLONG(hbmLEDon),
    667                        MPVOID);
    668           }
    669           else {
    670             threaduse--;
    671             if(threaduse <= 0) {
    672               threaduse = 0;
    673               WinSendMsg(hwndLED,
    674                          SM_SETHANDLE,
    675                          MPFROMLONG(hbmLEDoff),
    676                          MPVOID);
    677           }
     531    Win_Error2(hwndFrame, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW);
     532
     533  oldproc = WinSubclassWindow(hwndAutoMLE, AutoViewProc);
     534  WinSetWindowPtr(hwndAutoMLE, 0, (PVOID) oldproc);
     535  PostMsg(hwndAutoMLE, UM_SETUP, MPVOID, MPVOID);
     536}
     537
     538MRESULT EXPENTRY CommonMainWndProc(HWND hwnd, ULONG msg, MPARAM mp1,
     539                                   MPARAM mp2)
     540{
     541  switch (msg) {
     542  case UM_THREADUSE:
     543    if (hbmLEDon && hbmLEDoff) {
     544      static LONG threaduse;
     545      CHAR ts[33];
     546
     547      if (mp1) {
     548        threaduse++;
     549        if (threaduse == 1)
     550          WinSendMsg(hwndLED, SM_SETHANDLE, MPFROMLONG(hbmLEDon), MPVOID);
     551      }
     552      else {
     553        threaduse--;
     554        if (threaduse <= 0) {
     555          threaduse = 0;
     556          WinSendMsg(hwndLED, SM_SETHANDLE, MPFROMLONG(hbmLEDoff), MPVOID);
    678557        }
    679         ltoa(threaduse,ts,10);
    680         WinSetWindowText(hwndLEDHdr,ts);
    681         DosSleep(0);
    682       }
    683       return 0;
    684 
    685     case UM_LOADFILE:
    686                         {
    687                                 CHAR                     *s = NULL;
    688                                 static CHAR lastfile[CCHMAXPATH] = "";
    689 
    690                                 if(!fAutoView) {
    691                                         if(*lastfile)
    692             PostMsg((fComments) ? hwndAutoMLE : hwndAutoview,
    693                     UM_LOADFILE,
    694                     MPVOID,
    695                     MPVOID);
    696                                         *lastfile = 0;
    697                                 }
    698                                 else {
    699                                         if(mp1) {
    700                                                 if(!mp2 && !stricmp(lastfile,(CHAR *)mp1))
    701                                                         return 0;
    702                                                 strcpy(lastfile,(CHAR *)mp1);
    703                                                 s = xstrdup(lastfile,pszSrcFile,__LINE__);
    704                                         }
    705                                         else
    706                                                 *lastfile = 0;
    707                                         if(!PostMsg((fComments) ? hwndAutoMLE : hwndAutoview,
    708                                                                                         UM_LOADFILE,
    709                                                                                         MPFROMP(s),
    710                                                                                         MPVOID)) {
    711                                                 if(s)
    712                                                         free(s);
    713                                         }
    714                                 }
    715                         }
    716       return 0;
    717 
    718     case UM_BUILDDRIVEBAR:
    719       BuildDriveBarButtons(WinWindowFromID(WinQueryWindow(hwnd,QW_PARENT),
    720                   MAIN_DRIVES));
    721       return 0;
    722   }
    723   return WinDefWindowProc(hwnd,msg,mp1,mp2);
    724 }
    725 
    726 
    727 MRESULT EXPENTRY CommonTextButton (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
    728 {
    729   static HWND  hwndLast = (HWND)0;
     558      }
     559      ltoa(threaduse, ts, 10);
     560      WinSetWindowText(hwndLEDHdr, ts);
     561      DosSleep(0);
     562    }
     563    return 0;
     564
     565  case UM_LOADFILE:
     566    {
     567      CHAR *s = NULL;
     568      static CHAR lastfile[CCHMAXPATH] = "";
     569
     570      if (!fAutoView) {
     571        if (*lastfile)
     572          PostMsg((fComments) ? hwndAutoMLE : hwndAutoview,
     573                  UM_LOADFILE, MPVOID, MPVOID);
     574        *lastfile = 0;
     575      }
     576      else {
     577        if (mp1) {
     578          if (!mp2 && !stricmp(lastfile, (CHAR *) mp1))
     579            return 0;
     580          strcpy(lastfile, (CHAR *) mp1);
     581          s = xstrdup(lastfile, pszSrcFile, __LINE__);
     582        }
     583        else
     584          *lastfile = 0;
     585        if (!PostMsg((fComments) ? hwndAutoMLE : hwndAutoview,
     586                     UM_LOADFILE, MPFROMP(s), MPVOID)) {
     587          if (s)
     588            free(s);
     589        }
     590      }
     591    }
     592    return 0;
     593
     594  case UM_BUILDDRIVEBAR:
     595    BuildDriveBarButtons(WinWindowFromID(WinQueryWindow(hwnd, QW_PARENT),
     596                                         MAIN_DRIVES));
     597    return 0;
     598  }
     599  return WinDefWindowProc(hwnd, msg, mp1, mp2);
     600}
     601
     602MRESULT EXPENTRY CommonTextButton(HWND hwnd, ULONG msg, MPARAM mp1,
     603                                  MPARAM mp2)
     604{
     605  static HWND hwndLast = (HWND) 0;
    730606  static ULONG lastclick = 0;
    731607
    732   switch(msg) {
    733     case WM_MOUSEMOVE:
    734       shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
    735       if(!fNoFinger) {
    736         WinSetPointer(HWND_DESKTOP,hptrFinger);
    737         return MRFROMLONG(TRUE);
    738       }
    739       break;
    740 
    741     case WM_BUTTON1DOWN:
    742     case WM_BUTTON3DOWN:
    743       if(hwndBubble)
    744         WinDestroyWindow(hwndBubble);
    745       shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
    746       WinSetCapture(HWND_DESKTOP,hwnd);
    747       PaintRecessedWindow(hwnd,(HPS)0,FALSE,FALSE);
    748       break;
    749 
    750     case WM_BUTTON2UP:
    751     case WM_BUTTON2DOWN:
    752       shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
    753       if(msg == WM_BUTTON2UP && hwndLast) {
    754         PostMsg(hwnd,
    755                 UM_FOCUSME,
    756                 MPFROMP(hwndLast),
    757                 MPVOID);
    758         hwndLast = (HWND)0;
    759       }
    760       break;
    761 
    762     case WM_BUTTON1UP:
    763     case WM_BUTTON3UP:
    764       shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
    765       WinSetCapture(HWND_DESKTOP,
    766                     (HWND)0);
    767       PaintRecessedWindow(hwnd,
    768                           (HPS)0,
    769                           TRUE,
    770                           FALSE);
    771       {
    772         ULONG check;
    773 
    774         DosQuerySysInfo(QSV_MS_COUNT,
    775                         QSV_MS_COUNT,
    776                         &check,
    777                         sizeof(check));
    778         if(check > lastclick + 500) {
    779 
    780           RECTL   rcl;
    781           POINTS  pts;
    782 
    783           pts.x = SHORT1FROMMP(mp1);
    784           pts.y = SHORT2FROMMP(mp1);
    785           WinQueryWindowRect(hwnd,&rcl);
    786           if(pts.x > 0 &&
    787              pts.y > 0 &&
    788              pts.x < rcl.xRight &&
    789              pts.y < rcl.yTop)
    790             PostMsg(hwnd,
    791                     UM_CLICKED + (msg == WM_BUTTON3UP),
    792                     mp1,
    793                     mp2);
    794         }
    795         lastclick = check;
    796       }
    797       PostMsg(hwnd,
    798               UM_FOCUSME,
    799               MPFROMP(hwndLast),
    800               MPVOID);
    801       hwndLast = (HWND)0;
    802       break;
    803 
    804     case WM_SETFOCUS:
    805       if(mp2)
    806         hwndLast = (HWND)mp1;
    807       break;
    808 
    809     case UM_FOCUSME:
    810       if(mp1) {
    811 
    812         PID pid;
    813         TID tid;
    814 
    815         if(WinIsWindow(WinQueryAnchorBlock(hwnd),(HWND)mp1) &&
    816            WinQueryWindowProcess((HWND)mp1,&pid,&tid) &&
    817            pid == mypid) {
    818           WinSetFocus(HWND_DESKTOP,
    819                       (HWND)mp1);
    820           return 0;
    821         }
    822       }
    823       {
    824         HWND htemp = (HWND)0;
    825 
    826         if(hwndMain)
    827           htemp = TopWindow(hwndMain,(HWND)0);
    828         if(!htemp)
    829           htemp = hwndTree;
    830         if(htemp)
    831           WinSetFocus(HWND_DESKTOP,htemp);
    832         else
    833           WinSetFocus(HWND_DESKTOP,WinQueryWindow(hwnd,QW_PARENT));
    834       }
    835       return 0;
    836   }
    837 
    838   return PFNWPStatic(hwnd,msg,mp1,mp2);
    839 }
    840 
    841 
    842 MRESULT EXPENTRY CommonCnrProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
    843 {
    844   DIRCNRDATA *dcd = WinQueryWindowPtr(hwnd,0);
    845 
    846   switch(msg) {
    847     case UM_FIXCNRMLE:
    848       if(dcd) {
    849 
    850         SWP swp,swpC;
    851 
    852         if(WinQueryWindowPos(WinWindowFromID(hwnd,CID_MLE),&swp)) {
    853           if(WinQueryWindowPos(hwnd,&swpC)) {
    854             swpC.cx -= (WinQuerySysValue(HWND_DESKTOP,SV_CXVSCROLL) + 4);
    855             swpC.cx -= swp.x;
    856             WinSetWindowPos(WinWindowFromID(hwnd,CID_MLE),
    857                             HWND_TOP,
    858                             0,
    859                             0,
    860                             swpC.cx,
    861                             swp.cy + 2,
    862                             SWP_SIZE);
    863           }
    864         }
    865         if(mp1)
    866           WinSendMsg(WinWindowFromID(hwnd,CID_MLE),
    867                      MLM_SETTEXTLIMIT,
    868                      mp1,
    869                      MPVOID);
    870       }
    871       return 0;
    872 
    873     case UM_FIXEDITNAME:
    874       if(dcd) {
    875         if(mp1 &&
    876            (INT)mp1 != -1) {
    877 
    878           CHAR *p;
    879 
    880           WinSendMsg(hwnd,
    881                      UM_FIXCNRMLE,
    882                      MPFROMLONG(CCHMAXPATH),
    883                      MPVOID);
    884           MLEdelete(WinWindowFromID(hwnd,CID_MLE),
    885                     0,
    886                     strlen((CHAR *)mp1) + 1);
    887           WinSetDlgItemText(hwnd,
    888                             CID_MLE,
    889                             (CHAR *)mp1);
    890           p = strrchr((CHAR *)mp1,'\\');
    891           if(p) {
    892             p++;
    893             MLEsetcurposa(WinWindowFromID(hwnd,CID_MLE),
    894                           (p - (CHAR *)mp1));
    895             MLEsetcurposc(WinWindowFromID(hwnd,CID_MLE),
    896                           strlen((CHAR *)mp1));
    897           }
    898           else
    899             MLEsetcurpos(WinWindowFromID(hwnd,CID_MLE),
    900                          strlen((CHAR *)mp1));
    901         }
    902         else if(mp2) {
    903           if((INT)mp1 == -1) {
    904 
    905             PCNRITEM pci = (PCNRITEM)mp2;
    906 
    907             WinSendMsg(hwnd,
    908                        CM_REMOVERECORD,
    909                        MPFROMP(&pci),
    910                        MPFROM2SHORT(1,CMA_FREE | CMA_INVALIDATE));
    911           }
    912           else {
    913             Broadcast(WinQueryAnchorBlock(hwnd),
    914                       dcd->hwndParent,
    915                       UM_UPDATERECORD,
    916                       mp2,
    917                       MPVOID);
    918             free(mp2);
    919           }
    920         }
    921       }
    922       return 0;
    923   }
    924   return PFNWPCnr(hwnd,msg,mp1,mp2);
    925 }
    926 
    927 
    928 HWND OpenDirCnr (HWND hwnd,HWND hwndParent,HWND hwndRestore,
    929                  BOOL noautotile,char *directory)
    930 {
    931   SWP  swp;
     608  switch (msg) {
     609  case WM_MOUSEMOVE:
     610    shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
     611    if (!fNoFinger) {
     612      WinSetPointer(HWND_DESKTOP, hptrFinger);
     613      return MRFROMLONG(TRUE);
     614    }
     615    break;
     616
     617  case WM_BUTTON1DOWN:
     618  case WM_BUTTON3DOWN:
     619    if (hwndBubble)
     620      WinDestroyWindow(hwndBubble);
     621    shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
     622    WinSetCapture(HWND_DESKTOP, hwnd);
     623    PaintRecessedWindow(hwnd, (HPS) 0, FALSE, FALSE);
     624    break;
     625
     626  case WM_BUTTON2UP:
     627  case WM_BUTTON2DOWN:
     628    shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
     629    if (msg == WM_BUTTON2UP && hwndLast) {
     630      PostMsg(hwnd, UM_FOCUSME, MPFROMP(hwndLast), MPVOID);
     631      hwndLast = (HWND) 0;
     632    }
     633    break;
     634
     635  case WM_BUTTON1UP:
     636  case WM_BUTTON3UP:
     637    shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL));
     638    WinSetCapture(HWND_DESKTOP, (HWND) 0);
     639    PaintRecessedWindow(hwnd, (HPS) 0, TRUE, FALSE);
     640    {
     641      ULONG check;
     642
     643      DosQuerySysInfo(QSV_MS_COUNT, QSV_MS_COUNT, &check, sizeof(check));
     644      if (check > lastclick + 500) {
     645
     646        RECTL rcl;
     647        POINTS pts;
     648
     649        pts.x = SHORT1FROMMP(mp1);
     650        pts.y = SHORT2FROMMP(mp1);
     651        WinQueryWindowRect(hwnd, &rcl);
     652        if (pts.x > 0 && pts.y > 0 && pts.x < rcl.xRight && pts.y < rcl.yTop)
     653          PostMsg(hwnd, UM_CLICKED + (msg == WM_BUTTON3UP), mp1, mp2);
     654      }
     655      lastclick = check;
     656    }
     657    PostMsg(hwnd, UM_FOCUSME, MPFROMP(hwndLast), MPVOID);
     658    hwndLast = (HWND) 0;
     659    break;
     660
     661  case WM_SETFOCUS:
     662    if (mp2)
     663      hwndLast = (HWND) mp1;
     664    break;
     665
     666  case UM_FOCUSME:
     667    if (mp1) {
     668
     669      PID pid;
     670      TID tid;
     671
     672      if (WinIsWindow(WinQueryAnchorBlock(hwnd), (HWND) mp1) &&
     673          WinQueryWindowProcess((HWND) mp1, &pid, &tid) && pid == mypid) {
     674        WinSetFocus(HWND_DESKTOP, (HWND) mp1);
     675        return 0;
     676      }
     677    }
     678    {
     679      HWND htemp = (HWND) 0;
     680
     681      if (hwndMain)
     682        htemp = TopWindow(hwndMain, (HWND) 0);
     683      if (!htemp)
     684        htemp = hwndTree;
     685      if (htemp)
     686        WinSetFocus(HWND_DESKTOP, htemp);
     687      else
     688        WinSetFocus(HWND_DESKTOP, WinQueryWindow(hwnd, QW_PARENT));
     689    }
     690    return 0;
     691  }
     692
     693  return PFNWPStatic(hwnd, msg, mp1, mp2);
     694}
     695
     696MRESULT EXPENTRY CommonCnrProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
     697{
     698  DIRCNRDATA *dcd = WinQueryWindowPtr(hwnd, 0);
     699
     700  switch (msg) {
     701  case UM_FIXCNRMLE:
     702    if (dcd) {
     703
     704      SWP swp, swpC;
     705
     706      if (WinQueryWindowPos(WinWindowFromID(hwnd, CID_MLE), &swp)) {
     707        if (WinQueryWindowPos(hwnd, &swpC)) {
     708          swpC.cx -= (WinQuerySysValue(HWND_DESKTOP, SV_CXVSCROLL) + 4);
     709          swpC.cx -= swp.x;
     710          WinSetWindowPos(WinWindowFromID(hwnd, CID_MLE),
     711                          HWND_TOP, 0, 0, swpC.cx, swp.cy + 2, SWP_SIZE);
     712        }
     713      }
     714      if (mp1)
     715        WinSendMsg(WinWindowFromID(hwnd, CID_MLE),
     716                   MLM_SETTEXTLIMIT, mp1, MPVOID);
     717    }
     718    return 0;
     719
     720  case UM_FIXEDITNAME:
     721    if (dcd) {
     722      if (mp1 && (INT) mp1 != -1) {
     723
     724        CHAR *p;
     725
     726        WinSendMsg(hwnd, UM_FIXCNRMLE, MPFROMLONG(CCHMAXPATH), MPVOID);
     727        MLEdelete(WinWindowFromID(hwnd, CID_MLE),
     728                  0, strlen((CHAR *) mp1) + 1);
     729        WinSetDlgItemText(hwnd, CID_MLE, (CHAR *) mp1);
     730        p = strrchr((CHAR *) mp1, '\\');
     731        if (p) {
     732          p++;
     733          MLEsetcurposa(WinWindowFromID(hwnd, CID_MLE), (p - (CHAR *) mp1));
     734          MLEsetcurposc(WinWindowFromID(hwnd, CID_MLE), strlen((CHAR *) mp1));
     735        }
     736        else
     737          MLEsetcurpos(WinWindowFromID(hwnd, CID_MLE), strlen((CHAR *) mp1));
     738      }
     739      else if (mp2) {
     740        if ((INT) mp1 == -1) {
     741
     742          PCNRITEM pci = (PCNRITEM) mp2;
     743
     744          WinSendMsg(hwnd,
     745                     CM_REMOVERECORD,
     746                     MPFROMP(&pci),
     747                     MPFROM2SHORT(1, CMA_FREE | CMA_INVALIDATE));
     748        }
     749        else {
     750          Broadcast(WinQueryAnchorBlock(hwnd),
     751                    dcd->hwndParent, UM_UPDATERECORD, mp2, MPVOID);
     752          free(mp2);
     753        }
     754      }
     755    }
     756    return 0;
     757  }
     758  return PFNWPCnr(hwnd, msg, mp1, mp2);
     759}
     760
     761HWND OpenDirCnr(HWND hwnd, HWND hwndParent, HWND hwndRestore,
     762                BOOL noautotile, char *directory)
     763{
     764  SWP swp;
    932765  HWND hwndDir;
    933766
    934   if(ParentIsDesktop(hwnd,hwndParent) ||
    935      *(ULONG *)realappname != FM3UL)
    936     StartDirCnr(HWND_DESKTOP,
    937                 directory,
    938                 hwndRestore,
    939                 1);
    940   else if(*(ULONG *)realappname == FM3UL) {
    941     if(!fAutoTile)
    942       GetNextWindowPos(hwndParent,
    943                        &swp,
    944                        NULL,
    945                        NULL);
    946     hwndDir = StartDirCnr(hwndParent,
    947                           directory,
    948                           hwndRestore,
    949                           1);
    950     if(hwndDir) {
    951       if(!fAutoTile)
    952         WinSetWindowPos(hwndDir,
    953                         HWND_TOP,
    954                         swp.x,
    955                         swp.y,
    956                         swp.cx,
    957                         swp.cy,
    958                         SWP_MOVE | SWP_SIZE |
    959                         SWP_SHOW | SWP_ZORDER);
    960       else if(!noautotile)
    961         TileChildren(hwndParent,
    962                      TRUE);
     767  if (ParentIsDesktop(hwnd, hwndParent) || *(ULONG *) realappname != FM3UL)
     768    StartDirCnr(HWND_DESKTOP, directory, hwndRestore, 1);
     769  else if (*(ULONG *) realappname == FM3UL) {
     770    if (!fAutoTile)
     771      GetNextWindowPos(hwndParent, &swp, NULL, NULL);
     772    hwndDir = StartDirCnr(hwndParent, directory, hwndRestore, 1);
     773    if (hwndDir) {
     774      if (!fAutoTile)
     775        WinSetWindowPos(hwndDir,
     776                        HWND_TOP,
     777                        swp.x,
     778                        swp.y,
     779                        swp.cx,
     780                        swp.cy, SWP_MOVE | SWP_SIZE | SWP_SHOW | SWP_ZORDER);
     781      else if (!noautotile)
     782        TileChildren(hwndParent, TRUE);
    963783      WinSetWindowPos(hwndDir,
    964                       HWND_TOP,
    965                       0,
    966                       0,
    967                       0,
    968                       0,
    969                       SWP_RESTORE | SWP_SHOW | SWP_ACTIVATE);
     784                      HWND_TOP,
     785                      0, 0, 0, 0, SWP_RESTORE | SWP_SHOW | SWP_ACTIVATE);
    970786    }
    971787  }
     
    976792    assign_ignores(s);
    977793    runemf2(WINDOWED | SEPARATE,
    978             hwnd,
    979             NULL,
    980             NULL,
    981             "VDIR.EXE %s%s\"%s%s\"",
    982             (*s) ? s : NullStr,(*s) ? " " : NullStr,
    983             directory,
    984             (directory[strlen(directory) - 1] == '\\') ? "\\" : NullStr);
     794            hwnd,
     795            NULL,
     796            NULL,
     797            "VDIR.EXE %s%s\"%s%s\"",
     798            (*s) ? s : NullStr, (*s) ? " " : NullStr,
     799            directory,
     800            (directory[strlen(directory) - 1] == '\\') ? "\\" : NullStr);
    985801  }
    986802  return hwndDir;
     
    992808{
    993809  if (hwndMain)
    994     WinPostMsg(hwndMain,UM_THREADUSE,MPFROMLONG(1),MPVOID);
    995 }
    996 
     810    WinPostMsg(hwndMain, UM_THREADUSE, MPFROMLONG(1), MPVOID);
     811}
    997812
    998813//= DecrThreadUsage() Decrement thread usage counter ==
     
    1001816{
    1002817  if (hwndMain)
    1003     WinPostMsg(hwndMain,UM_THREADUSE,MPVOID,MPVOID);
    1004 }
     818    WinPostMsg(hwndMain, UM_THREADUSE, MPVOID, MPVOID);
     819}
Note: See TracChangeset for help on using the changeset viewer.