Metropoli BBS
VIEWER: mickey.int MODE: TEXT (ASCII)
UNIT Mickey;
{
*****************************************************************************
 Interface para "mouse" da interface XView-PC.
 Por: Antonio Carlos Moreirao de Queiroz - acmq@coe.ufrj.br
 V. 1.0 de 02/02/92
 V. 1.1 de 04/04/92 Emulador por teclado
 V. 2.0 de 09/06/92 Usa mouse ou teclado
 V. 2.1 de 30/06/92 Mudada emulacao
 V. 2.2 de 03/09/92 ScrollLock controla emulacao e Shift a retencao
 V. 2.3 de 25/09/92 Teclas nao extendidas normais passadas normalmente
 V. 2.3a de 27/10/92 Mouse_read limpa o buffer do teclado na emulacao
 V. 2.3b de 10/03/93 KeyPressed renomeada para mkbhit, eventos extendidos
*****************************************************************************

Observacoes:

Se o "mouse" nao estiver instalado, o teclado emula seu funcionamento.
O cursor move a seta e os botoes sao substituidos por:
  esquerdo: Return
  central:  Escape
  direito:  Espaco
As teclas Home, PgDn e PgUp mudam o passo do cursor simulado.
Com CapsLock ou Shift ativo, os botoes simulados funcionam no modo
liga/desliga.
ScrollLock desativa a emulacao enquanto acionado, permitindo uso normal
do teclado.
A funcao mkbhit retorna KeyPressed quando a emulacao esta inativa ou o cursor
nao esta na tela. De outra forma, ignora operacoes com o mouse emulado.
O programa tem que ficar chamando "mouse_read" regularmente, para que a
emulacao funcione.
}

INTERFACE

USES Dos,Crt,Graph;

VAR
  mousex,mousey,mouseb,x_factor:INTEGER;
  cursor_active:BOOLEAN;

PROCEDURE mouse_init;              {Inicializa}
PROCEDURE cursor_on;               {Liga o cursor}
PROCEDURE cursor_off;              {Desliga o cursor}
PROCEDURE mouse_read;              {Le o estado atual}
PROCEDURE mouse_move(x,y:INTEGER); {Move o cursor}
FUNCTION  mkbhit:BOOLEAN;          {Substituto para KeyPressed}
[ RETURN TO DIRECTORY ]