home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / OpenStepConversion / IntermediateFrameworks3 / AppKit.framework / Headers / event.h < prev    next >
Text File  |  1995-01-16  |  8KB  |  195 lines

  1.  
  2. /*    
  3.     event.h
  4.  
  5.     Copyright 1988, NeXT, Inc.
  6.  
  7.     This file has the client side definition of the event record.
  8. */
  9.  
  10.  
  11. #ifndef STRICT_OPENSTEP
  12.  
  13. #ifndef EVENT_H
  14. #define EVENT_H
  15.  
  16. #import "dpsfriends.h"
  17. #import <Foundation/NSGeometry.h>
  18.  
  19. /* Event types */
  20. #define NX_NULLEVENT        0    /* internal use */
  21. /* mouse events */
  22. #define NX_LMOUSEDOWN        1    /* left mouse-down event */
  23. #define NX_LMOUSEUP        2    /* left mouse-up event */
  24. #define NX_RMOUSEDOWN        3    /* right mouse-down event */
  25. #define NX_RMOUSEUP        4    /* right mouse-up event */
  26. #define NX_MOUSEMOVED        5    /* mouse-moved event */
  27. #define NX_LMOUSEDRAGGED    6    /* left mouse-dragged event */
  28. #define NX_RMOUSEDRAGGED    7    /* right mouse-dragged event */
  29. #define NX_MOUSEENTERED        8    /* mouse-entered event */
  30. #define NX_MOUSEEXITED        9    /* mouse-exited event */
  31. /* keyboard events */
  32. #define NX_KEYDOWN        10    /* key-down event */
  33. #define NX_KEYUP        11    /* key-up event */
  34. #define NX_FLAGSCHANGED        12    /* flags-changed event */
  35. /* composite events */
  36. #define NX_KITDEFINED        13    /* appkit-defined event */
  37. #define NX_SYSDEFINED        14    /* system-defined event */
  38. #define NX_APPDEFINED        15    /* application-defined event */
  39. #define NX_TIMER        16    /* timer used for tracking */
  40. #define NX_CURSORUPDATE        17    /* cursor tracking event */
  41. #define NX_JOURNALEVENT        18    /* event used by journaling */
  42. #define NX_RESERVEDEVENT4    19    /* reserved event */
  43. #define NX_RESERVEDEVENT5    20    /* reserved event */
  44. #define NX_RESERVEDEVENT6    21    /* reserved event */
  45. #define NX_RESERVEDEVENT7    22    /* reserved event */
  46. #define NX_RESERVEDEVENT8    23    /* reserved event */
  47. #define NX_RESERVEDEVENT9    24    /* reserved event */
  48. #define NX_RESERVEDEVENT10    25    /* reserved event */
  49. #define NX_RESERVEDEVENT11    26    /* reserved event */
  50. #define NX_RESERVEDEVENT12    27    /* reserved event */
  51. #define NX_RESERVEDEVENT13    28    /* reserved event */
  52. #define NX_RESERVEDEVENT14    29    /* reserved event */
  53. #define NX_RESERVEDEVENT15    30    /* reserved event */
  54. #define NX_RESERVEDEVENT16    31    /* reserved event */
  55.  
  56. #define NX_FIRSTEVENT        0
  57. #define NX_LASTEVENT        18
  58.  
  59. #define NX_MOUSEDOWN        NX_LMOUSEDOWN        /* Synonym */
  60. #define NX_MOUSEUP        NX_LMOUSEUP        /* Synonym */
  61. #define    NX_MOUSEDRAGGED        NX_LMOUSEDRAGGED    /* Synonym */
  62.  
  63.  
  64.  /* Event masks */
  65.  
  66. #define NX_NULLEVENTMASK    (1 << NX_NULLEVENT)    /* a non-event */
  67. #define NX_LMOUSEDOWNMASK    (1 << NX_LMOUSEDOWN)    /* left mouse-down */
  68. #define NX_LMOUSEUPMASK        (1 << NX_LMOUSEUP)    /* left mouse-up */
  69. #define NX_RMOUSEDOWNMASK    (1 << NX_RMOUSEDOWN)    /* right mouse-down */
  70. #define NX_RMOUSEUPMASK        (1 << NX_RMOUSEUP)    /* right mouse-up */
  71. #define NX_MOUSEMOVEDMASK    (1 << NX_MOUSEMOVED)    /* mouse-moved */
  72. #define NX_LMOUSEDRAGGEDMASK    (1 << NX_LMOUSEDRAGGED)    /* left-dragged */
  73. #define NX_RMOUSEDRAGGEDMASK    (1 << NX_RMOUSEDRAGGED)    /* right-dragged */
  74. #define NX_MOUSEENTEREDMASK    (1 << NX_MOUSEENTERED)    /* mouse-entered */
  75. #define NX_MOUSEEXITEDMASK    (1 << NX_MOUSEEXITED)    /* mouse-exited */
  76. #define NX_KEYDOWNMASK        (1 << NX_KEYDOWN)    /* key-down */
  77. #define NX_KEYUPMASK        (1 << NX_KEYUP)        /* key-up */
  78. #define NX_FLAGSCHANGEDMASK    (1 << NX_FLAGSCHANGED)    /* flags-changed */
  79. #define NX_KITDEFINEDMASK     (1 << NX_KITDEFINED)    /* appkit-defined */
  80. #define NX_APPDEFINEDMASK     (1 << NX_APPDEFINED)    /* app-defined */
  81. #define NX_SYSDEFINEDMASK     (1 << NX_SYSDEFINED)    /* system-defined */
  82. #define NX_TIMERMASK        (1 << NX_TIMER)        /* tracking timer */
  83. #define NX_CURSORUPDATEMASK    (1 << NX_CURSORUPDATE)  /* cursor tracking */
  84. #define NX_JOURNALEVENTMASK    (1 << NX_JOURNALEVENT)    /* journaling event */
  85. #define NX_RESERVEDEVENT4MASK    (1 << NX_RESERVEDEVENT4) /* reserved event */
  86. #define NX_RESERVEDEVENT5MASK    (1 << NX_RESERVEDEVENT5) /* reserved event */
  87. #define NX_RESERVEDEVENT6MASK    (1 << NX_RESERVEDEVENT6) /* reserved event */
  88. #define NX_RESERVEDEVENT7MASK    (1 << NX_RESERVEDEVENT7) /* reserved event */
  89. #define NX_RESERVEDEVENT8MASK    (1 << NX_RESERVEDEVENT8) /* reserved event */
  90. #define NX_RESERVEDEVENT9MASK    (1 << NX_RESERVEDEVENT9) /* reserved event */
  91. #define NX_RESERVEDEVENT10MASK    (1 << NX_RESERVEDEVENT10) /* reserved event */
  92. #define NX_RESERVEDEVENT11MASK    (1 << NX_RESERVEDEVENT11) /* reserved event */
  93. #define NX_RESERVEDEVENT12MASK    (1 << NX_RESERVEDEVENT12) /* reserved event */
  94. #define NX_RESERVEDEVENT13MASK    (1 << NX_RESERVEDEVENT13) /* reserved event */
  95. #define NX_RESERVEDEVENT14MASK    (1 << NX_RESERVEDEVENT14) /* reserved event */
  96. #define NX_RESERVEDEVENT15MASK    (1 << NX_RESERVEDEVENT15) /* reserved event */
  97. #define NX_RESERVEDEVENT16MASK    (1 << NX_RESERVEDEVENT16) /* reserved event */
  98.  
  99. #define    NX_MOUSEDOWNMASK    NX_LMOUSEDOWNMASK    /* Synonym */
  100. #define NX_MOUSEUPMASK        NX_LMOUSEUPMASK        /* Synonym */
  101. #define    NX_MOUSEDRAGGEDMASK    NX_LMOUSEDRAGGEDMASK    /* Synonym */
  102.  
  103. #define NX_EVENTCODEMASK(type) (1 << (type))
  104. #define NX_ALLEVENTS    -1    /* Check for all events */
  105.  
  106. /* masks for the bits in the flags field */
  107.     /* Device-independent bits */
  108. #define    NX_ALPHASHIFTMASK    (1 << 16)    /* if alpha lock is on */
  109. #define    NX_SHIFTMASK        (1 << 17)    /* if shift key is down */
  110. #define NX_CONTROLMASK        (1 << 18)    /* if control key is down */
  111. #define NX_ALTERNATEMASK    (1 << 19)    /* if alt key is down */
  112. #define NX_COMMANDMASK        (1 << 20)    /* if command key is down */
  113. #define NX_NUMERICPADMASK    (1 << 21)    /* if key on numeric pad */
  114. #define NX_HELPMASK        (1 << 22)    /* if help key is down */
  115.  
  116.     /* Device-dependent bits */
  117. #define NX_NEXTCTRLKEYMASK    (1 << 0)    /* control key */
  118. #define NX_NEXTLSHIFTKEYMASK    (1 << 1)    /* left side shift key */
  119. #define NX_NEXTRSHIFTKEYMASK    (1 << 2)    /* right side shift key */
  120. #define NX_NEXTLCMDKEYMASK    (1 << 3)    /* left side command key */
  121. #define NX_NEXTRCMDKEYMASK    (1 << 4)    /* right side command key */
  122. #define NX_NEXTLALTKEYMASK    (1 << 5)    /* left side alt key */
  123. #define NX_NEXTRALTKEYMASK    (1 << 6)    /* right side alt key */
  124. #define NX_STYLUSPROXIMITYMASK    (1 << 7)    /* if stylus is in proximity 
  125.                            (for tablets) */
  126. #define NX_NONCOALSESCEDMASK    (1 << 8)    /* event was generated with
  127.                            event coalescing disabled */
  128.  
  129. /* click state values
  130. If you have the following event in close succession, the click
  131. field has the indicated value:
  132.     Event        Click Value        Comments
  133.     mouse-down    1            Not part of any click yet
  134.     mouse-up    1            Aha! A click!
  135.     mouse-down    2            Doing a double-click
  136.     mouse-up    2            It's finished
  137.     mouse-down    3            A triple
  138.     mouse-up    3
  139. */
  140.  
  141. /* Values for the character set in event.data.key.charSet */
  142. #define    NX_ASCIISET        0
  143. #define NX_SYMBOLSET        1
  144. #define    NX_DINGBATSSET        2
  145.  
  146. /* EventData type: defines the data field of an event */
  147. typedef    union {
  148.     struct {    /* For mouse events */
  149.     short    reserved;
  150.     short    eventNum;        /* unique identifier for this button */
  151.     int    click;            /* click state of this event */
  152.         unsigned char    pressure;    /* pressure value: 0=none, 255=full */
  153.     char        reserved1;
  154.     short        reserved2;
  155.     } mouse;
  156.     struct {    /* For key-down and key-up events */
  157.     short    reserved;
  158.     short    repeat;        /* for key-down: nonzero if really a repeat */
  159.     unsigned short charSet;    /* character set code */
  160.     unsigned short charCode;/* character code in that set */
  161.     unsigned short keyCode;    /* device-dependent key number */
  162.     short       keyData;    /* device-dependent info */
  163.     } key;
  164.     struct {    /* For mouse-entered and mouse-exited events */
  165.     short    reserved;
  166.     short    eventNum;    /* unique identifier from mouse down event */
  167.     int    trackingNum;    /* unique identifier from settrackingrect */
  168.     int    userData;    /* uninterpreted integer from settrackingrect */
  169.     } tracking;
  170.     struct {    /* For appkit-defined, sys-defined, and app-defined events */
  171.     short    reserved;
  172.     short    subtype;    /* event subtype for compound events */
  173.     union {
  174.         float    F[2];    /* for use in compound events */
  175.         long    L[2];    /* for use in compound events */
  176.         short    S[4];    /* for use in compound events */
  177.         char    C[8];    /* for use in compound events */
  178.     } misc;
  179.     } compound;
  180. } NXEventData;
  181.  
  182. /* Finally! The event record! */
  183. typedef struct _NXEvent {
  184.     int type;            /* An event type from above */
  185.     NSPoint location;    /* Base coordinates in window, from lower-left */
  186.     long time;            /* vertical intervals since launch */
  187.     int flags;            /* key state flags */
  188.     unsigned int window;    /* window number of assigned window */
  189.     NXEventData data;        /* type-dependent data */
  190.     DPSContext ctxt;        /* context the event came from */
  191. } NXEvent, *NXEventPtr;
  192.  
  193. #endif EVENT_H
  194. #endif STRICT_OPENSTEP
  195.