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