home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / TRSICAT.LZX / CATS_CD2_TRSI / Inc&AD2.1 / includes / devices / inputevent.i < prev    next >
Encoding:
Text File  |  1992-09-11  |  6.3 KB  |  210 lines

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