inputevent.pas 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
  4. input.device event definitions unit for MorphOS/PowerPC
  5. MorphOS port was done on a free Pegasos II/G4 machine
  6. provided by Genesi S.a.r.l. <www.genesi.lu>
  7. See the file COPYING.FPC, included in this distribution,
  8. for details about the copyright.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  12. **********************************************************************}
  13. {$PACKRECORDS 2}
  14. {$IFNDEF FPC_DOTTEDUNITS}
  15. unit inputevent;
  16. {$ENDIF FPC_DOTTEDUNITS}
  17. interface
  18. {$IFDEF FPC_DOTTEDUNITS}
  19. uses Amiga.Core.Exec, Amiga.Core.Utility, Amiga.Core.Timer;
  20. {$ELSE FPC_DOTTEDUNITS}
  21. uses exec, utility, timer;
  22. {$ENDIF FPC_DOTTEDUNITS}
  23. { * input.device event definitions
  24. * Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
  25. * }
  26. const
  27. IECLASS_NULL = $00;
  28. IECLASS_RAWKEY = $01;
  29. IECLASS_RAWMOUSE = $02;
  30. IECLASS_EVENT = $03;
  31. IECLASS_POINTERPOS = $04;
  32. IECLASS_TIMER = $06;
  33. IECLASS_GADGETDOWN = $07;
  34. IECLASS_GADGETUP = $08;
  35. IECLASS_REQUESTER = $09;
  36. IECLASS_MENULIST = $0A;
  37. IECLASS_CLOSEWINDOW = $0B;
  38. IECLASS_SIZEWINDOW = $0C;
  39. IECLASS_REFRESHWINDOW = $0D;
  40. IECLASS_NEWPREFS = $0E;
  41. IECLASS_DISKREMOVED = $0F;
  42. IECLASS_DISKINSERTED = $10;
  43. IECLASS_ACTIVEWINDOW = $11;
  44. IECLASS_INACTIVEWINDOW = $12;
  45. IECLASS_NEWPOINTERPOS = $13;
  46. IECLASS_MENUHELP = $14;
  47. IECLASS_CHANGEWINDOW = $15;
  48. {$ifndef IECLASS_NEWMOUSE}
  49. const
  50. IECLASS_NEWMOUSE = $16;
  51. {$endif}
  52. const
  53. IECLASS_MAX = $16;
  54. IESUBCLASS_COMPATIBLE = $00;
  55. IESUBCLASS_PIXEL = $01;
  56. IESUBCLASS_TABLET = $02;
  57. IESUBCLASS_NEWTABLET = $03;
  58. type
  59. PIEPointerPixel = ^TIEPointerPixel;
  60. TIEPointerPixel = record
  61. iepp_Screen : Pointer;
  62. iepp_Position : record
  63. X : Integer;
  64. Y : Integer;
  65. end;
  66. end;
  67. PIEPointerTablet = ^TIEPointerTablet;
  68. TIEPointerTablet = record
  69. iept_Range : record
  70. X : Word;
  71. Y : Word;
  72. end;
  73. iept_Value : record
  74. X : Word;
  75. Y : Word;
  76. end;
  77. iept_Pressure : Integer;
  78. end;
  79. PIENewTablet = ^TIENewTablet;
  80. TIENewTablet = record
  81. ient_CallBack : PHook;
  82. ient_ScaledX : Word;
  83. ient_ScaledY : Word;
  84. ient_ScaledXFraction : Word;
  85. ient_ScaledYFraction : Word;
  86. ient_TabletX : DWord;
  87. ient_TabletY : DWord;
  88. ient_RangeX : DWord;
  89. ient_RangeY : DWord;
  90. ient_TagList : PTagItem;
  91. end;
  92. const
  93. IECODE_UP_PREFIX = $80;
  94. IECODE_KEY_CODE_FIRST = $00;
  95. IECODE_KEY_CODE_LAST = $77;
  96. IECODE_COMM_CODE_FIRST = $78;
  97. IECODE_COMM_CODE_LAST = $7F;
  98. IECODE_C0_FIRST = $00;
  99. IECODE_C0_LAST = $1F;
  100. IECODE_ASCII_FIRST = $20;
  101. IECODE_ASCII_LAST = $7E;
  102. IECODE_ASCII_DEL = $7F;
  103. IECODE_C1_FIRST = $80;
  104. IECODE_C1_LAST = $9F;
  105. IECODE_LATIN1_FIRST = $A0;
  106. IECODE_LATIN1_LAST = $FF;
  107. IECODE_LBUTTON = $68;
  108. IECODE_RBUTTON = $69;
  109. IECODE_MBUTTON = $6A;
  110. IECODE_NOBUTTON = $FF;
  111. IECODE_NEWACTIVE = $01;
  112. IECODE_NEWSIZE = $02;
  113. IECODE_REFRESH = $03;
  114. IECODE_REQSET = $01;
  115. IECODE_REQCLEAR = $00;
  116. IEQUALIFIER_LSHIFT = $0001;
  117. IEQUALIFIER_RSHIFT = $0002;
  118. IEQUALIFIER_CAPSLOCK = $0004;
  119. IEQUALIFIER_CONTROL = $0008;
  120. IEQUALIFIER_LALT = $0010;
  121. IEQUALIFIER_RALT = $0020;
  122. IEQUALIFIER_LCOMMAND = $0040;
  123. IEQUALIFIER_RCOMMAND = $0080;
  124. IEQUALIFIER_NUMERICPAD = $0100;
  125. IEQUALIFIER_REPEAT = $0200;
  126. IEQUALIFIER_INTERRUPT = $0400;
  127. IEQUALIFIER_MULTIBROADCAST = $0800;
  128. IEQUALIFIER_MIDBUTTON = $1000;
  129. IEQUALIFIER_RBUTTON = $2000;
  130. IEQUALIFIER_LEFTBUTTON = $4000;
  131. IEQUALIFIER_RELATIVEMOUSE = $8000;
  132. IEQUALIFIERB_LSHIFT = 0;
  133. IEQUALIFIERB_RSHIFT = 1;
  134. IEQUALIFIERB_CAPSLOCK = 2;
  135. IEQUALIFIERB_CONTROL = 3;
  136. IEQUALIFIERB_LALT = 4;
  137. IEQUALIFIERB_RALT = 5;
  138. IEQUALIFIERB_LCOMMAND = 6;
  139. IEQUALIFIERB_RCOMMAND = 7;
  140. IEQUALIFIERB_NUMERICPAD = 8;
  141. IEQUALIFIERB_REPEAT = 9;
  142. IEQUALIFIERB_INTERRUPT = 10;
  143. IEQUALIFIERB_MULTIBROADCAST = 11;
  144. IEQUALIFIERB_MIDBUTTON = 12;
  145. IEQUALIFIERB_RBUTTON = 13;
  146. IEQUALIFIERB_LEFTBUTTON = 14;
  147. IEQUALIFIERB_RELATIVEMOUSE = 15;
  148. { * NewMouse events. }
  149. {$ifndef NM_WHEEL_UP}
  150. const
  151. NM_WHEEL_UP = $7a;
  152. {$endif}
  153. {$ifndef NM_WHEEL_DOWN}
  154. const
  155. NM_WHEEL_DOWN = $7b;
  156. {$endif}
  157. {$ifndef NM_WHEEL_LEFT}
  158. const
  159. NM_WHEEL_LEFT = $7c;
  160. {$endif}
  161. {$ifndef NM_WHEEL_RIGHT}
  162. const
  163. NM_WHEEL_RIGHT = $7d;
  164. {$endif}
  165. {$ifndef NM_BUTTON_FOURTH}
  166. const
  167. NM_BUTTON_FOURTH = $7e;
  168. {$endif}
  169. type
  170. PInputEvent = ^TInputEvent;
  171. TInputEvent = record
  172. ie_NextEvent : PInputEvent;
  173. ie_Class : Byte;
  174. ie_SubClass : Byte;
  175. ie_Code : Word;
  176. ie_Qualifier : Word;
  177. ie_position : record
  178. case longint of
  179. 0 : ( ie_xy : record
  180. ie_x : Integer;
  181. ie_y : Integer;
  182. end );
  183. 1 : ( ie_addr : Pointer );
  184. 2 : ( ie_dead : record
  185. ie_prev1DownCode : Byte;
  186. ie_prev1DownQual : Byte;
  187. ie_prev2DownCode : Byte;
  188. ie_prev2DownQual : Byte;
  189. end );
  190. end;
  191. ie_TimeStamp : TTimeval;
  192. end;
  193. implementation
  194. end.