home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / util / cdity / yak / src / mmb_shift.c < prev    next >
C/C++ Source or Header  |  1994-10-12  |  889b  |  45 lines

  1. /*
  2.  * MMB_Shift.c
  3.  *
  4.  * Translates an LMB-MMB event into an Shift LMB-MMB one to allow easy multi selection under 
  5.  * Workbench or BrowserII.
  6.  *
  7.  */
  8.  
  9. #include <clib/alib_protos.h>
  10. #include <libraries/commodities.h>
  11. #include <devices/inputevent.h>
  12. #include <proto/commodities.h>
  13.  
  14. #include "yak.h"
  15.  
  16. static CxObj *LMB_MMB_Filter;
  17.  
  18. SAVEDS void 
  19. MMBShiftFunction(register CxMsg *cxm, CxObj *co)
  20. {
  21.     ((struct InputEvent *)CxMsgData(cxm))->ie_Qualifier |= IEQUALIFIER_LSHIFT;
  22. }
  23.  
  24.  
  25. __regargs void
  26. ToggleMMBShift( BOOL toggle)
  27. {
  28.     if (toggle)
  29.     {
  30.         /* Activate MMB Shift */
  31.  
  32.         if (LMB_MMB_Filter = CxFilter("RawMouse LeftButton MidButton Mouse_LeftPress"))
  33.         {
  34.             AttachCxObj(broker, LMB_MMB_Filter);
  35.             AttachCxObj(LMB_MMB_Filter, CxCustom(MMBShiftFunction, 0L));
  36.         }
  37.     }
  38.     else
  39.     {
  40.         /* Unactivate MMB Shift */
  41.  
  42.         DeleteCxObjAll(LMB_MMB_Filter); /* LMB_MMB_Filter may be NULL, it doesn't matter */
  43.     }
  44. }
  45.