home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / bsd / dev / m68k / event.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-30  |  7.6 KB  |  226 lines

  1. /******************************************************************************
  2.     event.h (PostScript side version)
  3.     
  4.     CONFIDENTIAL
  5.     Copyright (c) 1988 NeXT, Inc. as an unpublished work.
  6.     All Rights Reserved.
  7.  
  8.     Created Leo 01Mar88
  9.  
  10.     Modified:
  11.     04May88 Leo  Final event types and record
  12.     22Aug88 Leo  Change short -> int for window, add reserved
  13.     26May90 Ted  Added NX_UNDIMMASK to correct triggering of UndoAutoDim
  14.     12Dec91 Mike Brought into sync with dpsclient/event.h, and fixed
  15.              the #ifndef interlock with dpsclient/event.h that was
  16.              broken during the Great Header Revision.!1Ahe PostScript version of this file differs from the
  17.     Window Kit version in that the coordinates here are
  18.     ints instead of floats.
  19. ******************************************************************************/
  20.  
  21. #ifndef _M68K_DEV_EVENT_
  22. #define _M68K_DEV_EVENT_
  23.  
  24. #ifdef EVENT_H        /* Interlock with dpsclient/event.h */
  25. #if !defined(_NXSIZE_)    /* Work around patch for old event.h in Phase 3 projs*/
  26. #define _NXSIZE_    1    /* NXCoord, NXPoint, NXSize decl seen */
  27. #define _NXSize_    NXSize
  28. #endif _NXSIZE_
  29. #else  EVENT_H        /* Haven't seen dpsclient/event.h, so define away */
  30. #define EVENT_H
  31.  
  32. #ifdef    KERNEL
  33. #else    KERNEL
  34.  
  35. #if !defined(_NXSIZE_)    /* Work around patch for old event.h in Phase 3 projs*/
  36. #define _NXSIZE_    1    /* NXCoord, NXPoint, NXSize decl seen */
  37. typedef float   NXCoord;
  38.  
  39. typedef struct _NXPoint {    /* point */
  40.     NXCoord         x, y;
  41. } NXPoint;
  42.  
  43. typedef struct _NXSize {    /* size */
  44.     NXCoord         width, height;
  45. } NXSize;
  46. #define _NXSize_    NXSize    /* Correct usage in event_status_driver.h */
  47. #endif _NXSIZE_
  48.  
  49. #endif    KERNEL
  50.  
  51. /* Event types */
  52.  
  53. #define NX_NULLEVENT        0    /* internal use */
  54.  
  55. /* mouse events */
  56.  
  57. #define NX_LMOUSEDOWN        1    /* left mouse-down event */
  58. #define NX_LMOUSEUP        2    /* left mouse-up event */
  59. #define NX_RMOUSEDOWN        3    /* right mouse-down event */
  60. #define NX_RMOUSEUP        4    /* right mouse-up event */
  61. #define NX_MOUSEMOVED        5    /* mouse-moved event */
  62. #define NX_LMOUSEDRAGGED    6    /* left mouse-dragged event */
  63. #define NX_RMOUSEDRAGGED    7    /* right mouse-dragged event */
  64. #define NX_MOUSEENTERED        8    /* mouse-entered event */
  65. #define NX_MOUSEEXITED        9    /* mouse-exited event */
  66.  
  67. /* keyboard events */
  68.  
  69. #define NX_KEYDOWN        10    /* key-down event */
  70. #define NX_KEYUP        11    /* key-up event */
  71. #define NX_FLAGSCHANGED        12    /* flags-changed event */
  72.  
  73. /* composite events */
  74.  
  75. #define NX_KITDEFINED        13    /* application-kit-defined event */
  76. #define NX_SYSDEFINED        14    /* system-defined event */
  77. #define NX_APPDEFINED        15    /* application-defined event */
  78. /* There are additional DPS client defined events past this point. */
  79.  
  80. #define NX_FIRSTEVENT        0
  81. #define NX_LASTEVENT        15
  82. #define NX_NUMPROCS        (NX_LASTEVENT-NX_FIRSTEVENT+1)
  83.  
  84. /* Event masks */
  85.  
  86. #define NX_LMOUSEDOWNMASK    (1 << NX_LMOUSEDOWN)    /* left mouse-down */
  87. #define NX_LMOUSEUPMASK        (1 << NX_LMOUSEUP)    /* left mouse-up */
  88. #define NX_RMOUSEDOWNMASK    (1 << NX_RMOUSEDOWN)    /* right mouse-down */
  89. !1Bine NX_RMOUSEUPMASK        (1 << NX_RMOUSEUP)    /* right mouse-up */
  90. #define NX_MOUSEMOVEDMASK    (1 << NX_MOUSEMOVED)    /* mouse-moved */
  91. #define NX_LMOUSEDRAGGEDMASK    (1 << NX_LMOUSEDRAGGED)    /* left-dragged */
  92. #define NX_RMOUSEDRAGGEDMASK    (1 << NX_RMOUSEDRAGGED)    /* right-dragged */
  93. #define NX_MOUSEENTEREDMASK    (1 << NX_MOUSEENTERED)    /* mouse-entered */
  94. #define NX_MOUSEEXITEDMASK    (1 << NX_MOUSEEXITED)    /* mouse-exited */
  95. #define NX_KEYDOWNMASK        (1 << NX_KEYDOWN)    /* key-down */
  96. #define NX_KEYUPMASK        (1 << NX_KEYUP)        /* key-up */
  97. #define NX_FLAGSCHANGEDMASK    (1 << NX_FLAGSCHANGED)    /* flags-changed */
  98. #define NX_KITDEFINEDMASK     (1 << NX_WINCHANGED)    /* kit-defined */
  99. #define NX_SYSDEFINEDMASK     (1 << NX_SYSDEFINED)    /* system-defined */
  100. #define NX_APPDEFINEDMASK     (1 << NX_APPDEFINED)    /* app-defined */
  101.  
  102. #define EventCodeMask(type)    (1 << (type))
  103. #define NX_ALLEVENTS        -1    /* Check for all events */
  104.  
  105.  
  106. /* Masks for the bits in event.flags */
  107.  
  108. /* device-independent */
  109.  
  110. #define    NX_ALPHASHIFTMASK    0x00010000
  111. #define    NX_SHIFTMASK        0x00020000
  112. #define    NX_CONTROLMASK        0x00040000
  113. #define    NX_ALTERNATEMASK    0x00080000
  114. #define    NX_COMMANDMASK        0x00100000
  115. #define    NX_NUMERICPADMASK    0x00200000
  116. #define    NX_HELPMASK        0x00400000
  117.  
  118. /* device-dependent */
  119.  
  120. #define    NX_NEXTCTLKEYMASK    0x00000001
  121. #define    NX_NEXTLSHIFTKEYMASK    0x00000002
  122. #define    NX_NEXTRSHIFTKEYMASK    0x00000004
  123. #define    NX_NEXTLCMDKEYMASK    0x00000008
  124. #define    NX_NEXTRCMDKEYMASK    0x00000010
  125. #define    NX_NEXTLALTKEYMASK    0x00000020
  126. #define    NX_NEXTRALTKEYMASK    0x00000040
  127. #define NX_STYLUSPROXIMITYMASK    0x00000080
  128. #define NX_NONCOALSESCEDMASK    0x00000100
  129.  
  130. /* click state values
  131.  * If you have the following events in close succession, the click
  132.  * field has the indicated value:
  133.  *    
  134.  *  Event    Click Value    Comments
  135.  *  mouse-down    1        Not part of any click yet
  136.  *  mouse-up    1        Aha! A click!
  137.  *  mouse-down    2        Doing a double-click
  138.  *  mouse-up    2        It's finished
  139.  *  mouse-down    3        A triple
  140.  *  mouse-up    3
  141.  */
  142.  
  143. /* Values for the character set in event.data.key.charSet */
  144.  
  145. #define    NX_ASCIISET        0
  146. #define NX_SYMBOLSET        1
  147. #define    NX_DINGBATSSET        2
  148.  
  149. /* EventData type: defines the data field of an event */
  150.  
  151. typedef    union {
  152.     struct {    /* For mouse-down and mouse-up events */
  153.     unsigned char    subx;        /* sub-pixel position for x */
  154.     unsigned char    suby;        /* sub-pixel position for y */
  155.     short        eventNum;    /* unique identifier for this butto!1C
  156.     int        click;        /* click state of this event */
  157.         unsigned char    pressure;    /* pressure value: 0=none, 255=full */
  158.     char        reserved1;
  159.     short        reserved2;
  160.     } mouse;
  161.     struct {    /* For key-down and key-up events */
  162.         short    reserved;
  163.     short    repeat;        /* for key-down: nonzero if really a repeat */
  164.     unsigned short charSet;    /* character set code */
  165.     unsigned short charCode;/* character code in that set */
  166.     unsigned short keyCode;    /* device-dependent key number */
  167.     short       keyData;    /* device-dependent info */
  168.     } key;
  169.     struct {    /* For mouse-entered and mouse-exited events */
  170.         short    reserved;
  171.     short    eventNum;    /* unique identifier from mouse down event */
  172.     int    trackingNum;    /* unique identifier from settrackingrect */
  173.     int    userData;   /* uninterpreted integer from settrackingrect */
  174.     } tracking;
  175.     struct {    /* For window-changed, sys-defined, and app-defined events */
  176.         short    reserved;
  177.     short    subType;    /* event subtype for compound events */
  178.     union {
  179.         float    F[2];    /* for use in compound events */
  180.         long    L[2];    /* for use in compound events */
  181.         short    S[4];    /* for use in compound events */
  182.         char    C[8];    /* for use in compound events */
  183.     } misc;
  184.     } compound;
  185. } NXEventData;
  186.  
  187. /* Finally! The event record! */
  188. typedef struct _NXEvent {
  189.     int            type;        /* An event type from above */
  190.     struct {
  191.     int        x, y;        /* Base coordinates in window, */
  192.     }            location;    /* from bottom 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. } NXEvent, *NXEventPtr;
  198.  
  199. /* How to pick window(s) for event (for PostEvent) */
  200. #define NX_NOWINDOW        -1
  201. #define NX_BYTYPE        0
  202. #define NX_BROADCAST        1
  203. #define NX_TOPWINDOW        2
  204. #define NX_FIRSTWINDOW        3
  205. #define NX_MOUSEWINDOW        4
  206. #define NX_NEXTWINDOW        5
  207. #define NX_LASTLEFT        6
  208. #define NX_LASTRIGHT        7
  209. #define NX_LASTKEY        8
  210. #define NX_EXPLICIT        9
  211. #define NX_TRANSMIT        10
  212. #define NX_BYPSCONTEXT        11
  213.  
  214. #endif EVENT_H    /* End of defs common with dpsclient/event.h */
  215.  
  216. /* Mask of events that cause screen to undim */
  217.  
  218. #define NX_UNDIMMASK        (NX_KEYDOWNMASK | NX_KEYUPMASK | \
  219.                  NX_LMOUSEDOWNMASK | NX_LMOUSEUPMASK | \
  220.                  NX_RMOUSEDOWNMASK | NX_RMOUSEUPMASK | \
  221.                  NX_MOUSEMOVEDMASK | NX_FLAGSCHANGEDMASK | \
  222.                  NX_MOUSEE!1DEDMASK | NX_MOUSEEXITEDMASK | \
  223.                  NX_LMOUSEDRAGGEDMASK | NX_RMOUSEDRAGGEDMASK)
  224.  
  225. #endif _M68K_DEV_EVENT_
  226.