Changeset 1444 for trunk/dll/common.c


Ignore:
Timestamp:
Jul 23, 2009, 1:24:23 AM (16 years ago)
Author:
Gregg Young
Message:

Rework of drivebar to rescan all drives and refresh media buttons and menu items grey out inappropriate menu items. Streamline Tree scan code and use semaphores to serialize access. Add NOEASUPPORT and LOCALHD driveflag; .LONGNAME usage fixes; (Tickets 377-386)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/common.c

    r1438 r1444  
    2626  07 Feb 09 GKY Eliminate Win_Error2 by moving function names to PCSZs used in Win_Error
    2727  08 Mar 09 GKY Additional strings move to PCSZs in init.c
     28  22 Jul 09 GKY Drivebar enhancements add refresh removable, rescan all drives, drive button
     29                loads drive root directory in directory container or expands drive tree
     30                and rescans drive in tree container depending on container focus, greyed out
     31                inappropriate menu context choices
     32
    2833
    2934***********************************************************************/
     
    260265                  hwnd,
    261266                  SetDrvProc,
    262                   FM3ModHandle, DVS_FRAME, MPFROMP(dv)) && hwndTree)
    263       PostMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_UPDATE, 0), MPVOID);
     267                  FM3ModHandle, DVS_FRAME, MPFROMP(dv)) && hwndTree)
     268      if (!PostMsg(hwndTree, UM_SHOWME, MPFROMP(dv), MPVOID))
     269        PostMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_UPDATE, 0), MPVOID);
    264270    break;
    265271  case IDM_SIZES:
     
    377383          (fEjectFlpyScan ? TRUE : parm[1] > 1) &&
    378384          (fEjectCDScan ? TRUE : !(driveflags[parm[1]] & DRIVE_CDROM)) &&
    379           (fEjectRemovableScan ? TRUE : (parm[1] < 2 || driveflags[parm[1]] & DRIVE_CDROM)))
    380         PostMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_RESCAN, 0), MPVOID);
     385          (fEjectRemovableScan ? TRUE : (parm[1] < 2 || driveflags[parm[1]] & DRIVE_CDROM))) {
     386        BOOL toggleTree = FALSE;
     387 
     388        if (!hwndTree) {
     389          WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_VTREE, 0), MPVOID);
     390          toggleTree = TRUE;
     391        }
     392        WinSendMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_RESCAN, 0), MPVOID);
     393        if (toggleTree)
     394          WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_VTREE, 0), MPVOID);
     395      }
     396    }
     397    break;
     398
     399  case IDM_RESCAN:
     400    {
     401      BOOL toggleTree = FALSE;
     402
     403      if (!hwndTree) {
     404        WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_VTREE, 0), MPVOID);
     405        toggleTree = TRUE;
     406      }
     407      WinSendMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_RESCAN, 0), MPVOID);
     408      if (toggleTree)
     409        WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_VTREE, 0), MPVOID);
     410    }
     411    break;
     412
     413  case IDM_REFRESHREMOVABLES:
     414    {
     415      BOOL toggleTree = FALSE;
     416
     417      if (!hwndTree) {
     418        WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_VTREE, 0), MPVOID);
     419        toggleTree = TRUE;
     420      }
     421      WinSendMsg(hwndTree, WM_COMMAND, MPFROM2SHORT(IDM_REFRESHREMOVABLES, 0), MPVOID);
     422      if (toggleTree)
     423        WinSendMsg(hwndMain, WM_COMMAND, MPFROM2SHORT(IDM_VTREE, 0), MPVOID);
    381424    }
    382425    break;
Note: See TracChangeset for help on using the changeset viewer.