inputevent.pas 5.4 KB

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