Changeset 551 for trunk/dll/objcnr.c


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

Indentation cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/objcnr.c

    r531 r551  
    3030#include "fm3str.h"
    3131
    32 typedef struct {
     32typedef struct
     33{
    3334  CHAR *filename;
    34   HWND  hwndCnr;
     35  HWND hwndCnr;
    3536  CHAR *stopflag;
    36 } DIRSIZE;
    37 
    38 typedef struct {
     37}
     38DIRSIZE;
     39
     40typedef struct
     41{
    3942  CHAR *dirname;
    40   CHAR  stopflag;
    41   BOOL  dying;
    42   BOOL  working;
    43 } TEMP;
     43  CHAR stopflag;
     44  BOOL dying;
     45  BOOL working;
     46}
     47TEMP;
    4448
    4549#pragma data_seg(DATA1)
     
    5155#pragma alloc_text(OBJCNR,ProcessDir,FillCnrsThread,ObjCnrDlgProc)
    5256
    53 static VOID ProcessDir(HWND hwndCnr,CHAR *filename,PCNRITEM pciParent,
    54                        CHAR *stopflag)
     57static VOID ProcessDir(HWND hwndCnr, CHAR * filename, PCNRITEM pciParent,
     58                       CHAR * stopflag)
    5559{
    56   CHAR          maskstr[CCHMAXPATH],*endpath,*p;
    57   ULONG         nm,ulM;
    58   HDIR          hdir;
    59   FILEFINDBUF3 *ffb,*fft;
    60   APIRET        rc;
    61   RECORDINSERT  ri;
    62   PCNRITEM      pciP;
    63 
    64   ffb = xmalloc(sizeof(FILEFINDBUF3),pszSrcFile,__LINE__);
    65   if(!ffb)
     60  CHAR maskstr[CCHMAXPATH], *endpath, *p;
     61  ULONG nm, ulM;
     62  HDIR hdir;
     63  FILEFINDBUF3 *ffb, *fft;
     64  APIRET rc;
     65  RECORDINSERT ri;
     66  PCNRITEM pciP;
     67
     68  ffb = xmalloc(sizeof(FILEFINDBUF3), pszSrcFile, __LINE__);
     69  if (!ffb)
    6670    return;
    67   strcpy(maskstr,filename);
    68   if(maskstr[strlen(maskstr) - 1] != '\\')
    69     strcat(maskstr,"\\");
     71  strcpy(maskstr, filename);
     72  if (maskstr[strlen(maskstr) - 1] != '\\')
     73    strcat(maskstr, "\\");
    7074  endpath = &maskstr[strlen(maskstr)];
    71   strcat(maskstr,"*");
     75  strcat(maskstr, "*");
    7276  hdir = HDIR_CREATE;
    7377  nm = 1L;
    7478  rc = DosFindFirst(filename, &hdir,
    75                     FILE_NORMAL | FILE_READONLY | FILE_ARCHIVED |
    76                     FILE_SYSTEM | FILE_HIDDEN | MUST_HAVE_DIRECTORY,
    77                     ffb,sizeof(FILEFINDBUF3),&nm,FIL_STANDARD);
    78   if(!rc)
     79                    FILE_NORMAL | FILE_READONLY | FILE_ARCHIVED |
     80                    FILE_SYSTEM | FILE_HIDDEN | MUST_HAVE_DIRECTORY,
     81                    ffb, sizeof(FILEFINDBUF3), &nm, FIL_STANDARD);
     82  if (!rc)
    7983    DosFindClose(hdir);
    8084
    81   if(rc) {    /* work around furshluginer FAT bug... */
    82     if(IsRoot(filename))
     85  if (rc) {                             /* work around furshluginer FAT bug... */
     86    if (IsRoot(filename))
    8387      rc = 0;
    8488  }
    8589
    86   if((!rc && (ffb->attrFile & FILE_DIRECTORY))) {
    87     pciP = WinSendMsg(hwndCnr,CM_ALLOCRECORD,MPFROMLONG(EXTRA_RECORD_BYTES2),
    88                       MPFROMLONG(1L));
    89     if(!pciP) {
     90  if ((!rc && (ffb->attrFile & FILE_DIRECTORY))) {
     91    pciP =
     92      WinSendMsg(hwndCnr, CM_ALLOCRECORD, MPFROMLONG(EXTRA_RECORD_BYTES2),
     93                 MPFROMLONG(1L));
     94    if (!pciP) {
    9095      free(ffb);
    9196      return;
    9297    }
    93     strcpy(pciP->szFileName,filename);
     98    strcpy(pciP->szFileName, filename);
    9499    pciP->pszDispAttr = pciP->szDispAttr;
    95100    pciP->pszSubject = pciP->szSubject;
     
    97102    pciP->pszDispAttr = pciP->szDispAttr;
    98103    *pciP->szDispAttr = *pciP->szLongname = *pciP->szSubject = 0;
    99     if(strlen(filename) < 4)
     104    if (strlen(filename) < 4)
    100105      pciP->pszFileName = pciP->szFileName;
    101106    else {
    102       p = strrchr(pciP->szFileName,'\\');
    103       if(!p)
    104         pciP->pszFileName = pciP->szFileName;
    105       else if(*(p + 1))
    106         p++;
     107      p = strrchr(pciP->szFileName, '\\');
     108      if (!p)
     109        pciP->pszFileName = pciP->szFileName;
     110      else if (*(p + 1))
     111        p++;
    107112      pciP->pszFileName = p;
    108113    }
    109114    pciP->rc.pszIcon = pciP->pszFileName;
    110     if(fForceUpper)
     115    if (fForceUpper)
    111116      strupr(pciP->szFileName);
    112     else if(fForceLower)
     117    else if (fForceLower)
    113118      strlwr(pciP->szFileName);
    114119    pciP->rc.flRecordAttr |= CRA_RECORDREADONLY;
     
    117122    free(ffb);
    118123    Dos_Error(MB_ENTER,
    119               rc,
    120               HWND_DESKTOP,
    121               pszSrcFile,
    122               __LINE__,
    123               GetPString(IDS_CANTFINDDIRTEXT),
    124               filename);
     124              rc,
     125              HWND_DESKTOP,
     126              pszSrcFile,
     127              __LINE__, GetPString(IDS_CANTFINDDIRTEXT), filename);
    125128    return;
    126129  }
     
    129132
    130133    hptr = WinLoadFileIcon(pciP->szFileName, FALSE);
    131     if(hptr)
     134    if (hptr)
    132135      pciP->rc.hptrIcon = hptr;
    133136  }
    134   if(!pciP->rc.hptrIcon || pciP->rc.hptrIcon == hptrFile) /* OS/2 bug bug bug bug */
     137  if (!pciP->rc.hptrIcon || pciP->rc.hptrIcon == hptrFile)      /* OS/2 bug bug bug bug */
    135138    pciP->rc.hptrIcon = hptrDir;
    136   memset(&ri,0,sizeof(RECORDINSERT));
    137   ri.cb                 = sizeof(RECORDINSERT);
    138   ri.pRecordOrder       = (PRECORDCORE)CMA_END;
    139   ri.pRecordParent      = (PRECORDCORE)pciParent;
    140   ri.zOrder             = (USHORT)CMA_TOP;
    141   ri.cRecordsInsert     = 1L;
    142   ri.fInvalidateRecord  = TRUE;
    143   if(!WinSendMsg(hwndCnr,CM_INSERTRECORD,MPFROMP(pciP),MPFROMP(&ri))) {
     139  memset(&ri, 0, sizeof(RECORDINSERT));
     140  ri.cb = sizeof(RECORDINSERT);
     141  ri.pRecordOrder = (PRECORDCORE) CMA_END;
     142  ri.pRecordParent = (PRECORDCORE) pciParent;
     143  ri.zOrder = (USHORT) CMA_TOP;
     144  ri.cRecordsInsert = 1L;
     145  ri.fInvalidateRecord = TRUE;
     146  if (!WinSendMsg(hwndCnr, CM_INSERTRECORD, MPFROMP(pciP), MPFROMP(&ri))) {
    144147    free(ffb);
    145148    return;
    146149  }
    147150  hdir = HDIR_CREATE;
    148   if(!isalpha(*maskstr) || maskstr[1] != ':' || maskstr[2] != '\\' ||
    149      ((driveflags[toupper(*maskstr) - 'A'] & DRIVE_REMOTE) && fRemoteBug))
     151  if (!isalpha(*maskstr) || maskstr[1] != ':' || maskstr[2] != '\\' ||
     152      ((driveflags[toupper(*maskstr) - 'A'] & DRIVE_REMOTE) && fRemoteBug))
    150153    ulM = 1L;
    151154  else
    152     ulM = min(FilesToGet,225);
    153   if(ulM > 1L) {
    154     fft = xrealloc(ffb, sizeof(FILEFINDBUF3) * ulM,pszSrcFile,__LINE__);
    155     if(!fft)
     155    ulM = min(FilesToGet, 225);
     156  if (ulM > 1L) {
     157    fft = xrealloc(ffb, sizeof(FILEFINDBUF3) * ulM, pszSrcFile, __LINE__);
     158    if (!fft)
    156159      ulM = 1L;
    157160    else
     
    160163  nm = ulM;
    161164  rc = DosFindFirst(maskstr, &hdir,
    162                     FILE_NORMAL | FILE_READONLY | FILE_ARCHIVED |
    163                     FILE_SYSTEM | FILE_HIDDEN | MUST_HAVE_DIRECTORY,ffb,
    164                     sizeof(FILEFINDBUF3) * ulM,&nm,FIL_STANDARD);
    165   if(!rc) {
    166 
    167     register PBYTE fb = (PBYTE)ffb;
    168     FILEFINDBUF3  *pffbFile;
    169     ULONG          x;
    170 
    171     while(!rc) {
    172       for(x = 0L;x < nm;x++) {
    173         pffbFile = (FILEFINDBUF3 *)fb;
    174         if(*stopflag)
    175           break;
    176         if ((pffbFile->attrFile & FILE_DIRECTORY) &&
     165                    FILE_NORMAL | FILE_READONLY | FILE_ARCHIVED |
     166                    FILE_SYSTEM | FILE_HIDDEN | MUST_HAVE_DIRECTORY, ffb,
     167                    sizeof(FILEFINDBUF3) * ulM, &nm, FIL_STANDARD);
     168  if (!rc) {
     169
     170    register PBYTE fb = (PBYTE) ffb;
     171    FILEFINDBUF3 *pffbFile;
     172    ULONG x;
     173
     174    while (!rc) {
     175      for (x = 0L; x < nm; x++) {
     176        pffbFile = (FILEFINDBUF3 *) fb;
     177        if (*stopflag)
     178          break;
     179        if ((pffbFile->attrFile & FILE_DIRECTORY) &&
    177180            // Skip . and ..
    178             (pffbFile->achName[0] != '.' ||
     181            (pffbFile->achName[0] != '.' ||
    179182             (pffbFile->achName[1] &&
    180               (pffbFile->achName[1] != '.' || pffbFile->achName[2])))) {
    181           strcpy(endpath,pffbFile->achName);
    182           ProcessDir(hwndCnr,maskstr,pciP,stopflag);
    183         }
    184         if(!pffbFile->oNextEntryOffset)
    185           break;
    186         fb += pffbFile->oNextEntryOffset;
     183              (pffbFile->achName[1] != '.' || pffbFile->achName[2])))) {
     184          strcpy(endpath, pffbFile->achName);
     185          ProcessDir(hwndCnr, maskstr, pciP, stopflag);
     186        }
     187        if (!pffbFile->oNextEntryOffset)
     188          break;
     189        fb += pffbFile->oNextEntryOffset;
    187190      }
    188191      DosSleep(0L);
    189       if(*stopflag)
    190         break;
     192      if (*stopflag)
     193        break;
    191194      nm = ulM;
    192       rc = DosFindNext(hdir,ffb,sizeof(FILEFINDBUF3) * ulM,&nm);
     195      rc = DosFindNext(hdir, ffb, sizeof(FILEFINDBUF3) * ulM, &nm);
    193196    }
    194197    DosFindClose(hdir);
    195198  }
    196199  free(ffb);
    197   WinSendMsg(hwndCnr,CM_INVALIDATERECORD,MPFROMP(&pciP),
    198              MPFROM2SHORT(1,0));
     200  WinSendMsg(hwndCnr, CM_INVALIDATERECORD, MPFROMP(&pciP),
     201             MPFROM2SHORT(1, 0));
    199202}
    200203
    201 
    202 static VOID FillCnrsThread(VOID *args)
     204static VOID FillCnrsThread(VOID * args)
    203205{
    204   HAB           hab;
    205   HMQ           hmq;
    206   DIRSIZE      *dirsize = (DIRSIZE *)args;
    207 
    208   if(!dirsize)
     206  HAB hab;
     207  HMQ hmq;
     208  DIRSIZE *dirsize = (DIRSIZE *) args;
     209
     210  if (!dirsize)
    209211    return;
    210212
     
    212214
    213215  hab = WinInitialize(0);
    214   if(hab) {
    215     hmq = WinCreateMsgQueue(hab,0);
    216     if(hmq) {
    217       WinCancelShutdown(hmq,TRUE);
    218       ProcessDir(dirsize->hwndCnr,dirsize->filename,(PCNRITEM)NULL,
    219                 dirsize->stopflag);
     216  if (hab) {
     217    hmq = WinCreateMsgQueue(hab, 0);
     218    if (hmq) {
     219      WinCancelShutdown(hmq, TRUE);
     220      ProcessDir(dirsize->hwndCnr, dirsize->filename, (PCNRITEM) NULL,
     221                dirsize->stopflag);
    220222      DosPostEventSem(CompactSem);
    221223      WinDestroyMsgQueue(hmq);
     
    223225    WinTerminate(hab);
    224226  }
    225   PostMsg(WinQueryWindow(dirsize->hwndCnr,QW_PARENT),UM_CONTAINER_FILLED,
    226              MPVOID,MPVOID);
     227  PostMsg(WinQueryWindow(dirsize->hwndCnr, QW_PARENT), UM_CONTAINER_FILLED,
     228          MPVOID, MPVOID);
    227229  free(dirsize);
    228230}
    229231
    230 
    231 MRESULT EXPENTRY ObjCnrDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     232MRESULT EXPENTRY ObjCnrDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    232233{
    233234  TEMP *data;
    234235
    235   switch(msg) {
    236     case WM_INITDLG:
    237       if(objcnrwnd) {
    238         Runtime_Error(pszSrcFile, __LINE__, "objcnrwnd set");
    239         WinSetWindowPos(objcnrwnd,HWND_TOP,0,0,0,0,
    240                         SWP_RESTORE | SWP_SHOW | SWP_ACTIVATE | SWP_ZORDER);
    241         WinDismissDlg(hwnd,0);
    242         break;
    243       }
    244       if(!mp2) {
    245         Runtime_Error(pszSrcFile, __LINE__, "mp2 NULL");
    246         WinDismissDlg(hwnd,0);
    247         break;
    248       }
    249       objcnrwnd = hwnd;
    250       data = xmallocz(sizeof(TEMP),pszSrcFile,__LINE__);
    251       if(!data) {
    252         WinDismissDlg(hwnd,0);
    253         break;
    254       }
    255       data->dirname = (CHAR *)mp2;
    256       WinSetWindowPtr(hwnd,0,(PVOID)data);
    257       if(*data->dirname)
    258         WinSetDlgItemText(hwnd,OBJCNR_DIR,data->dirname);
     236  switch (msg) {
     237  case WM_INITDLG:
     238    if (objcnrwnd) {
     239      Runtime_Error(pszSrcFile, __LINE__, "objcnrwnd set");
     240      WinSetWindowPos(objcnrwnd, HWND_TOP, 0, 0, 0, 0,
     241                      SWP_RESTORE | SWP_SHOW | SWP_ACTIVATE | SWP_ZORDER);
     242      WinDismissDlg(hwnd, 0);
     243      break;
     244    }
     245    if (!mp2) {
     246      Runtime_Error(pszSrcFile, __LINE__, "mp2 NULL");
     247      WinDismissDlg(hwnd, 0);
     248      break;
     249    }
     250    objcnrwnd = hwnd;
     251    data = xmallocz(sizeof(TEMP), pszSrcFile, __LINE__);
     252    if (!data) {
     253      WinDismissDlg(hwnd, 0);
     254      break;
     255    }
     256    data->dirname = (CHAR *) mp2;
     257    WinSetWindowPtr(hwnd, 0, (PVOID) data);
     258    if (*data->dirname)
     259      WinSetDlgItemText(hwnd, OBJCNR_DIR, data->dirname);
     260    {
     261      DIRSIZE *dirsize;
     262
     263      dirsize = xmalloc(sizeof(DIRSIZE), pszSrcFile, __LINE__);
     264      if (!dirsize) {
     265        WinDismissDlg(hwnd, 0);
     266        break;
     267      }
     268      dirsize->stopflag = (CHAR *) & data->stopflag;
     269      dirsize->filename = data->dirname;
     270      dirsize->hwndCnr = WinWindowFromID(hwnd, OBJCNR_CNR);
     271      if (_beginthread(FillCnrsThread, NULL, 65536 * 8, (PVOID) dirsize) ==
     272          -1) {
     273        Runtime_Error(pszSrcFile, __LINE__,
     274                      GetPString(IDS_COULDNTSTARTTHREADTEXT));
     275        free(dirsize);
     276        WinDismissDlg(hwnd, 0);
     277        break;
     278      }
     279      else
     280        data->working = TRUE;
     281    }
     282    PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID);
     283    break;
     284
     285  case UM_SETUP:
     286    // WinEnableWindowUpdate(WinWindowFromID(hwnd,OBJCNR_CNR),FALSE);
     287    {
     288      CNRINFO cnri;
     289
     290      memset(&cnri, 0, sizeof(CNRINFO));
     291      cnri.cb = sizeof(CNRINFO);
     292      WinSendDlgItemMsg(hwnd, OBJCNR_CNR, CM_QUERYCNRINFO,
     293                        MPFROMP(&cnri), MPFROMLONG(sizeof(CNRINFO)));
     294      cnri.cyLineSpacing = 0;
     295      cnri.cxTreeIndent = 12L;
     296      cnri.pszCnrTitle = GetPString(IDS_WORKINGTEXT);
     297      cnri.flWindowAttr = CV_TREE | CV_FLOW |
     298        CA_CONTAINERTITLE | CA_TITLESEPARATOR | CA_TREELINE;
     299      if (WinQueryWindowUShort(hwnd, QWS_ID) == QTREE_FRAME)
     300        cnri.flWindowAttr |= CV_MINI;
     301      WinSendDlgItemMsg(hwnd, OBJCNR_CNR, CM_SETCNRINFO, MPFROMP(&cnri),
     302                        MPFROMLONG(CMA_FLWINDOWATTR | CMA_LINESPACING |
     303                                   CMA_CXTREEINDENT));
     304    }
     305    return 0;
     306
     307  case UM_CONTAINER_FILLED:
     308    WinSetDlgItemText(hwnd, OBJCNR_NOTE, NullStr);
     309//      WinEnableWindowUpdate(WinWindowFromID(hwnd,OBJCNR_CNR),TRUE);
     310    WinSendDlgItemMsg(hwnd, OBJCNR_CNR, CM_INVALIDATERECORD, MPVOID,
     311                      MPFROM2SHORT(0, CMA_ERASE | CMA_INVALIDATE));
     312    data = INSTDATA(hwnd);
     313    if (data) {
     314      data->working = FALSE;
     315      if (data->dying)
     316        WinDismissDlg(hwnd, 0);
    259317      {
    260         DIRSIZE *dirsize;
    261 
    262         dirsize = xmalloc(sizeof(DIRSIZE),pszSrcFile,__LINE__);
    263         if(!dirsize) {
    264           WinDismissDlg(hwnd,0);
    265           break;
    266         }
    267         dirsize->stopflag = (CHAR *)&data->stopflag;
    268         dirsize->filename = data->dirname;
    269         dirsize->hwndCnr = WinWindowFromID(hwnd,OBJCNR_CNR);
    270         if (_beginthread(FillCnrsThread,NULL,65536 * 8,(PVOID)dirsize) == -1) {
    271           Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT));
    272           free(dirsize);
    273           WinDismissDlg(hwnd,0);
    274           break;
    275         }
    276         else
    277           data->working = TRUE;
    278       }
    279       PostMsg(hwnd,UM_SETUP,MPVOID,MPVOID);
    280       break;
    281 
    282     case UM_SETUP:
    283       // WinEnableWindowUpdate(WinWindowFromID(hwnd,OBJCNR_CNR),FALSE);
    284       {
    285         CNRINFO    cnri;
    286 
    287         memset(&cnri,0,sizeof(CNRINFO));
    288         cnri.cb = sizeof(CNRINFO);
    289         WinSendDlgItemMsg(hwnd,OBJCNR_CNR,CM_QUERYCNRINFO,
    290                           MPFROMP(&cnri),MPFROMLONG(sizeof(CNRINFO)));
    291         cnri.cyLineSpacing = 0;
    292         cnri.cxTreeIndent = 12L;
    293         cnri.pszCnrTitle = GetPString(IDS_WORKINGTEXT);
    294         cnri.flWindowAttr = CV_TREE | CV_FLOW |
    295                             CA_CONTAINERTITLE | CA_TITLESEPARATOR |
    296                             CA_TREELINE;
    297         if(WinQueryWindowUShort(hwnd,QWS_ID) == QTREE_FRAME)
    298           cnri.flWindowAttr |= CV_MINI;
    299         WinSendDlgItemMsg(hwnd,OBJCNR_CNR,CM_SETCNRINFO,MPFROMP(&cnri),
    300                           MPFROMLONG(CMA_FLWINDOWATTR | CMA_LINESPACING |
    301                                      CMA_CXTREEINDENT));
    302       }
    303       return 0;
    304 
    305     case UM_CONTAINER_FILLED:
    306       WinSetDlgItemText(hwnd,
    307                         OBJCNR_NOTE,
    308                         NullStr);
    309 //      WinEnableWindowUpdate(WinWindowFromID(hwnd,OBJCNR_CNR),TRUE);
    310       WinSendDlgItemMsg(hwnd,OBJCNR_CNR,CM_INVALIDATERECORD,MPVOID,
    311                         MPFROM2SHORT(0,CMA_ERASE | CMA_INVALIDATE));
     318        PCNRITEM pci;
     319        USHORT id;
     320
     321        id = WinQueryWindowUShort(hwnd, QWS_ID);
     322        pci = (PCNRITEM) WinSendDlgItemMsg(hwnd, OBJCNR_CNR,
     323                                           CM_QUERYRECORD,
     324                                           MPVOID,
     325                                           MPFROM2SHORT(CMA_FIRST,
     326                                                        CMA_ITEMORDER));
     327        if (pci && (INT) pci != -1) {
     328          ExpandAll(WinWindowFromID(hwnd, OBJCNR_CNR), TRUE, pci);
     329          if (id == QTREE_FRAME)
     330            pci = (PCNRITEM) WinSendDlgItemMsg(hwnd, OBJCNR_CNR,
     331                                               CM_QUERYRECORD,
     332                                               MPFROMP(pci),
     333                                               MPFROM2SHORT(CMA_FIRSTCHILD,
     334                                                            CMA_ITEMORDER));
     335        }
     336        if ((!pci || (INT) pci == -1) && id == QTREE_FRAME) {
     337          Notify(GetPString(IDS_NODIRSUNDERTEXT));
     338          WinDismissDlg(hwnd, 0);
     339          break;
     340        }
     341      }
     342    }
     343    return 0;
     344
     345  case WM_CONTROL:
     346    switch (SHORT1FROMMP(mp1)) {
     347    case OBJCNR_CNR:
     348      if (SHORT2FROMMP(mp1) == CN_ENTER) {
     349
     350        PCNRITEM pci = (PCNRITEM) ((PNOTIFYRECORDENTER) mp2)->pRecord;
     351
     352        if (pci && (INT) pci != -1)
     353          WinSendDlgItemMsg(hwnd, DID_OK, BM_CLICK, MPVOID, MPVOID);
     354      }
     355      break;
     356    }
     357    return 0;
     358
     359  case WM_COMMAND:
     360    switch (SHORT1FROMMP(mp1)) {
     361    case IDM_HELP:
     362      if (hwndHelp) {
     363
     364        USHORT id;
     365
     366        id = WinQueryWindowUShort(hwnd, QWS_ID);
     367
     368        if (id == QTREE_FRAME)
     369          WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
     370                     MPFROM2SHORT(HELP_QUICKTREE, 0),
     371                     MPFROMSHORT(HM_RESOURCEID));
     372        else
     373          WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
     374                     MPFROM2SHORT(HELP_OBJECTPATH, 0),
     375                     MPFROMSHORT(HM_RESOURCEID));
     376      }
     377      break;
     378
     379    case OBJCNR_DESKTOP:
     380    case DID_OK:
    312381      data = INSTDATA(hwnd);
    313       if(data) {
    314         data->working = FALSE;
    315         if(data->dying)
    316           WinDismissDlg(hwnd,0);
    317         {
    318           PCNRITEM pci;
    319           USHORT id;
    320 
    321           id = WinQueryWindowUShort(hwnd,QWS_ID);
    322           pci = (PCNRITEM)WinSendDlgItemMsg(hwnd,OBJCNR_CNR,
    323                                             CM_QUERYRECORD,
    324                                             MPVOID,
    325                                             MPFROM2SHORT(CMA_FIRST,
    326                                                          CMA_ITEMORDER));
    327           if(pci && (INT)pci != -1) {
    328             ExpandAll(WinWindowFromID(hwnd,OBJCNR_CNR),TRUE,pci);
    329             if(id == QTREE_FRAME)
    330               pci = (PCNRITEM)WinSendDlgItemMsg(hwnd,OBJCNR_CNR,
    331                                                 CM_QUERYRECORD,
    332                                                 MPFROMP(pci),
    333                                                 MPFROM2SHORT(CMA_FIRSTCHILD,
    334                                                              CMA_ITEMORDER));
    335           }
    336           if((!pci || (INT)pci == -1) && id == QTREE_FRAME) {
    337             Notify(GetPString(IDS_NODIRSUNDERTEXT));
    338             WinDismissDlg(hwnd,0);
    339             break;
    340           }
    341         }
    342       }
    343       return 0;
    344 
    345     case WM_CONTROL:
    346       switch(SHORT1FROMMP(mp1)) {
    347         case OBJCNR_CNR:
    348           if(SHORT2FROMMP(mp1) == CN_ENTER) {
    349 
    350             PCNRITEM pci = (PCNRITEM)((PNOTIFYRECORDENTER)mp2)->pRecord;
    351 
    352             if(pci && (INT)pci != -1)
    353               WinSendDlgItemMsg(hwnd,DID_OK,BM_CLICK,MPVOID,MPVOID);
    354           }
    355           break;
    356       }
    357       return 0;
    358 
    359     case WM_COMMAND:
    360       switch(SHORT1FROMMP(mp1)) {
    361         case IDM_HELP:
    362           if(hwndHelp) {
    363 
    364             USHORT id;
    365 
    366             id = WinQueryWindowUShort(hwnd,QWS_ID);
    367 
    368             if(id == QTREE_FRAME)
    369               WinSendMsg(hwndHelp,HM_DISPLAY_HELP,
    370                          MPFROM2SHORT(HELP_QUICKTREE,0),
    371                          MPFROMSHORT(HM_RESOURCEID));
    372             else
    373               WinSendMsg(hwndHelp,HM_DISPLAY_HELP,
    374                          MPFROM2SHORT(HELP_OBJECTPATH,0),
    375                          MPFROMSHORT(HM_RESOURCEID));
    376           }
    377           break;
    378 
    379         case OBJCNR_DESKTOP:
    380         case DID_OK:
    381           data = INSTDATA(hwnd);
    382           if(data) {
    383 
    384             PCNRITEM pci;
    385 
    386             if(data->working) {
    387               Runtime_Error(pszSrcFile, __LINE__, "working unexpected");
    388               break;
    389             }
    390             if(SHORT1FROMMP(mp1) == OBJCNR_DESKTOP) {
    391               WinDismissDlg(hwnd,2);
    392               break;
    393             }
    394             pci = (PCNRITEM)WinSendDlgItemMsg(hwnd,OBJCNR_CNR,
    395                                               CM_QUERYRECORDEMPHASIS,
    396                                               MPFROMLONG(CMA_FIRST),
    397                                               MPFROMSHORT(CRA_CURSORED));
    398             if(pci && (INT)pci != -1)
    399               strcpy(data->dirname,pci->szFileName);
    400             WinDismissDlg(hwnd,1);
    401           }
    402           break;
    403 
    404         case DID_CANCEL:
    405           data = INSTDATA(hwnd);
    406           if(data) {
    407             if(data->working) {
    408               data->dying = TRUE;
    409               data->stopflag = 0xff;
    410               break;
    411             }
    412             WinDismissDlg(hwnd,0);
    413           }
    414           break;
    415       }
    416       return 0;
    417 
    418     case WM_DESTROY:
    419       objcnrwnd = (HWND)0;
     382      if (data) {
     383
     384        PCNRITEM pci;
     385
     386        if (data->working) {
     387          Runtime_Error(pszSrcFile, __LINE__, "working unexpected");
     388          break;
     389        }
     390        if (SHORT1FROMMP(mp1) == OBJCNR_DESKTOP) {
     391          WinDismissDlg(hwnd, 2);
     392          break;
     393        }
     394        pci = (PCNRITEM) WinSendDlgItemMsg(hwnd, OBJCNR_CNR,
     395                                           CM_QUERYRECORDEMPHASIS,
     396                                           MPFROMLONG(CMA_FIRST),
     397                                           MPFROMSHORT(CRA_CURSORED));
     398        if (pci && (INT) pci != -1)
     399          strcpy(data->dirname, pci->szFileName);
     400        WinDismissDlg(hwnd, 1);
     401      }
     402      break;
     403
     404    case DID_CANCEL:
    420405      data = INSTDATA(hwnd);
    421       if(data)
    422         free(data);
    423       break;
    424   }
    425   return WinDefDlgProc(hwnd,msg,mp1,mp2);
     406      if (data) {
     407        if (data->working) {
     408          data->dying = TRUE;
     409          data->stopflag = 0xff;
     410          break;
     411        }
     412        WinDismissDlg(hwnd, 0);
     413      }
     414      break;
     415    }
     416    return 0;
     417
     418  case WM_DESTROY:
     419    objcnrwnd = (HWND) 0;
     420    data = INSTDATA(hwnd);
     421    if (data)
     422      free(data);
     423    break;
     424  }
     425  return WinDefDlgProc(hwnd, msg, mp1, mp2);
    426426}
    427 
Note: See TracChangeset for help on using the changeset viewer.