MOUSE.DEF 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * MOUSE.DEF - Modula-2 interface to MOUSE.H *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# project("#set tsc='on'") *)
  11. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  12. (*# module(implementation=>off, init_code=>off) *)
  13. (*# name(prefix=>c) *)
  14. DEFINITION MODULE mouse;
  15. CONST
  16. _MS_ON = 1;
  17. _MS_OFF = 0;
  18. _MS_HIDE = 0;
  19. _MS_SHOW = 1;
  20. _MS_MIDDLE = 2;
  21. _MS_LEFT = 0;
  22. _MS_RIGHT = 1;
  23. _MS_HARD = 1;
  24. _MD_SOFT = 0;
  25. TYPE
  26. _ms_data = RECORD
  27. left_pressed,
  28. middle_pressed,
  29. right_pressed,
  30. actions,
  31. row,
  32. col: CARDINAL;
  33. END;
  34. _ms_range = RECORD
  35. max_col,
  36. min_col,
  37. max_row,
  38. min_row: CARDINAL;
  39. END;
  40. _ms_motion = RECORD
  41. vert,
  42. horiz: INTEGER;
  43. END;
  44. _ms_graphcur = RECORD
  45. row,
  46. col: CARDINAL;
  47. screen_mask,
  48. cursor_mask: ARRAY[0..15] OF CARDINAL;
  49. END;
  50. _hardware = RECORD
  51. start_scan,
  52. end_scan: CARDINAL;
  53. END;
  54. _software = RECORD
  55. screen_mask,
  56. cursor_mask: CARDINAL;
  57. END;
  58. _ms_textcur = RECORD
  59. CASE type: CARDINAL OF
  60. 0: h: _hardware; |
  61. 1: s: _software;
  62. END;
  63. END;
  64. _ms_sense = RECORD
  65. h_speed,
  66. v_speed: INTEGER;
  67. threshold: CARDINAL;
  68. END;
  69. (*# save *)
  70. (*# call(near_call=>off) *)
  71. _ms_interrupt = RECORD
  72. func: PROCEDURE;
  73. END;
  74. (*# restore *)
  75. PROCEDURE _ms_reset(): INTEGER;
  76. PROCEDURE _ms_cursor(mode: CARDINAL);
  77. PROCEDURE _ms_driversize(): CARDINAL;
  78. PROCEDURE _ms_getmotion(VAR _mp: _ms_motion);
  79. PROCEDURE _ms_getpage(): CARDINAL;
  80. PROCEDURE _ms_getpress(button: CARDINAL; VAR _mp: _ms_data);
  81. PROCEDURE _ms_getrelease(button: CARDINAL; VAR _mp: _ms_data);
  82. PROCEDURE _ms_getsensitivity(VAR _mp: _ms_sense);
  83. PROCEDURE _ms_getstatus(VAR _mp: _ms_data);
  84. PROCEDURE _ms_lightpen(_mode: CARDINAL);
  85. PROCEDURE _ms_restoredriver(_buffer: ADDRESS);
  86. PROCEDURE _ms_savedriver(_buffer: ADDRESS);
  87. PROCEDURE _ms_setdouble(_threshhold: CARDINAL);
  88. PROCEDURE _ms_setgraphcursor(VAR _mp: _ms_graphcur);
  89. PROCEDURE _ms_setinterrupt(VAR _mp: _ms_interrupt);
  90. PROCEDURE _ms_setmickeys(_vert,_horiz: CARDINAL);
  91. PROCEDURE _ms_setpage(_page: CARDINAL);
  92. PROCEDURE _ms_setposition(_row,_col: CARDINAL);
  93. PROCEDURE _ms_setrange(VAR _mp: _ms_range);
  94. PROCEDURE _ms_setsensitivity(VAR _mp: _ms_sense);
  95. PROCEDURE _ms_settextcursor(VAR _mp: _ms_textcur);
  96. PROCEDURE _ms_swapinterrupt(VAR _mp: _ms_interrupt);
  97. PROCEDURE _ms_updatescreen(_x1,_y1,_x2,_y2: CARDINAL);
  98. END mouse.
  99.