Changeset 471


Ignore:
Timestamp:
Sep 1, 2006, 3:05:53 AM (19 years ago)
Author:
root
Message:

Disable Utilities->Seek and scan menu while busy
Correct stop scan context menu enable/disable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/collect.c

    r444 r471  
    2828  15 Aug 06 SHL Rework SetMask args
    2929  18 Aug 06 SHL CollectorCnrWndProc: avoid freeing NULL pointer
     30  31 Aug 06 SHL Disable Utilities->Seek and scan menu while busy
     31  31 Aug 06 SHL Correct stop scan context menu enable/disable
    3032
    3133***********************************************************************/
     
    109111            }
    110112          }
    111           hwndButtonPopup = WinLoadMenu(HWND_DESKTOP,
    112                                         FM3ModHandle,
    113                                         id);
     113          hwndButtonPopup = WinLoadMenu(HWND_DESKTOP,FM3ModHandle,id);
    114114          if (hwndButtonPopup) {
    115             WinSetWindowUShort(hwndButtonPopup,
    116                                QWS_ID,
    117                                id);
     115            WinSetWindowUShort(hwndButtonPopup,QWS_ID,id);
    118116            dcd = WinQueryWindowPtr(WinWindowFromID(WinQueryWindow(hwnd,
    119117                                                                   QW_PARENT),
     
    122120            if (id == DIR_VIEW) {
    123121              if (dcd) {
    124                 SetViewMenu(hwndButtonPopup,
    125                             dcd -> flWindowAttr);
    126                 SetDetailsSwitches(hwndButtonPopup,
    127                                    dcd);
     122                SetViewMenu(hwndButtonPopup,dcd -> flWindowAttr);
     123                SetDetailsSwitches(hwndButtonPopup,dcd);
    128124              }
    129125
     
    131127              WinSendMsg(hwndButtonPopup,
    132128                         MM_DELETEITEM,
    133                          MPFROM2SHORT(IDM_TREEVIEW,
    134                                       FALSE),
     129                         MPFROM2SHORT(IDM_TREEVIEW,FALSE),
    135130                         MPVOID);
    136131
     
    138133            else if (id == DIR_SORT) {
    139134              if (dcd)
    140                 SetSortChecks(hwndButtonPopup,
    141                               dcd -> sortFlags);
     135                SetSortChecks(hwndButtonPopup,dcd -> sortFlags);
    142136            }
    143137            ptl.x = 0;
     
    150144                             0))
    151145            {
    152               WinQueryWindowPos(hwndButtonPopup,
    153                                 &swp);
     146              WinQueryWindowPos(hwndButtonPopup,&swp);
    154147              ptl.y = -(swp.cy + 2);
    155148            }
    156149            else {
    157               WinQueryWindowPos(hwnd,
    158                                 &swp);
     150              WinQueryWindowPos(hwnd,&swp);
    159151              ptl.y = swp.cy + 2;
    160152            }
     
    169161            {
    170162              CenterOverWindow(hwndButtonPopup);
    171               PaintRecessedWindow(hwnd,
    172                                   NULLHANDLE,
    173                                   FALSE,
    174                                   FALSE);
     163              PaintRecessedWindow(hwnd,NULLHANDLE,FALSE,FALSE);
    175164            }
    176165          }
     
    181170                                COLLECTOR_CNR),
    182171                WM_CONTROL,
    183                 MPFROM2SHORT(COLLECTOR_CNR,
    184                              CN_CONTEXTMENU),
     172                MPFROM2SHORT(COLLECTOR_CNR,CN_CONTEXTMENU),
    185173                MPVOID);
    186174        break;
     
    197185      WinDestroyWindow(hwndButtonPopup);
    198186      hwndButtonPopup = (HWND)0;
    199       DosQuerySysInfo(QSV_MS_COUNT,
    200                       QSV_MS_COUNT,
    201                       &timestamp,
    202                       sizeof(timestamp));
     187      DosQuerySysInfo(QSV_MS_COUNT,QSV_MS_COUNT,&timestamp,sizeof(timestamp));
    203188      switch (lastid) {
    204189      case DIR_SELECTED:
    205190      case DIR_VIEW:
    206191      case DIR_SORT:
    207         PaintRecessedWindow(hwnd,
    208                             NULLHANDLE,
    209                             TRUE,
    210                             FALSE);
     192        PaintRecessedWindow(hwnd,NULLHANDLE,TRUE,FALSE);
    211193        break;
    212194      }
     
    234216                                QWL_USER);
    235217        if (dcd)
    236           SetDetailsSwitches(hwndButtonPopup,
    237                              dcd);
     218          SetDetailsSwitches(hwndButtonPopup,dcd);
    238219      }
    239220      return mr;
     
    313294      case DIR_SORT:
    314295      case DIR_SELECTED:
    315         PostMsg(hwnd,
    316                 UM_CONTEXTMENU,
    317                 MPVOID,
    318                 MPVOID);
     296        PostMsg(hwnd,UM_CONTEXTMENU,MPVOID,MPVOID);
    319297        break;
    320298      case DIR_FILTER:
     
    325303      }
    326304      if (cmd)
    327         PostMsg(WinWindowFromID(WinQueryWindow(hwnd,
    328                                                QW_PARENT),
     305        PostMsg(WinWindowFromID(WinQueryWindow(hwnd,QW_PARENT),
    329306                                COLLECTOR_CNR),
    330307                WM_COMMAND,
     
    604581      CHAR fullname[CCHMAXPATH];
    605582
    606       WinSetWindowText(WinWindowFromID(dcd -> hwndClient,
    607                                        DIR_SELECTED),
     583      WinSetWindowText(WinWindowFromID(dcd -> hwndClient,DIR_SELECTED),
    608584                       GetPString(IDS_COLLECTINGTEXT));
    609585      for (ulMaxFiles = 0; li -> list[ulMaxFiles]; ulMaxFiles++)
     
    664640              else
    665641                pciFirst = pci;
    666               WinSendMsg(hwnd, CM_FREERECORD, MPFROMP(&pciT),
    667                          MPFROM2SHORT(1, 0));
     642              WinSendMsg(hwnd, CM_FREERECORD, MPFROMP(&pciT),MPFROM2SHORT(1, 0));
    668643              ulMaxFiles--;
    669644            }
     
    682657                       MPFROMP(pciFirst),
    683658                       MPFROMP(&ri));
    684             PostMsg(dcd -> hwndCnr,
    685                     UM_RESCAN,
    686                     MPVOID,
    687                     MPVOID);
     659            PostMsg(dcd -> hwndCnr,UM_RESCAN,MPVOID,MPVOID);
    688660          }
    689661        }
     
    695667                        CM_INVALIDATERECORD,
    696668                        MPVOID,
    697                         MPFROM2SHORT(0,
    698                                      CMA_ERASE | CMA_REPOSITION));
     669                        MPFROM2SHORT(0,CMA_ERASE | CMA_REPOSITION));
    699670    return 0;
    700671
     
    810781          strcpy(filename, "*.LST");
    811782          size = CCHMAXPATH;
    812           PrfQueryProfileData(fmprof,
    813                               appname,
    814                               "SaveToListName",
    815                               filename,
    816                               &size);
     783          PrfQueryProfileData(fmprof,appname,"SaveToListName",filename,&size);
    817784          pp = strrchr(filename, '\\');
    818785          if (!pp)
     
    11541121        if (pci && (INT) pci != -1 &&
    11551122            (!(driveflags[toupper(*pci -> szFileName) - 'A'] & DRIVE_SLOW)))
    1156           WinSendMsg(hwndMain,
    1157                      UM_LOADFILE,
    1158                      MPFROMP(pci -> szFileName),
    1159                      MPVOID);
     1123          WinSendMsg(hwndMain,UM_LOADFILE,MPFROMP(pci -> szFileName),MPVOID);
    11601124        else
    1161           WinSendMsg(hwndMain,
    1162                      UM_LOADFILE,
    1163                      MPVOID,
    1164                      MPVOID);
     1125          WinSendMsg(hwndMain,UM_LOADFILE,MPVOID,MPVOID);
    11651126      }
    11661127      if (dcd -> amextracted)
    11671128        WinSetWindowText(hwndStatus2,
    11681129                         GetPString(IDS_INSEEKSCANTEXT));       // Say working
    1169       WinSendMsg(hwnd,
    1170                  UM_RESCAN,
    1171                  MPVOID,
    1172                  MPVOID);
     1130      WinSendMsg(hwnd,UM_RESCAN,MPVOID,MPVOID);
    11731131    }
    11741132    break;
     
    12871245
    12881246  case UM_CONTAINER_FILLED:
    1289     DosBeep(1000, 50);          // fixme to know why beep here
     1247    DosBeep(1000, 50);          // Wake up user?
    12901248    WinSendMsg(hwnd,
    12911249               CM_INVALIDATERECORD,
    12921250               MPVOID,
    12931251               MPFROM2SHORT(0, CMA_ERASE | CMA_REPOSITION));
    1294     WinSendMsg(CollectorCnrMenu,
    1295                MM_SETITEMATTR,
    1296                MPFROM2SHORT(DID_CANCEL, TRUE),
    1297                MPFROM2SHORT(MIA_DISABLED, MIA_DISABLED));
    1298     WinSendMsg(CollectorCnrMenu,
    1299                MM_SETITEMATTR,
    1300                MPFROM2SHORT(IDM_GREP, TRUE),
    1301                MPFROM2SHORT(MIA_DISABLED, 0));
    1302     PostMsg(hwnd,
    1303             UM_RESCAN,
    1304             MPVOID,
    1305             MPVOID);
     1252    disable_menuitem(WinWindowFromID(WinQueryWindow(hwndMain, QW_PARENT),
     1253                                     FID_MENU),
     1254                     IDM_GREP,
     1255                     FALSE);
     1256    PostMsg(hwnd,UM_RESCAN,MPVOID,MPVOID);
    13061257    if (dcd) {
    13071258      dcd -> stopflag = 0;
    1308       dcd -> amextracted = FALSE;               // Say not scanning
     1259      dcd -> amextracted = FALSE;               // Say not busy
    13091260      if (dcd -> namecanchange) {
    1310         if (!PostMsg(hwnd,
    1311                      WM_CLOSE,
    1312                      MPVOID,
    1313                      MPVOID))
    1314           WinSendMsg(hwnd,
    1315                      WM_CLOSE,
    1316                      MPVOID,
    1317                      MPVOID);
     1261        if (!PostMsg(hwnd,WM_CLOSE,MPVOID,MPVOID))
     1262          WinSendMsg(hwnd,WM_CLOSE,MPVOID,MPVOID);
    13181263      }
    13191264      else
     
    13321277    if (dcd) {
    13331278      if (!dcd -> hwndObject) {
    1334         /*
    1335          * first time through -- set things up
    1336          */
     1279        /* first time through -- set things up */
    13371280
    13381281        CNRINFO cnri;
     
    13401283        RestorePresParams(hwnd, "Collector");
    13411284        LoadDetailsSwitches("Collector", dcd);
    1342         WinSendMsg(CollectorCnrMenu, MM_SETITEMATTR,
    1343                    MPFROM2SHORT(DID_CANCEL, TRUE),
    1344                    MPFROM2SHORT(MIA_DISABLED, MIA_DISABLED));
    1345         WinSendMsg(CollectorCnrMenu, MM_SETITEMATTR, MPFROM2SHORT(IDM_GREP, TRUE),
    1346                    MPFROM2SHORT(MIA_DISABLED, 0));
    1347         dcd -> amextracted = FALSE;     // Use to indicate scan busy
     1285
     1286        dcd -> amextracted = FALSE;     // Say not busy
    13481287        dcd -> stopflag = 0;
    13491288        memset(&cnri, 0, sizeof(CNRINFO));
     
    14411380      if (mp1 &&
    14421381          !IsFile((CHAR *) mp1))
    1443         OpenDirCnr(HWND_DESKTOP,
    1444                    hwndMain,
    1445                    dcd -> hwndFrame,
    1446                    FALSE,
    1447                    (char *) mp1);
    1448       else if (mp1 &&
    1449                IsFile(mp1) == 1)
     1382        OpenDirCnr(HWND_DESKTOP,hwndMain,dcd -> hwndFrame,FALSE,(PSZ)mp1);
     1383      else if (mp1 && IsFile(mp1) == 1)
    14501384        StartArcCnr(HWND_DESKTOP,
    14511385                    dcd -> hwndFrame,
     
    15581492          PCNRITEM pci;
    15591493
    1560           pci = WinSendMsg(hwnd, CM_QUERYRECORDEMPHASIS,
     1494          pci = WinSendMsg(hwnd,
     1495                           CM_QUERYRECORDEMPHASIS,
    15611496                           MPFROMLONG(CMA_FIRST),
    15621497                           MPFROMSHORT(CRA_CURSORED));
     
    16061541
    16071542      case IDM_SEEALL:
    1608         StartSeeAll(HWND_DESKTOP,
    1609                     FALSE,
    1610                     NULL);
     1543        StartSeeAll(HWND_DESKTOP,FALSE,NULL);
    16111544        break;
    16121545
     
    17531686            else {
    17541687              li -> type = IDM_COLLECT;
    1755               if (!PostMsg(dcd -> hwndObject, UM_COLLECT, MPFROMP(li),
    1756                            MPVOID))
     1688              if (!PostMsg(dcd -> hwndObject, UM_COLLECT, MPFROMP(li),MPVOID))
    17571689                FreeListInfo(li);
    17581690            }
     
    17641696        if (fAutoView &&
    17651697            hwndMain)
    1766           PostMsg(hwndMain,
    1767                   UM_LOADFILE,
    1768                   MPVOID,
    1769                   MPVOID);
     1698          PostMsg(hwndMain,UM_LOADFILE,MPVOID,MPVOID);
    17701699        dcd -> suspendview = 1;
    1771         RemoveAll(hwnd,
    1772                   &dcd -> ullTotalBytes,
    1773                   &dcd -> totalfiles);
     1700        RemoveAll(hwnd,&dcd -> ullTotalBytes,&dcd -> totalfiles);
    17741701        dcd -> suspendview = 0;
    1775         PostMsg(hwnd,
    1776                 UM_RESCAN,
    1777                 MPVOID,
    1778                 MPVOID);
     1702        PostMsg(hwnd,UM_RESCAN,MPVOID,MPVOID);
    17791703        break;
    17801704
     
    17861710                                      CM_QUERYRECORD,
    17871711                                      MPVOID,
    1788                                       MPFROM2SHORT(CMA_FIRST,
    1789                                                    CMA_ITEMORDER));
     1712                                      MPFROM2SHORT(CMA_FIRST,CMA_ITEMORDER));
    17901713          if (pci && (INT) pci != -1) {
    17911714            WinSendMsg(hwnd,
     
    17951718            dcd -> ullTotalBytes = dcd -> selectedbytes = dcd -> selectedfiles =
    17961719              dcd -> totalfiles = 0L;
    1797             PostMsg(hwnd,
    1798                     UM_RESCAN,
    1799                     MPVOID,
    1800                     MPVOID);
     1720            PostMsg(hwnd,UM_RESCAN,MPVOID,MPVOID);
    18011721          }
    18021722        }
     
    18191739            else {
    18201740              li -> type = IDM_COLLECT;
    1821               if (!PostMsg(dcd -> hwndObject, UM_COLLECT, MPFROMP(li),
    1822                            MPVOID))
     1741              if (!PostMsg(dcd -> hwndObject, UM_COLLECT, MPFROMP(li),MPVOID))
    18231742                FreeListInfo(li);
    18241743            }
     
    18451764
    18461765      case IDM_GREP:
    1847         if (dcd -> amextracted) {
    1848           // fixme to disable?
     1766        if (dcd -> amextracted)
    18491767          Runtime_Error(pszSrcFile, __LINE__, "busy");
    1850         }
    18511768        else {
    18521769          if (WinDlgBox(HWND_DESKTOP, hwnd, GrepDlgProc,
    18531770                        FM3ModHandle, GREP_FRAME, (PVOID) & hwnd))
    18541771          {
    1855             dcd -> amextracted = TRUE;  // Collector scan in progress
    1856             WinSendMsg(CollectorCnrMenu, MM_SETITEMATTR,
    1857                        MPFROM2SHORT(DID_CANCEL, TRUE),
    1858                        MPFROM2SHORT(MIA_DISABLED, 0));
    1859             WinSendMsg(CollectorCnrMenu, MM_SETITEMATTR,
    1860                        MPFROM2SHORT(IDM_GREP, TRUE),
    1861                        MPFROM2SHORT(MIA_DISABLED, MIA_DISABLED));
     1772            dcd -> amextracted = TRUE;  // Say busy scanning
     1773            disable_menuitem(WinWindowFromID(WinQueryWindow(hwndMain, QW_PARENT),
     1774                                             FID_MENU),
     1775                             IDM_GREP,
     1776                             TRUE);
    18621777            PostMsg(hwnd, UM_RESCAN, MPVOID, MPVOID);
    18631778          }
     
    21492064                  li -> type == IDM_SHADOW2)
    21502065                *li -> targetpath = 0;
    2151               if (!PostMsg(dcd -> hwndObject, action, MPFROMP(li),
    2152                            MPVOID))
     2066              if (!PostMsg(dcd -> hwndObject, action, MPFROMP(li),MPVOID))
    21532067              {
    21542068                Runtime_Error(pszSrcFile, __LINE__, "PostMsg");
     
    22382152              if (dcd -> flWindowAttr & CV_MINI)
    22392153                WinCheckMenuItem(dcd -> hwndLastMenu, IDM_MINIICONS, TRUE);
     2154              disable_menuitem(dcd -> hwndLastMenu,DID_CANCEL,!dcd->amextracted);
     2155              disable_menuitem(dcd -> hwndLastMenu,IDM_GREP,dcd->amextracted);
    22402156            }
    22412157            if (!PopupMenu(hwnd, hwnd, dcd -> hwndLastMenu)) {
     
    23862302                break;
    23872303              if (hwndStatus2)
    2388                 WinSetWindowText(hwndStatus2,
    2389                                  GetPString(IDS_DRAGFILEOBJTEXT));
    2390               if (DoFileDrag(hwnd,
    2391                              dcd -> hwndObject,
    2392                              mp2,
    2393                              NULL,
    2394                              NULL,
    2395                              TRUE))
     2304                WinSetWindowText(hwndStatus2,GetPString(IDS_DRAGFILEOBJTEXT));
     2305              if (DoFileDrag(hwnd,dcd -> hwndObject,mp2,NULL,NULL,TRUE))
    23962306              {
    23972307                if (fUnHilite && wasemphasized)
     
    27152625                         MPFROMP(&pci),
    27162626                         MPFROM2SHORT(1,
    2717                                     CMA_FREE | CMA_INVALIDATE | CMA_ERASE));
     2627                                      CMA_FREE | CMA_INVALIDATE | CMA_ERASE));
    27182628          }
    27192629        }
     
    28452755        oldproc = WinSubclassWindow(hwndFrame,
    28462756                                    (PFNWP) CollectorFrameWndProc);
    2847         WinSetWindowPtr(hwndFrame,
    2848                         QWL_USER,
    2849                         (PVOID) oldproc);
     2757        WinSetWindowPtr(hwndFrame,QWL_USER,(PVOID) oldproc);
    28502758      }
    28512759      dcd -> hwndCnr = WinCreateWindow(hwndClient,
     
    28732781        Collector = dcd -> hwndCnr;
    28742782        WinSetWindowPtr(dcd -> hwndCnr, QWL_USER, (PVOID) dcd);
    2875         WinSetWindowText(hwndFrame,
    2876                          GetPString(IDS_COLLECTORTITLETEXT));
     2783        WinSetWindowText(hwndFrame,GetPString(IDS_COLLECTORTITLETEXT));
    28772784        if (FrameFlags & FCF_MENU) {
    28782785          if (!fToolbar) {
     
    29112818        }
    29122819        if (FrameFlags & FCF_SHELLPOSITION)
    2913           PostMsg(hwndClient,
    2914                   UM_SIZE,
    2915                   MPVOID,
    2916                   MPVOID);
    2917         if (!PostMsg(dcd -> hwndCnr,
    2918                      UM_SETUP,
    2919                      MPVOID,
    2920                      MPVOID))
    2921           WinSendMsg(dcd -> hwndCnr,
    2922                      UM_SETUP,
    2923                      MPVOID,
    2924                      MPVOID);
     2820          PostMsg(hwndClient,UM_SIZE,MPVOID,MPVOID);
     2821        if (!PostMsg(dcd -> hwndCnr,UM_SETUP,MPVOID,MPVOID))
     2822          WinSendMsg(dcd -> hwndCnr,UM_SETUP,MPVOID,MPVOID);
    29252823      }
    29262824    }
Note: See TracChangeset for help on using the changeset viewer.