home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / useful / dist / cbm / v39 / include / devices / inputevent.i < prev    next >
Text File  |  1992-09-24  |  7KB  |  242 lines

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