home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Devices / InputEvent.i < prev    next >
Text File  |  1990-08-28  |  4KB  |  146 lines

  1. {
  2.     InputEvent.i for PCQ Pascal
  3.  
  4.     input event definitions 
  5. }
  6.  
  7. {$I "Include:Devices/Timer.i"}
  8.  
  9.  
  10. const
  11.  
  12. {------ constants -------------------------------------------------}
  13.   
  14. {   --- InputEvent.ie_Class --- }
  15. { A NOP input event }
  16.     IECLASS_NULL    = $00;
  17. { A raw keycode from the keyboard device }
  18.     IECLASS_RAWKEY    = $01;
  19. { The raw mouse report from the game port device }
  20.     IECLASS_RAWMOUSE    = $02;
  21. { A private console event }
  22.     IECLASS_EVENT    = $03;
  23. { A Pointer Position report }
  24.     IECLASS_POINTERPOS    = $04;
  25. { A timer event }
  26.     IECLASS_TIMER    = $06;
  27. { select button pressed down over a Gadget (address in ie_EventAddress) }
  28.     IECLASS_GADGETDOWN    = $07;
  29. { select button released over the same Gadget (address in ie_EventAddress) }
  30.     IECLASS_GADGETUP    = $08;
  31. { some Requester activity has taken place.  See Codes REQCLEAR and REQSET }
  32.     IECLASS_REQUESTER    = $09;
  33. { this is a Menu Number transmission (Menu number is in ie_Code) }
  34.     IECLASS_MENULIST    = $0A;
  35. { User has selected the active Window's Close Gadget }
  36.     IECLASS_CLOSEWINDOW    = $0B;
  37. { this Window has a new size }
  38.     IECLASS_SIZEWINDOW    = $0C;
  39. { the Window pointed to by ie_EventAddress needs to be refreshed }
  40.     IECLASS_REFRESHWINDOW = $0D;
  41. { new preferences are available }
  42.     IECLASS_NEWPREFS    = $0E;
  43. { the disk has been removed }
  44.     IECLASS_DISKREMOVED    = $0F;
  45. { the disk has been inserted }
  46.     IECLASS_DISKINSERTED = $10;
  47. { the window is about to be been made active }
  48.     IECLASS_ACTIVEWINDOW = $11;
  49. { the window is about to be made inactive }
  50.     IECLASS_INACTIVEWINDOW = $12;
  51.  
  52.  
  53. { the last class }
  54.  
  55.     IECLASS_MAX        = $12;
  56.  
  57.  
  58.  
  59. {   --- InputEvent.ie_Code ---     }
  60. { IECLASS_RAWKEY }
  61.     IECODE_UP_PREFIX        = $80;
  62.     IECODE_KEY_CODE_FIRST    = $00;
  63.     IECODE_KEY_CODE_LAST    = $77;
  64.     IECODE_COMM_CODE_FIRST    = $78;
  65.     IECODE_COMM_CODE_LAST    = $7F;
  66.   
  67. { IECLASS_ANSI }
  68.     IECODE_C0_FIRST        = $00;
  69.     IECODE_C0_LAST        = $1F;
  70.     IECODE_ASCII_FIRST        = $20;
  71.     IECODE_ASCII_LAST        = $7E;
  72.     IECODE_ASCII_DEL        = $7F;
  73.     IECODE_C1_FIRST        = $80;
  74.     IECODE_C1_LAST        = $9F;
  75.     IECODE_LATIN1_FIRST        = $A0;
  76.     IECODE_LATIN1_LAST        = $FF;
  77.   
  78. { IECLASS_RAWMOUSE }
  79.     IECODE_LBUTTON        = $68;    { also uses IECODE_UP_PREFIX }
  80.     IECODE_RBUTTON        = $69;
  81.     IECODE_MBUTTON        = $6A;
  82.     IECODE_NOBUTTON        = $FF;
  83.   
  84. { IECLASS_EVENT }
  85.     IECODE_NEWACTIVE        = $01;    { active input window changed }
  86.  
  87. { IECLASS_REQUESTER Codes }
  88. { REQSET is broadcast when the first Requester (not subsequent ones) opens
  89.  * in the Window
  90.  }
  91.     IECODE_REQSET        = $01;
  92. { REQCLEAR is broadcast when the last Requester clears out of the Window }
  93.     IECODE_REQCLEAR        = $00;
  94.  
  95.   
  96. {   --- InputEvent.ie_Qualifier --- }
  97.     IEQUALIFIER_LSHIFT        = $0001;
  98.     IEQUALIFIER_RSHIFT        = $0002;
  99.     IEQUALIFIER_CAPSLOCK    = $0004;
  100.     IEQUALIFIER_CONTROL        = $0008;
  101.     IEQUALIFIER_LALT        = $0010;
  102.     IEQUALIFIER_RALT        = $0020;
  103.     IEQUALIFIER_LCOMMAND    = $0040;
  104.     IEQUALIFIER_RCOMMAND    = $0080;
  105.     IEQUALIFIER_NUMERICPAD    = $0100;
  106.     IEQUALIFIER_REPEAT        = $0200;
  107.     IEQUALIFIER_INTERRUPT    = $0400;
  108.     IEQUALIFIER_MULTIBROADCAST    = $0800;
  109.     IEQUALIFIER_MIDBUTTON    = $1000;
  110.     IEQUALIFIER_RBUTTON        = $2000;
  111.     IEQUALIFIER_LEFTBUTTON    = $4000;
  112.     IEQUALIFIER_RELATIVEMOUSE    = $8000;
  113.  
  114.     IEQUALIFIERB_LSHIFT        = 0;
  115.     IEQUALIFIERB_RSHIFT        = 1;
  116.     IEQUALIFIERB_CAPSLOCK    = 2;
  117.     IEQUALIFIERB_CONTROL    = 3;
  118.     IEQUALIFIERB_LALT        = 4;
  119.     IEQUALIFIERB_RALT        = 5;
  120.     IEQUALIFIERB_LCOMMAND    = 6;
  121.     IEQUALIFIERB_RCOMMAND    = 7;
  122.     IEQUALIFIERB_NUMERICPAD    = 8;
  123.     IEQUALIFIERB_REPEAT        = 9;
  124.     IEQUALIFIERB_INTERRUPT    = 10;
  125.     IEQUALIFIERB_MULTIBROADCAST    = 11;
  126.     IEQUALIFIERB_MIDBUTTON    = 12;
  127.     IEQUALIFIERB_RBUTTON    = 13;
  128.     IEQUALIFIERB_LEFTBUTTON    = 14;
  129.     IEQUALIFIERB_RELATIVEMOUSE    = 15;
  130.   
  131. {------ InputEvent ------------------------------------------------}
  132.  
  133. type
  134.  
  135.     InputEvent = record
  136.     ie_NextEvent    : ^InputEvent;    { the chronologically next event }
  137.     ie_Class    : Byte;        { the input event class }
  138.     ie_SubClass    : Byte;        { optional subclass of the class }
  139.     ie_Code        : Short;    { the input event code }
  140.     ie_Qualifier    : Short;    { qualifiers in effect for the event}
  141.     ie_addr_xy    : Integer;    { addr or pointer position }
  142.     ie_TimeStamp    : TimeVal;    { the system tick at the event }
  143.     end;
  144.     InputEventPtr = ^InputEvent;
  145.  
  146.