(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * MOUSE.DEF - Modula-2 interface to MOUSE.H * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# project("#set tsc='on'") *) (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *) (*# module(implementation=>off, init_code=>off) *) (*# name(prefix=>c) *) DEFINITION MODULE mouse; CONST _MS_ON = 1; _MS_OFF = 0; _MS_HIDE = 0; _MS_SHOW = 1; _MS_MIDDLE = 2; _MS_LEFT = 0; _MS_RIGHT = 1; _MS_HARD = 1; _MD_SOFT = 0; TYPE _ms_data = RECORD left_pressed, middle_pressed, right_pressed, actions, row, col: CARDINAL; END; _ms_range = RECORD max_col, min_col, max_row, min_row: CARDINAL; END; _ms_motion = RECORD vert, horiz: INTEGER; END; _ms_graphcur = RECORD row, col: CARDINAL; screen_mask, cursor_mask: ARRAY[0..15] OF CARDINAL; END; _hardware = RECORD start_scan, end_scan: CARDINAL; END; _software = RECORD screen_mask, cursor_mask: CARDINAL; END; _ms_textcur = RECORD CASE type: CARDINAL OF 0: h: _hardware; | 1: s: _software; END; END; _ms_sense = RECORD h_speed, v_speed: INTEGER; threshold: CARDINAL; END; (*# save *) (*# call(near_call=>off) *) _ms_interrupt = RECORD func: PROCEDURE; END; (*# restore *) PROCEDURE _ms_reset(): INTEGER; PROCEDURE _ms_cursor(mode: CARDINAL); PROCEDURE _ms_driversize(): CARDINAL; PROCEDURE _ms_getmotion(VAR _mp: _ms_motion); PROCEDURE _ms_getpage(): CARDINAL; PROCEDURE _ms_getpress(button: CARDINAL; VAR _mp: _ms_data); PROCEDURE _ms_getrelease(button: CARDINAL; VAR _mp: _ms_data); PROCEDURE _ms_getsensitivity(VAR _mp: _ms_sense); PROCEDURE _ms_getstatus(VAR _mp: _ms_data); PROCEDURE _ms_lightpen(_mode: CARDINAL); PROCEDURE _ms_restoredriver(_buffer: ADDRESS); PROCEDURE _ms_savedriver(_buffer: ADDRESS); PROCEDURE _ms_setdouble(_threshhold: CARDINAL); PROCEDURE _ms_setgraphcursor(VAR _mp: _ms_graphcur); PROCEDURE _ms_setinterrupt(VAR _mp: _ms_interrupt); PROCEDURE _ms_setmickeys(_vert,_horiz: CARDINAL); PROCEDURE _ms_setpage(_page: CARDINAL); PROCEDURE _ms_setposition(_row,_col: CARDINAL); PROCEDURE _ms_setrange(VAR _mp: _ms_range); PROCEDURE _ms_setsensitivity(VAR _mp: _ms_sense); PROCEDURE _ms_settextcursor(VAR _mp: _ms_textcur); PROCEDURE _ms_swapinterrupt(VAR _mp: _ms_interrupt); PROCEDURE _ms_updatescreen(_x1,_y1,_x2,_y2: CARDINAL); END mouse.