home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / TRSICAT.LZX / CATS_CD2_TRSI / Inc&AD1.3 / Includes / devices / inputevent.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-12  |  4.9 KB  |  158 lines

  1. #ifndef DEVICES_INPUTEVENT_H
  2. #define DEVICES_INPUTEVENT_H
  3. /*
  4. **    $Filename: devices/inputevent.h $
  5. **    $Release: 1.3 $
  6. **
  7. **    input event definitions 
  8. **
  9. **    (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef        DEVICES_TIMER_H
  14. #include "devices/timer.h"
  15. #endif
  16.  
  17. /*------ constants -------------------------------------------------*/
  18.   
  19. /*   --- InputEvent.ie_Class --- */
  20. /* A NOP input event */
  21. #define     IECLASS_NULL         0x00
  22. /* A raw keycode from the keyboard device */
  23. #define     IECLASS_RAWKEY         0x01
  24. /* The raw mouse report from the game port device */
  25. #define     IECLASS_RAWMOUSE     0x02
  26. /* A private console event */
  27. #define     IECLASS_EVENT         0x03
  28. /* A Pointer Position report */
  29. #define     IECLASS_POINTERPOS     0x04
  30. /* A timer event */
  31. #define     IECLASS_TIMER         0x06
  32. /* select button pressed down over a Gadget (address in ie_EventAddress) */
  33. #define     IECLASS_GADGETDOWN     0x07
  34. /* select button released over the same Gadget (address in ie_EventAddress) */
  35. #define     IECLASS_GADGETUP     0x08
  36. /* some Requester activity has taken place.  See Codes REQCLEAR and REQSET */
  37. #define     IECLASS_REQUESTER     0x09
  38. /* this is a Menu Number transmission (Menu number is in ie_Code) */
  39. #define     IECLASS_MENULIST     0x0A
  40. /* User has selected the active Window's Close Gadget */
  41. #define     IECLASS_CLOSEWINDOW     0x0B
  42. /* this Window has a new size */
  43. #define     IECLASS_SIZEWINDOW     0x0C
  44. /* the Window pointed to by ie_EventAddress needs to be refreshed */
  45. #define     IECLASS_REFRESHWINDOW     0x0D
  46. /* new preferences are available */
  47. #define     IECLASS_NEWPREFS     0x0E
  48. /* the disk has been removed */
  49. #define     IECLASS_DISKREMOVED     0x0F
  50. /* the disk has been inserted */
  51. #define     IECLASS_DISKINSERTED     0x10
  52. /* the window is about to be been made active */
  53. #define IECLASS_ACTIVEWINDOW     0x11
  54. /* the window is about to be made inactive */
  55. #define IECLASS_INACTIVEWINDOW     0x12
  56.  
  57.  
  58. /* the last class */
  59. #define     IECLASS_MAX         0x12
  60.  
  61.  
  62.  
  63. /*   --- InputEvent.ie_Code ---     */
  64. /* IECLASS_RAWKEY */
  65. #define     IECODE_UP_PREFIX     0x80
  66. #define     IECODE_KEY_CODE_FIRST     0x00
  67. #define     IECODE_KEY_CODE_LAST     0x77
  68. #define     IECODE_COMM_CODE_FIRST     0x78
  69. #define     IECODE_COMM_CODE_LAST     0x7F
  70.   
  71. /* IECLASS_ANSI */
  72. #define     IECODE_C0_FIRST     0x00
  73. #define     IECODE_C0_LAST         0x1F
  74. #define     IECODE_ASCII_FIRST     0x20
  75. #define     IECODE_ASCII_LAST     0x7E
  76. #define     IECODE_ASCII_DEL     0x7F
  77. #define     IECODE_C1_FIRST     0x80
  78. #define     IECODE_C1_LAST         0x9F
  79. #define     IECODE_LATIN1_FIRST     0xA0
  80. #define     IECODE_LATIN1_LAST     0xFF
  81.   
  82. /* IECLASS_RAWMOUSE */
  83. #define     IECODE_LBUTTON         0x68  /* also uses IECODE_UP_PREFIX */
  84. #define     IECODE_RBUTTON         0x69
  85. #define     IECODE_MBUTTON         0x6A
  86. #define     IECODE_NOBUTTON     0xFF
  87.   
  88. /* IECLASS_EVENT */
  89. #define     IECODE_NEWACTIVE     0x01  /* active input window changed */
  90.  
  91. /* IECLASS_REQUESTER Codes */
  92. /* REQSET is broadcast when the first Requester (not subsequent ones) opens
  93.  * in the Window
  94.  */
  95. #define     IECODE_REQSET         0x01
  96. /* REQCLEAR is broadcast when the last Requester clears out of the Window */
  97. #define     IECODE_REQCLEAR     0x00
  98.  
  99.   
  100. /*   --- InputEvent.ie_Qualifier --- */
  101. #define     IEQUALIFIER_LSHIFT     0x0001
  102. #define     IEQUALIFIER_RSHIFT     0x0002
  103. #define     IEQUALIFIER_CAPSLOCK     0x0004
  104. #define     IEQUALIFIER_CONTROL     0x0008
  105. #define     IEQUALIFIER_LALT     0x0010
  106. #define     IEQUALIFIER_RALT     0x0020
  107. #define     IEQUALIFIER_LCOMMAND     0x0040
  108. #define     IEQUALIFIER_RCOMMAND     0x0080
  109. #define     IEQUALIFIER_NUMERICPAD     0x0100
  110. #define     IEQUALIFIER_REPEAT     0x0200
  111. #define     IEQUALIFIER_INTERRUPT     0x0400
  112. #define     IEQUALIFIER_MULTIBROADCAST 0x0800
  113. #define     IEQUALIFIER_MIDBUTTON     0x1000
  114. #define     IEQUALIFIER_RBUTTON     0x2000
  115. #define     IEQUALIFIER_LEFTBUTTON     0x4000
  116. #define     IEQUALIFIER_RELATIVEMOUSE  0x8000
  117.  
  118. #define     IEQUALIFIERB_LSHIFT        0
  119. #define     IEQUALIFIERB_RSHIFT        1
  120. #define     IEQUALIFIERB_CAPSLOCK        2
  121. #define     IEQUALIFIERB_CONTROL        3
  122. #define     IEQUALIFIERB_LALT        4
  123. #define     IEQUALIFIERB_RALT        5
  124. #define     IEQUALIFIERB_LCOMMAND        6
  125. #define     IEQUALIFIERB_RCOMMAND        7
  126. #define     IEQUALIFIERB_NUMERICPAD    8
  127. #define     IEQUALIFIERB_REPEAT        9
  128. #define     IEQUALIFIERB_INTERRUPT        10
  129. #define     IEQUALIFIERB_MULTIBROADCAST    11
  130. #define     IEQUALIFIERB_MIDBUTTON        12
  131. #define     IEQUALIFIERB_RBUTTON        13
  132. #define     IEQUALIFIERB_LEFTBUTTON    14
  133. #define     IEQUALIFIERB_RELATIVEMOUSE    15
  134.   
  135. /*------ InputEvent ------------------------------------------------*/
  136.   
  137. struct InputEvent {
  138.     struct  InputEvent *ie_NextEvent;  /* the chronologically next event */
  139.     UBYTE   ie_Class;               /* the input event class */
  140.     UBYTE   ie_SubClass;           /* optional subclass of the class */
  141.     UWORD   ie_Code;               /* the input event code */
  142.     UWORD   ie_Qualifier;           /* qualifiers in effect for the event*/
  143.     union {
  144.    struct {
  145.        WORD    ie_x;               /* the pointer position for the event*/
  146.        WORD    ie_y;
  147.    } ie_xy;
  148.    APTR       ie_addr;
  149.     } ie_position;
  150.     struct timeval ie_TimeStamp;       /* the system tick at the event */
  151. };
  152.  
  153. #define     ie_X      ie_position.ie_xy.ie_x
  154. #define     ie_Y      ie_position.ie_xy.ie_y
  155. #define     ie_EventAddress   ie_position.ie_addr
  156.  
  157. #endif    /* DEVICES_INPUTEVENT_H */
  158.