inputevent.pas 4.9 KB

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