home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / turbo_part1.lha / modula / amiga / Intuition.mod < prev    next >
Encoding:
Modula Implementation  |  1995-01-24  |  1.6 KB  |  60 lines

  1. IMPLEMENTATION MODULE Intuition ;
  2.  
  3. FROM SYSTEM IMPORT ADR, ADDRESS ;
  4. IMPORT M2Lib ;
  5.  
  6. CONST
  7.   SHIFT5  = 32 ;
  8.   SHIFT11 = 2048 ;
  9.  
  10. PROCEDURE CUSTOM_HOOK( gadget : GadgetPtr ) : ADDRESS ;
  11. BEGIN RETURN ADDRESS( gadget^.MutualExclude )
  12. END CUSTOM_HOOK ;
  13.  
  14. PROCEDURE GADGET_BOX( g : GadgetPtr ) : IBoxPtr ;
  15. BEGIN RETURN ADR( g^.LeftEdge )
  16. END GADGET_BOX ;
  17.  
  18. PROCEDURE IM_BOX( im : ImagePtr ) : IBoxPtr ;
  19. BEGIN RETURN ADR( im^.LeftEdge )
  20. END IM_BOX ;
  21.  
  22. PROCEDURE IM_FGPEN( im : ImagePtr ) : SHORTCARD ;
  23. BEGIN RETURN im^.PlanePick
  24. END IM_FGPEN ;
  25.  
  26. PROCEDURE IM_BGPEN( im : ImagePtr ) : SHORTCARD ;
  27. BEGIN RETURN im^.PlaneOnOff
  28. END IM_BGPEN ;
  29.  
  30. PROCEDURE MENUNUM( n : CARDINAL ) : CARDINAL ;
  31. BEGIN RETURN CARDINAL( BITSET( n ) * BITSET( 01FH ) )
  32. END MENUNUM ;
  33.  
  34. PROCEDURE ITEMNUM( n : CARDINAL ) : CARDINAL ;
  35. BEGIN RETURN CARDINAL( BITSET( n / SHIFT5 ) * BITSET( 0003FH ) )
  36. END ITEMNUM ;
  37.  
  38. PROCEDURE SUBNUM( n : CARDINAL ) : CARDINAL ;
  39. BEGIN RETURN CARDINAL( BITSET( n / SHIFT11 ) * BITSET( 0001FH ) )
  40. END SUBNUM ;
  41.  
  42. PROCEDURE SHIFTMENU( n : CARDINAL ) : CARDINAL ;
  43. BEGIN RETURN CARDINAL( BITSET( n ) * BITSET( 01FH ) )
  44. END SHIFTMENU ;
  45.  
  46. PROCEDURE SHIFTITEM( n : CARDINAL ) : CARDINAL ;
  47. BEGIN RETURN CARDINAL( BITSET( n ) * BITSET( 03FH ) ) * SHIFT5
  48. END SHIFTITEM ;
  49.  
  50. PROCEDURE SHIFTSUB( n : CARDINAL ) : CARDINAL ;
  51. BEGIN RETURN CARDINAL( BITSET( n ) * BITSET( 01FH ) ) * SHIFT11
  52. END SHIFTSUB ;
  53.  
  54. PROCEDURE FULLMENUNUM( menu, item, sub : CARDINAL ) : CARDINAL ;
  55. BEGIN RETURN SHIFTMENU( menu ) + SHIFTITEM( item ) + SHIFTSUB( sub )
  56. END FULLMENUNUM ;
  57.  
  58. BEGIN IntuitionBase := M2Lib.OpenLib( "intuition.library", VERSION )
  59. END Intuition.
  60.