home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / inc&ad2.0 / includes / devices / inputevent.i < prev    next >
Text File  |  1992-09-01  |  6KB  |  212 lines

  1.     IFND    DEVICES_INPUTEVENT_I
  2. DEVICES_INPUTEVENT_I    SET    1
  3. **
  4. **    $Filename: devices/inputevent.i $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 36.6 $
  7. **    $Date: 91/01/22 $
  8. **
  9. **    input event definitions
  10. **
  11. **    (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. **
  14.  
  15.     IFND     DEVICES_TIMER_I
  16.     INCLUDE  "devices/timer.i"
  17.     ENDC
  18.  
  19. ;------ constants ----------------------------------------------------
  20.  
  21. ;   --- InputEvent.ie_Class ---
  22. ; A NOP input event
  23. IECLASS_NULL            EQU    $00
  24. ; A raw keycode from the keyboard device
  25. IECLASS_RAWKEY            EQU    $01
  26. ; A raw mouse report from the game port device
  27. IECLASS_RAWMOUSE        EQU    $02
  28. ; A private console event
  29. IECLASS_EVENT            EQU    $03
  30. ; A Pointer Position report
  31. IECLASS_POINTERPOS        EQU    $04
  32. ; A timer event
  33. IECLASS_TIMER            EQU    $06
  34. ; select button pressed down over a Gadget (address in ie_EventAddress)
  35. IECLASS_GADGETDOWN        EQU    $07
  36. ; select button released over the same Gadget (address in ie_EventAddress)
  37. IECLASS_GADGETUP        EQU    $08
  38. ; some Requester activity has taken place.  See Codes REQCLEAR and REQSET
  39. IECLASS_REQUESTER        EQU    $09
  40. ; this is a Menu Number transmission (Menu number is in ie_Code)
  41. IECLASS_MENULIST        EQU    $0A
  42. ; User has selected the active Window's Close Gadget
  43. IECLASS_CLOSEWINDOW        EQU    $0B
  44. ; this Window has a new size
  45. IECLASS_SIZEWINDOW        EQU    $0C
  46. ; the Window pointed to by ie_EventAddress needs to be refreshed
  47. IECLASS_REFRESHWINDOW        EQU    $0D
  48. ; new preferences are available
  49. IECLASS_NEWPREFS        EQU    $0E
  50. ; the disk has been removed
  51. IECLASS_DISKREMOVED        EQU    $0F
  52. ; the disk has been inserted
  53. IECLASS_DISKINSERTED        EQU    $10
  54. ; the window is about to be been made active
  55. IECLASS_ACTIVEWINDOW        EQU    $11
  56. ; the window is about to be made inactive
  57. IECLASS_INACTIVEWINDOW        EQU    $12
  58. ; extended-function pointer position report (V36)
  59. IECLASS_NEWPOINTERPOS        EQU    $13
  60. ; Help key report during Menu session (V36)
  61. IECLASS_MENUHELP        EQU    $14
  62. ; the Window has been modified with move, size, zoom, or change (V36)
  63. IECLASS_CHANGEWINDOW        EQU    $15
  64.  
  65. ; the last class
  66. IECLASS_MAX            EQU    $15
  67.  
  68.  
  69. ;   --- InputEvent.ie_SubClass ---
  70. ;  IECLASS_NEWPOINTERPOS
  71. ;    like IECLASS_POINTERPOS
  72. IESUBCLASS_COMPATIBLE        EQU    $00
  73. ;    ie_EventAddress points to struct IEPointerPixel
  74. IESUBCLASS_PIXEL        EQU    $01
  75. ;    ie_EventAddress points to struct IEPointerTablet
  76. IESUBCLASS_TABLET        EQU    $02
  77.  
  78. ; pointed to by ie_EventAddress for IECLASS_NEWPOINTERPOS,
  79. ; and IESUBCLASS_PIXEL.
  80. ;
  81. ; You specify a screen and pixel coordinates in that screen
  82. ; at which you'd like the mouse to be positioned.
  83. ; Intuition will try to oblige, but there will be restrictions
  84. ; to positioning the pointer over offscreen pixels.
  85. ;
  86. ; IEQUALIFIER_RELATIVEMOUSE is supported for IESUBCLASS_PIXEL.
  87.  
  88.  STRUCTURE    IEPointerPixel,0
  89.     APTR    iepp_Screen        ; pointer to an open screen
  90.     LABEL   iepp_Position    ; pixel coordinates in iepp_Screen
  91.     WORD    iepp_PositionX
  92.     WORD    iepp_PositionY
  93.     LABEL   IEPointerPixel_SIZEOF
  94.  
  95. ; pointed to by ie_EventAddress for IECLASS_NEWPOINTERPOS,
  96. ; and IESUBCLASS_TABLET.
  97. ;
  98. ; You specify a range of values and a value within the range
  99. ; independently for each of X and Y (the minimum value of
  100. ; the ranges is always normalized to 0).
  101. ;
  102. ; Intuition will position the mouse proportionally within its
  103. ; natural mouse position rectangle limits.
  104. ;
  105. ; IEQUALIFIER_RELATIVEMOUSE is not supported for IESUBCLASS_TABLET.
  106.  
  107.  STRUCTURE    IEPointerTablet,0
  108.     LABEL   iept_Range        ; 0 is min, these are max
  109.     UWORD   iept_RangeX
  110.     UWORD   iept_RangeY
  111.     LABEL   iept_Value        ; between 0 and iept_Range
  112.     UWORD   iept_ValueX
  113.     UWORD   iept_ValueY
  114.     WORD    iept_Pressure    ; -128 to 127 (unused, set to 0)
  115.     LABEL   IEPointerTablet_SIZEOF
  116.  
  117.  
  118. ;   --- InputEvent.ie_Code ---
  119. ;   IECLASS_RAWKEY
  120. IECODE_UP_PREFIX        EQU    $80
  121. IECODEB_UP_PREFIX        EQU    7
  122. IECODE_KEY_CODE_FIRST        EQU    $00
  123. IECODE_KEY_CODE_LAST        EQU    $77
  124. IECODE_COMM_CODE_FIRST        EQU    $78
  125. IECODE_COMM_CODE_LAST        EQU    $7F
  126.  
  127. ;   IECLASS_ANSI
  128. IECODE_C0_FIRST            EQU    $00
  129. IECODE_C0_LAST            EQU    $1F
  130. IECODE_ASCII_FIRST        EQU    $20
  131. IECODE_ASCII_LAST        EQU    $7E
  132. IECODE_ASCII_DEL        EQU    $7F
  133. IECODE_C1_FIRST            EQU    $80
  134. IECODE_C1_LAST            EQU    $9F
  135. IECODE_LATIN1_FIRST        EQU    $A0
  136. IECODE_LATIN1_LAST        EQU    $FF
  137.  
  138. ;   IECLASS_RAWMOUSE
  139. IECODE_LBUTTON            EQU    $68    ; also uses IECODE_UP_PREFIX
  140. IECODE_RBUTTON            EQU    $69    ;
  141. IECODE_MBUTTON            EQU    $6A    ;
  142. IECODE_NOBUTTON            EQU    $FF
  143.  
  144. ;   IECLASS_EVENT (V36)
  145. IECODE_NEWACTIVE        EQU    $01    ; new active input window
  146. IECODE_NEWSIZE            EQU    $02    ; resize of specified window
  147. IECODE_REFRESH            EQU    $03    ; refresh of specified window
  148.  
  149. ;   IECLASS_REQUESTER Codes
  150. ;    broadcast when the first Requester (not subsequent ones) opens in
  151. ;    the Window
  152. IECODE_REQSET            EQU    $01
  153. ;    broadcast when the last Requester clears out of the Window
  154. IECODE_REQCLEAR            EQU    $00
  155.  
  156.  
  157. *   --- InputEvent.ie_Qualifier ---
  158. IEQUALIFIER_LSHIFT        EQU    $0001
  159. IEQUALIFIER_RSHIFT        EQU    $0002
  160. IEQUALIFIER_CAPSLOCK        EQU    $0004
  161. IEQUALIFIER_CONTROL        EQU    $0008
  162. IEQUALIFIER_LALT        EQU    $0010
  163. IEQUALIFIER_RALT        EQU    $0020
  164. IEQUALIFIER_LCOMMAND        EQU    $0040
  165. IEQUALIFIER_RCOMMAND        EQU    $0080
  166. IEQUALIFIER_NUMERICPAD        EQU    $0100
  167. IEQUALIFIER_REPEAT        EQU    $0200
  168. IEQUALIFIER_INTERRUPT        EQU    $0400
  169. IEQUALIFIER_MULTIBROADCAST    EQU    $0800
  170. IEQUALIFIER_MIDBUTTON        EQU    $1000
  171. IEQUALIFIER_RBUTTON        EQU    $2000
  172. IEQUALIFIER_LEFTBUTTON        EQU    $4000
  173. IEQUALIFIER_RELATIVEMOUSE    EQU    $8000
  174.  
  175. IEQUALIFIERB_LSHIFT        EQU    0
  176. IEQUALIFIERB_RSHIFT        EQU    1
  177. IEQUALIFIERB_CAPSLOCK        EQU    2
  178. IEQUALIFIERB_CONTROL        EQU    3
  179. IEQUALIFIERB_LALT        EQU    4
  180. IEQUALIFIERB_RALT        EQU    5
  181. IEQUALIFIERB_LCOMMAND        EQU    6
  182. IEQUALIFIERB_RCOMMAND        EQU    7
  183. IEQUALIFIERB_NUMERICPAD        EQU    8
  184. IEQUALIFIERB_REPEAT        EQU    9
  185. IEQUALIFIERB_INTERRUPT        EQU    10
  186. IEQUALIFIERB_MULTIBROADCAST    EQU    11
  187. IEQUALIFIERB_MIDBUTTON        EQU    12
  188. IEQUALIFIERB_RBUTTON        EQU    13
  189. IEQUALIFIERB_LEFTBUTTON        EQU    14
  190. IEQUALIFIERB_RELATIVEMOUSE    EQU    15
  191.  
  192.  
  193. ;------ InputEvent ---------------------------------------------------
  194.  
  195.  STRUCTURE    InputEvent,0
  196.     APTR    ie_NextEvent    ; the chronologically next event
  197.     UBYTE   ie_Class        ; the input event class
  198.     UBYTE   ie_SubClass        ; optional subclass of the class
  199.     UWORD   ie_Code        ; the input event code
  200.     UWORD   ie_Qualifier    ; qualifiers in effect for the event
  201.     LABEL   ie_EventAddress    ; the event address
  202.     LABEL   ie_X        ; the pointer position for the event
  203.     UBYTE   ie_Prev1DownCode    ; previous down keys for dead key translation
  204.     UBYTE   ie_Prev1DownQual
  205.     LABEL   ie_Y
  206.     UBYTE   ie_Prev2DownCode
  207.     UBYTE   ie_Prev2DownQual
  208.     STRUCT  ie_TimeStamp,TV_SIZE ; the system tick at the event
  209.     LABEL   ie_SIZEOF
  210.  
  211.     ENDC    ; DEVICES_INPUTEVENT_I
  212.