home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / msysjour / vol04 / 01b / macsl / mpmfig7.txt < prev    next >
Text File  |  1988-10-27  |  2KB  |  78 lines

  1. LOCAL BOOL MpmMsgMouse( pqmsg, pEvent, msg )
  2.     PQMSG       pqmsg;
  3.     EventRecord *pEvent;
  4.     USHORT      msg;
  5. {
  6.     SHORT       sArea;
  7.     POINTL      ptl;
  8.     WindowPeek  pwin;
  9.     USHORT      fid, usHitHi;
  10.     HWND        hwnd;
  11.  
  12.     sArea = FindWindow( pEvent->where, &pwin );
  13.  
  14.     fid = usHitHi = 0;
  15.     ptl = pqmsg->ptl;
  16.     pqmsg->hwnd = hwnd = ( pwin ? HWNDOFPWIN(pwin) : _hwndDesktop );
  17.  
  18.     switch( sArea )
  19.     {
  20.       case inContent:
  21.         WinMapWindowPoints( _hwndDesktop, hwnd, &ptl, 1 );
  22.         MpmMsgFindChild( pqmsg, &ptl );
  23.         hwnd = pqmsg->hwnd;
  24.         break;
  25.  
  26.       case inDesk:
  27.         break;
  28.  
  29.       case inDrag:
  30.         fid = FID_TITLEBAR;
  31.         break;
  32.  
  33.       case inGoAway:
  34.         fid = FID_SYSMENU;
  35.         break;
  36.  
  37.       case inGrow:
  38.         fid = FID_SIZEBORDER;
  39.         break;
  40.  
  41.       case inMenuBar:
  42.         hwnd = _hwndMenu;
  43.         if( ! hwnd )
  44.           return FALSE;
  45.         break;
  46.  
  47.       case inSysWindow:
  48.         SystemClick( pEvent, pwin );
  49.         return FALSE;
  50.  
  51.       case inZoomIn:
  52.       case inZoomOut:
  53.         usHitHi = sArea;
  54.         fid = FID_MINMAX;
  55.         break;
  56.  
  57.       default:
  58.         return FALSE;
  59.     }
  60.  
  61.     if( fid )
  62.     {
  63.       hwnd = WinWindowFromID( hwnd, fid );
  64.       ASSERT( hwnd,
  65.               "MpmMsgMouse: missing frame control" );
  66.     }
  67.  
  68.     if( MYWNDOF(hwnd).flStyle & WS_DISABLED )
  69.       return FALSE;
  70.  
  71.     pqmsg->hwnd = hwnd;
  72.     pqmsg->msg  = msg;
  73.     pqmsg->mp1  = MPFROM2SHORT( ptl.x, ptl.y );
  74.     pqmsg->mp2  = MPFROM2SHORT( HT_NORMAL, usHitHi );
  75.  
  76.     return TRUE;
  77. }
  78.