|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /****************************************************************************** ! 26: event.h (PostScript side version) ! 27: ! 28: CONFIDENTIAL ! 29: Copyright (c) 1988 NeXT, Inc. as an unpublished work. ! 30: All Rights Reserved. ! 31: ! 32: Created Leo 01Mar88 ! 33: ! 34: Modified: ! 35: 04May88 Leo Final event types and record ! 36: 22Aug88 Leo Change short -> int for window, add reserved ! 37: 26May90 Ted Added NX_UNDIMMASK to correct triggering of UndoAutoDim ! 38: 12Dec91 Mike Brought into sync with dpsclient/event.h, and fixed ! 39: the #ifndef interlock with dpsclient/event.h that was ! 40: broken during the Great Header Revision. ! 41: ! 42: The PostScript version of this file differs from the ! 43: Window Kit version in that the coordinates here are ! 44: ints instead of floats. ! 45: ******************************************************************************/ ! 46: ! 47: #ifndef _DEV_EVENT_ ! 48: #define _DEV_EVENT_ ! 49: ! 50: #ifdef EVENT_H /* Interlock with dpsclient/event.h */ ! 51: #if !defined(_NXSIZE_) /* Work around patch for old event.h in Phase 3 projs*/ ! 52: #define _NXSIZE_ 1 /* NXCoord, NXPoint, NXSize decl seen */ ! 53: #define _NXSize_ NXSize ! 54: #endif /* _NXSIZE_ */ ! 55: #else /* EVENT_H */ /* Haven't seen dpsclient/event.h, so define away */ ! 56: #define EVENT_H ! 57: ! 58: #ifdef KERNEL ! 59: #else /* KERNEL */ ! 60: ! 61: #if !defined(_NXSIZE_) /* Work around patch for old event.h in Phase 3 projs*/ ! 62: #define _NXSIZE_ 1 /* NXCoord, NXPoint, NXSize decl seen */ ! 63: typedef float NXCoord; ! 64: ! 65: typedef struct _NXPoint { /* point */ ! 66: NXCoord x, y; ! 67: } NXPoint; ! 68: ! 69: typedef struct _NXSize { /* size */ ! 70: NXCoord width, height; ! 71: } NXSize; ! 72: #define _NXSize_ NXSize /* Correct usage in event_status_driver.h */ ! 73: #endif /* _NXSIZE_ */ ! 74: ! 75: #endif /* KERNEL */ ! 76: ! 77: /* Event types */ ! 78: ! 79: #define NX_NULLEVENT 0 /* internal use */ ! 80: ! 81: /* mouse events */ ! 82: ! 83: #define NX_LMOUSEDOWN 1 /* left mouse-down event */ ! 84: #define NX_LMOUSEUP 2 /* left mouse-up event */ ! 85: #define NX_RMOUSEDOWN 3 /* right mouse-down event */ ! 86: #define NX_RMOUSEUP 4 /* right mouse-up event */ ! 87: #define NX_MOUSEMOVED 5 /* mouse-moved event */ ! 88: #define NX_LMOUSEDRAGGED 6 /* left mouse-dragged event */ ! 89: #define NX_RMOUSEDRAGGED 7 /* right mouse-dragged event */ ! 90: #define NX_MOUSEENTERED 8 /* mouse-entered event */ ! 91: #define NX_MOUSEEXITED 9 /* mouse-exited event */ ! 92: ! 93: /* keyboard events */ ! 94: ! 95: #define NX_KEYDOWN 10 /* key-down event */ ! 96: #define NX_KEYUP 11 /* key-up event */ ! 97: #define NX_FLAGSCHANGED 12 /* flags-changed event */ ! 98: ! 99: /* composite events */ ! 100: ! 101: #define NX_KITDEFINED 13 /* application-kit-defined event */ ! 102: #define NX_SYSDEFINED 14 /* system-defined event */ ! 103: #define NX_APPDEFINED 15 /* application-defined event */ ! 104: /* There are additional DPS client defined events past this point. */ ! 105: ! 106: #define NX_FIRSTEVENT 0 ! 107: #define NX_LASTEVENT 15 ! 108: #define NX_NUMPROCS (NX_LASTEVENT-NX_FIRSTEVENT+1) ! 109: ! 110: /* Event masks */ ! 111: ! 112: #define NX_LMOUSEDOWNMASK (1 << NX_LMOUSEDOWN) /* left mouse-down */ ! 113: #define NX_LMOUSEUPMASK (1 << NX_LMOUSEUP) /* left mouse-up */ ! 114: #define NX_RMOUSEDOWNMASK (1 << NX_RMOUSEDOWN) /* right mouse-down */ ! 115: #define NX_RMOUSEUPMASK (1 << NX_RMOUSEUP) /* right mouse-up */ ! 116: #define NX_MOUSEMOVEDMASK (1 << NX_MOUSEMOVED) /* mouse-moved */ ! 117: #define NX_LMOUSEDRAGGEDMASK (1 << NX_LMOUSEDRAGGED) /* left-dragged */ ! 118: #define NX_RMOUSEDRAGGEDMASK (1 << NX_RMOUSEDRAGGED) /* right-dragged */ ! 119: #define NX_MOUSEENTEREDMASK (1 << NX_MOUSEENTERED) /* mouse-entered */ ! 120: #define NX_MOUSEEXITEDMASK (1 << NX_MOUSEEXITED) /* mouse-exited */ ! 121: #define NX_KEYDOWNMASK (1 << NX_KEYDOWN) /* key-down */ ! 122: #define NX_KEYUPMASK (1 << NX_KEYUP) /* key-up */ ! 123: #define NX_FLAGSCHANGEDMASK (1 << NX_FLAGSCHANGED) /* flags-changed */ ! 124: #define NX_KITDEFINEDMASK (1 << NX_WINCHANGED) /* kit-defined */ ! 125: #define NX_SYSDEFINEDMASK (1 << NX_SYSDEFINED) /* system-defined */ ! 126: #define NX_APPDEFINEDMASK (1 << NX_APPDEFINED) /* app-defined */ ! 127: ! 128: #define EventCodeMask(type) (1 << (type)) ! 129: #define NX_ALLEVENTS -1 /* Check for all events */ ! 130: ! 131: ! 132: /* Masks for the bits in event.flags */ ! 133: ! 134: /* device-independent */ ! 135: ! 136: #define NX_ALPHASHIFTMASK 0x00010000 ! 137: #define NX_SHIFTMASK 0x00020000 ! 138: #define NX_CONTROLMASK 0x00040000 ! 139: #define NX_ALTERNATEMASK 0x00080000 ! 140: #define NX_COMMANDMASK 0x00100000 ! 141: #define NX_NUMERICPADMASK 0x00200000 ! 142: #define NX_HELPMASK 0x00400000 ! 143: ! 144: /* The device dependant flags are defined in <bsd/dev/machine/event.h> */ ! 145: ! 146: /* ! 147: * Additional reserved bits in event.flags ! 148: */ ! 149: ! 150: #define NX_STYLUSPROXIMITYMASK 0x00000080 ! 151: #define NX_NONCOALSESCEDMASK 0x00000100 ! 152: ! 153: /* click state values ! 154: * If you have the following events in close succession, the click ! 155: * field has the indicated value: ! 156: * ! 157: * Event Click Value Comments ! 158: * mouse-down 1 Not part of any click yet ! 159: * mouse-up 1 Aha! A click! ! 160: * mouse-down 2 Doing a double-click ! 161: * mouse-up 2 It's finished ! 162: * mouse-down 3 A triple ! 163: * mouse-up 3 ! 164: */ ! 165: ! 166: /* Values for the character set in event.data.key.charSet */ ! 167: ! 168: #define NX_ASCIISET 0 ! 169: #define NX_SYMBOLSET 1 ! 170: #define NX_DINGBATSSET 2 ! 171: ! 172: /* EventData type: defines the data field of an event */ ! 173: ! 174: typedef union { ! 175: struct { /* For mouse-down and mouse-up events */ ! 176: unsigned char subx; /* sub-pixel position for x */ ! 177: unsigned char suby; /* sub-pixel position for y */ ! 178: short eventNum; /* unique identifier for this button */ ! 179: int click; /* click state of this event */ ! 180: unsigned char pressure; /* pressure value: 0=none, 255=full */ ! 181: char reserved1; ! 182: short reserved2; ! 183: } mouse; ! 184: struct { /* For key-down and key-up events */ ! 185: unsigned short origCharSet; /* unmodified character set code */ ! 186: short repeat; /* for key-down: nonzero if really a repeat */ ! 187: unsigned short charSet; /* character set code */ ! 188: unsigned short charCode; /* character code in that set */ ! 189: unsigned short keyCode; /* device-dependent key number */ ! 190: unsigned short origCharCode; /* unmodified character code */ ! 191: } key; ! 192: struct { /* For mouse-entered and mouse-exited events */ ! 193: short reserved; ! 194: short eventNum; /* unique identifier from mouse down event */ ! 195: int trackingNum; /* unique identifier from settrackingrect */ ! 196: int userData; /* uninterpreted integer from settrackingrect */ ! 197: } tracking; ! 198: struct { /* For window-changed, sys-defined, and app-defined events */ ! 199: short reserved; ! 200: short subType; /* event subtype for compound events */ ! 201: union { ! 202: float F[2]; /* for use in compound events */ ! 203: long L[2]; /* for use in compound events */ ! 204: short S[4]; /* for use in compound events */ ! 205: char C[8]; /* for use in compound events */ ! 206: } misc; ! 207: } compound; ! 208: } NXEventData; ! 209: ! 210: /* Finally! The event record! */ ! 211: typedef struct _NXEvent { ! 212: int type; /* An event type from above */ ! 213: struct { ! 214: int x, y; /* Base coordinates in window, */ ! 215: } location; /* from bottom left */ ! 216: long time; /* vertical intervals since launch */ ! 217: int flags; /* key state flags */ ! 218: unsigned int window; /* window number of assigned window */ ! 219: NXEventData data; /* type-dependent data */ ! 220: } NXEvent, *NXEventPtr; ! 221: ! 222: /* How to pick window(s) for event (for PostEvent) */ ! 223: #define NX_NOWINDOW -1 ! 224: #define NX_BYTYPE 0 ! 225: #define NX_BROADCAST 1 ! 226: #define NX_TOPWINDOW 2 ! 227: #define NX_FIRSTWINDOW 3 ! 228: #define NX_MOUSEWINDOW 4 ! 229: #define NX_NEXTWINDOW 5 ! 230: #define NX_LASTLEFT 6 ! 231: #define NX_LASTRIGHT 7 ! 232: #define NX_LASTKEY 8 ! 233: #define NX_EXPLICIT 9 ! 234: #define NX_TRANSMIT 10 ! 235: #define NX_BYPSCONTEXT 11 ! 236: ! 237: #endif /* EVENT_H */ /* End of defs common with dpsclient/event.h */ ! 238: ! 239: /* Mask of events that cause screen to undim */ ! 240: ! 241: #define NX_UNDIMMASK (NX_KEYDOWNMASK | NX_KEYUPMASK | \ ! 242: NX_LMOUSEDOWNMASK | NX_LMOUSEUPMASK | \ ! 243: NX_RMOUSEDOWNMASK | NX_RMOUSEUPMASK | \ ! 244: NX_MOUSEMOVEDMASK | NX_FLAGSCHANGEDMASK | \ ! 245: NX_MOUSEENTEREDMASK | NX_MOUSEEXITEDMASK | \ ! 246: NX_LMOUSEDRAGGEDMASK | NX_RMOUSEDRAGGEDMASK) ! 247: ! 248: #endif /* _DEV_EVENT_ */ ! 249:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.