home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Events.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  7.0 KB  |  264 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Events.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Events;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __EVENTS__}
  27. {$SETC __EVENTS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC EventsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __QUICKDRAW__}
  40. {$I Quickdraw.p}
  41. {$ENDC}
  42. {    MixedMode.p                                                    }
  43. {    QuickdrawText.p                                                }
  44.  
  45. {$IFC UNDEFINED __OSUTILS__}
  46. {$I OSUtils.p}
  47. {$ENDC}
  48. {    Memory.p                                                    }
  49.  
  50. {$PUSH}
  51. {$ALIGN MAC68K}
  52. {$LibExport+}
  53.  
  54. CONST
  55.     nullEvent                    = 0;
  56.     mouseDown                    = 1;
  57.     mouseUp                        = 2;
  58.     keyDown                        = 3;
  59.     keyUp                        = 4;
  60.     autoKey                        = 5;
  61.     updateEvt                    = 6;
  62.     diskEvt                        = 7;
  63.     activateEvt                    = 8;
  64.     osEvt                        = 15;
  65. { event mask equates }
  66.     mDownMask                    = $0002;                        { mouse button pressed }
  67.     mUpMask                        = $0004;                        { mouse button released }
  68.     keyDownMask                    = $0008;                        { key pressed }
  69.     keyUpMask                    = $0010;                        { key released }
  70.     autoKeyMask                    = $0020;                        { key repeatedly held down }
  71.     updateMask                    = $0040;                        { window needs updating }
  72.     diskMask                    = $0080;                        { disk inserted }
  73.     activMask                    = $0100;                        { activate/deactivate window }
  74.     highLevelEventMask            = $0400;                        { high-level events (includes AppleEvents) }
  75.     osMask                        = $8000;                        { operating system events (suspend, resume) }
  76.     everyEvent                    = $FFFF;                        { all of the above }
  77.  
  78. { event message equates }
  79.     charCodeMask                = $000000FF;
  80.     keyCodeMask                    = $0000FF00;
  81.     adbAddrMask                    = $00FF0000;
  82.     osEvtMessageMask            = $FF000000;
  83. { OS event messages.  Event (sub)code is in the high byte of the message field. }
  84.     mouseMovedMessage            = $00FA;
  85.     suspendResumeMessage        = $0001;
  86.     resumeFlag                    = 1;                            { Bit 0 of message indicates resume vs suspend }
  87.     convertClipboardFlag        = 2;                            { Bit 1 in resume message indicates clipboard change }
  88. { modifiers }
  89.     activeFlag                    = $0001;                        { Bit 0 of modifiers for activateEvt and mouseDown events }
  90.     btnState                    = $0080;                        { Bit 7 of low byte is mouse button state }
  91.     cmdKey                        = $0100;                        { Bit 0 of high byte }
  92.     shiftKey                    = $0200;                        { Bit 1 of high byte }
  93.     alphaLock                    = $0400;                        { Bit 2 of high byte }
  94.     optionKey                    = $0800;                        { Bit 3 of high byte }
  95.     controlKey                    = $1000;                        { Bit 4 of high byte }
  96. { obsolete equates }
  97.     networkEvt                    = 10;
  98.     driverEvt                    = 11;
  99.     app1Evt                        = 12;
  100.     app2Evt                        = 13;
  101.  
  102.     app3Evt                        = 14;
  103.     app4Evt                        = 15;
  104.     networkMask                    = $0400;
  105.     driverMask                    = $0800;
  106.     app1Mask                    = $1000;
  107.     app2Mask                    = $2000;
  108.     app3Mask                    = $4000;
  109.     app4Mask                    = $8000;
  110.  
  111.  
  112. TYPE
  113.     EventRecord = RECORD
  114.         what:                    INTEGER;
  115.         message:                LONGINT;
  116.         when:                    LONGINT;
  117.         where:                    Point;
  118.         modifiers:                INTEGER;
  119.     END;
  120.     KeyMap = PACKED ARRAY [0..127] OF BOOLEAN;
  121.  
  122.     EvQEl = RECORD
  123.         qLink:                    QElemPtr;
  124.         qType:                    INTEGER;
  125.         evtQWhat:                INTEGER;                                { this part is identical to the EventRecord as... }
  126.         evtQMessage:            LONGINT;                                { defined in ToolIntf }
  127.         evtQWhen:                LONGINT;
  128.         evtQWhere:                Point;
  129.         evtQModifiers:            INTEGER;
  130.     END;
  131.     EvQElPtr = ^EvQEl;
  132.  
  133.     GetNextEventFilterProcPtr = ProcPtr;  { PROCEDURE GetNextEventFilter(VAR theEvent: EventRecord; VAR result: BOOLEAN); }
  134.     GetNextEventFilterUPP = UniversalProcPtr;
  135.  
  136. CONST
  137.     uppGetNextEventFilterProcInfo = $000000BF; { SPECIAL_CASE_PROCINFO( kSpecialCaseGNEFilterProc ) }
  138.  
  139. FUNCTION NewGetNextEventFilterProc(userRoutine: GetNextEventFilterProcPtr): GetNextEventFilterUPP;
  140.     {$IFC NOT GENERATINGCFM }
  141.     INLINE $2E9F;
  142.     {$ENDC}
  143.  
  144. PROCEDURE CallGetNextEventFilterProc(VAR theEvent: EventRecord; VAR result: BOOLEAN; userRoutine: GetNextEventFilterUPP);
  145.     {$IFC NOT GENERATINGCFM}
  146.     {To be implemented:  Glue to move parameters according to special case conventions.}
  147.     {$ENDC}
  148.     
  149. TYPE
  150.     GNEFilterUPP = GetNextEventFilterUPP;
  151.  
  152. FUNCTION GetDblTime : LONGINT;
  153.     {$IFC NOT CFMSYSTEMCALLS}
  154.     INLINE $2EB8, $02F0;            { MOVE.L $02F0,(SP) }
  155.     {$ENDC}
  156.  
  157. FUNCTION GetCaretTime : LONGINT;
  158.     {$IFC NOT CFMSYSTEMCALLS}
  159.     INLINE $2EB8, $02F4;            { MOVE.L $02F4,(SP) }
  160.     {$ENDC}
  161.  
  162. PROCEDURE SetEventMask( value: INTEGER );
  163.     {$IFC NOT CFMSYSTEMCALLS}
  164.     INLINE $31DF, $0144;            { MOVE.W (SP)+,$0144 }
  165.     {$ENDC}
  166.  
  167. FUNCTION GetEventQueue: QHdrPtr;
  168.     {$IFC NOT GENERATINGCFM}
  169.     INLINE $2EBC, $0000, $014A;
  170.     {$ENDC}
  171. FUNCTION GetNextEvent(eventMask: INTEGER; VAR theEvent: EventRecord): BOOLEAN;
  172.     {$IFC NOT GENERATINGCFM}
  173.     INLINE $A970;
  174.     {$ENDC}
  175. FUNCTION WaitNextEvent(eventMask: INTEGER; VAR theEvent: EventRecord; sleep: LONGINT; mouseRgn: RgnHandle): BOOLEAN;
  176.     {$IFC NOT GENERATINGCFM}
  177.     INLINE $A860;
  178.     {$ENDC}
  179. FUNCTION EventAvail(eventMask: INTEGER; VAR theEvent: EventRecord): BOOLEAN;
  180.     {$IFC NOT GENERATINGCFM}
  181.     INLINE $A971;
  182.     {$ENDC}
  183. PROCEDURE GetMouse(VAR mouseLoc: Point);
  184.     {$IFC NOT GENERATINGCFM}
  185.     INLINE $A972;
  186.     {$ENDC}
  187. FUNCTION Button: BOOLEAN;
  188.     {$IFC NOT GENERATINGCFM}
  189.     INLINE $A974;
  190.     {$ENDC}
  191. FUNCTION StillDown: BOOLEAN;
  192.     {$IFC NOT GENERATINGCFM}
  193.     INLINE $A973;
  194.     {$ENDC}
  195. FUNCTION WaitMouseUp: BOOLEAN;
  196.     {$IFC NOT GENERATINGCFM}
  197.     INLINE $A977;
  198.     {$ENDC}
  199. PROCEDURE GetKeys(VAR theKeys: KeyMap);
  200.     {$IFC NOT GENERATINGCFM}
  201.     INLINE $A976;
  202.     {$ENDC}
  203. FUNCTION KeyTranslate(transData: UNIV Ptr; keycode: INTEGER; VAR state: LONGINT): LONGINT;
  204.     {$IFC NOT GENERATINGCFM}
  205.     INLINE $A9C3;
  206.     {$ENDC}
  207. FUNCTION TickCount: LONGINT;
  208.     {$IFC NOT GENERATINGCFM}
  209.     INLINE $A975;
  210.     {$ENDC}
  211. FUNCTION PostEvent(eventNum: INTEGER; eventMsg: LONGINT): OSErr;
  212.     {$IFC NOT GENERATINGCFM}
  213.     INLINE $201F, $305F, $A02F, $3E80;
  214.     {$ENDC}
  215. FUNCTION PPostEvent(eventCode: INTEGER; eventMsg: LONGINT; VAR qEl: EvQElPtr): OSErr;
  216.     {$IFC NOT GENERATINGCFM}
  217.     INLINE $225F, $201F, $305F, $A12F, $2288, $3E80;
  218.     {$ENDC}
  219. FUNCTION OSEventAvail(mask: INTEGER; VAR theEvent: EventRecord): BOOLEAN;
  220.     {$IFC NOT GENERATINGCFM}
  221.     INLINE $205F, $301F, $A030, $5240, $1E80;
  222.     {$ENDC}
  223. FUNCTION GetOSEvent(mask: INTEGER; VAR theEvent: EventRecord): BOOLEAN;
  224.     {$IFC NOT GENERATINGCFM}
  225.     INLINE $205F, $301F, $A031, $5240, $1E80;
  226.     {$ENDC}
  227. PROCEDURE FlushEvents(whichMask: INTEGER; stopMask: INTEGER);
  228.     {$IFC NOT GENERATINGCFM}
  229.     INLINE $201F, $A032;
  230.     {$ENDC}
  231. PROCEDURE SystemClick({CONST}VAR theEvent: EventRecord; theWindow: WindowPtr);
  232.     {$IFC NOT GENERATINGCFM}
  233.     INLINE $A9B3;
  234.     {$ENDC}
  235. PROCEDURE SystemTask;
  236.     {$IFC NOT GENERATINGCFM}
  237.     INLINE $A9B4;
  238.     {$ENDC}
  239. FUNCTION SystemEvent({CONST}VAR theEvent: EventRecord): BOOLEAN;
  240.     {$IFC NOT GENERATINGCFM}
  241.     INLINE $A9B2;
  242.     {$ENDC}
  243. {$IFC OLDROUTINENAMES }
  244. FUNCTION KeyTrans(transData: UNIV Ptr; keycode: INTEGER; VAR state: LONGINT): LONGINT;
  245.     {$IFC NOT GENERATINGCFM}
  246.     INLINE $A9C3;
  247.     {$ENDC}
  248. FUNCTION GetEvQHdr: QHdrPtr;
  249.     {$IFC NOT GENERATINGCFM}
  250.     INLINE $2EBC, $0000, $014A;
  251.     {$ENDC}
  252. {$ENDC}
  253.  
  254. {$ALIGN RESET}
  255. {$POP}
  256.  
  257. {$SETC UsingIncludes := EventsIncludes}
  258.  
  259. {$ENDC} {__EVENTS__}
  260.  
  261. {$IFC NOT UsingIncludes}
  262.  END.
  263. {$ENDC}
  264.