| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- (* Release 3.10 *)
- (*-------------------------------------------------------------------------*
- * *
- * MSMOUSE.DEF - Modula-2 Microsoft-compatible mouse interface *
- * *
- * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
- * All Rights Reserved *
- * *
- *--------------------------------------------------------------------------*)
- (*# call(o_a_copy => off,
- o_a_size => on) *)
- (*%F _fdata *)
- (*# call(seg_name => null) *)
- (*# data(seg_name => null) *)
- (*%E *)
- (*# module(implementation=>off) *)
- DEFINITION MODULE MsMouse;
- IMPORT Lib;
- TYPE
- MsData = RECORD
- left_pressed, middle_pressed, right_pressed: BOOLEAN;
- actions: CARDINAL;
- row, col: INTEGER;
- END;
- MsRange = RECORD
- max_col,min_col, max_row, min_row: INTEGER;
- END;
- MsMotion = RECORD
- vert, horiz: INTEGER;
- END;
- GraphcurMask = ARRAY [0..15] OF CARDINAL;
- MsGraphcur = RECORD
- row, col: INTEGER;
- screen_mask: GraphcurMask;
- cursor_mask: GraphcurMask;
- END;
- Hardware = RECORD
- start_scan, end_scan: INTEGER;
- END;
- Software = RECORD
- screen_mask, cursor_mask: CARDINAL;
- END;
- MsTextCur = RECORD
- type: BOOLEAN;
- CASE : BOOLEAN OF
- | TRUE : H: Hardware;
- | FALSE : S: Software;
- END;
- END;
- MsSense = RECORD
- h_speed, v_speed, threshold: INTEGER;
- END;
- (*# save *)
- (*# call(near_call=>off) *)
- MouseFuncType = PROCEDURE(CARDINAL,CARDINAL,CARDINAL,CARDINAL);
- (*# restore *)
- MsInterrupt = RECORD
- IntFunc: MouseFuncType;
- mask: CARDINAL;
- END;
- CONST
- _MS_ON = TRUE;
- _MS_OFF = FALSE;
- _MS_HIDE = FALSE;
- _MS_SHOW = TRUE;
- _MS_MIDDLE = 2;
- _MS_LEFT = 0;
- _MS_RIGHT = 1;
- _MS_HARD = TRUE;
- _MS_SOFT = FALSE;
- PROCEDURE Reset(): INTEGER;
- PROCEDURE Cursor(Mode: BOOLEAN);
- PROCEDURE DriverSize(): CARDINAL;
- PROCEDURE GetMotion(VAR mp: MsMotion);
- PROCEDURE GetPage(): CARDINAL;
- PROCEDURE GetPress(Button: INTEGER; VAR mp: MsData);
- PROCEDURE GetRelease(Button: INTEGER; VAR mp: MsData);
- PROCEDURE GetSensitivity(VAR mp: MsSense);
- PROCEDURE GetStatus(VAR mp: MsData);
- PROCEDURE LightPen(Mode: BOOLEAN);
- PROCEDURE RestoreDriver(Buffer: ADDRESS);
- PROCEDURE SaveDriver(Buffer: ADDRESS);
- PROCEDURE SetDouble(Threshold: INTEGER);
- PROCEDURE SetGraphCursor(VAR mp: MsGraphcur);
- PROCEDURE SetInterrupt(VAR mp: MsInterrupt);
- PROCEDURE SetMickeys(Vert, Horiz: INTEGER);
- PROCEDURE SetPage(Page: CARDINAL);
- PROCEDURE SetPosition(Row, Col: INTEGER);
- PROCEDURE SetRange(mp: MsRange);
- PROCEDURE SetSensitivity(mp: MsSense);
- PROCEDURE SetTextCursor(mp: MsTextCur);
- PROCEDURE SwapInterrupt(VAR mp: MsInterrupt);
- PROCEDURE UpdateScreen(x1, y1, x2, y2: INTEGER);
- END MsMouse.
|