Metropoli BBS
VIEWER: mouse.c MODE: TEXT (CP437)
//  ╔══════════════════════════════════════════════════════════════════╗
//  ║                   Gestionaire  de souris en C                    ║
//  ║								       ║
//  ║   Code : Volpone of "Malorean Effect"                            ║
//  ║                                                                  ║
//  ║   Version1 : 23 Novembre 1993                                    ║
//  ║       							       ║
//  ╚══════════════════════════════════════════════════════════════════╝


unsigned int  MouseButton1;
unsigned int  MouseButton2;
unsigned int  MouseButton12;

void          InitMouse           (void)  ;
//Initialise la souris

void 	      ShowMouse           (void)  ;
// affiche la souris

void 	      HideMouse           (void)  ;
//cache la souris

void 	      ButtonMouse         (void);
//si bouton gauche          enfoncé -> MouseButton1  =1
//          droite                  -> MouseButton2  =1
//          gauche et droite        -> MouseButton12 =1
//           		            -> MouseButton1  =1
//				    -> MouseButton2  =1

void          GotoMouse           (unsigned int X,unsigned int Y);
//place le cuseur de la souris en (X,Y)

void          LimitMouse          (unsigned int X1,unsigned int Y1,
				   unsigned int X2,unsigned int Y2);
//la souris ne peut plus se deplacer qu'en en rectangle définni
// par le deux extrémités (X1,Y1) (X2,Y2)

unsigned int  NbLeftClick         (void);
//renvois le nombre de clicks du bouton gauche depuis que cette
//fonction a été apelé

unsigned int  NbRightClick        (void);
//renvois le nombre de clicks du bouton droit depuis que cette
//fonction a été apelé


void 	      ExcludeMouse        (unsigned int X1,unsigned int Y1,
				   unsigned int X2,unsigned int Y2);
//la souris peut se promener partout(dans le rectangle définit
//par LimitMouse) sauf dans la partie définie par le rectangle
// (X1,Y1 (X2,Y2)

void          DisableExcludeMouse (void);
//vire le mode d'exclusion d'une partie de l'écran

void          ChosePageMouse      (unsigned int Page);
//choisit la page écran ou la souris est afiché
//sera surement coiplé avec une unit de gestion écran

//----------------------------------------------------------------
void InitMouse (void)
{ asm { mov ax,0x0000;
	int 0x33     ; } }
//----------------------------------------------------------------
void ShowMouse (void)
{ asm { mov ax,1 ;
	int 0x33 ;  } }
//----------------------------------------------------------------
void HideMouse (void)
{ asm { mov ax,2
	int 0x33; } }
//----------------------------------------------------------------
void ButtonMouse (void)
{ unsigned int  Buffer ;
  asm { mov ax,3;
	int 0x33;
	mov Buffer,bx  }
	if (Buffer==1) {MouseButton1=1 ;
			MouseButton2=0 ;
			MouseButton12=0;}

	if (Buffer==2) {MouseButton1=0 ;
			MouseButton2=1 ;
			MouseButton12=0;}


	if (Buffer==3) {MouseButton1=1 ;
			MouseButton2=1 ;
			MouseButton12=1;}
	 }
//----------------------------------------------------------------
void GotoMouse (unsigned int X,unsigned int Y)
{ asm { mov ax,4;
	mov cx,X
	shl cx,3
	mov dx,Y
	shl dx,3
	int 0x33     ; } }
//----------------------------------------------------------------
void LimitMouse (unsigned int X1,unsigned int Y1,unsigned int X2,unsigned int Y2)
{ asm { mov ax,7;
	mov cx,X1
	shl cx,3
	mov dx,X2
	shl dx,3
	int 0x33
	mov ax,8;
	mov cx,Y1
	shl cx,3
	mov dx,Y2
	shl dx,3
	int 0x33 } }
//----------------------------------------------------------------
unsigned int  NbLeftClick (void)
{ unsigned int Buffer  ;
  asm { mov ax,5
	mov bx,0
	int 0x33;
	mov Buffer,bx}
	return (Buffer); }
//----------------------------------------------------------------
unsigned int  NbRightClick (void)
{ unsigned int Buffer  ;
  asm { mov ax,5
	mov bx,1
	int 0x33;
	mov Buffer,bx}
	return (Buffer); }
//----------------------------------------------------------------
void ExcludeMouse (unsigned int X1,unsigned int Y1,unsigned int X2,unsigned int Y2)
{ asm { mov ax,0x10;
	mov cx,X2
	shl cx,3
	mov dx,Y2
	shl dx,3
	mov si,X1
	shl si,3
	mov di,Y1
	shl di,3
	int 0x33 } }
//----------------------------------------------------------------
void DisableExcludeMouse (void)
{ ShowMouse(); }
//----------------------------------------------------------------
void  ChosePageMouse (unsigned int Page)
{
  asm { mov ax,0x01d
	mov bx,Page
	int 0x33;  }  }
//----------------------------------------------------------------

[ RETURN TO DIRECTORY ]