Correction de nombreux bugs dans la gestionde la souris et du clavier

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@51 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2008-04-05 09:48:19 +00:00
parent 5c2811df34
commit 50d60aa753
3 changed files with 36 additions and 38 deletions

View File

@ -1,4 +1,4 @@
CC = powerpc-linux-gnu-gcc CC = distcc powerpc-linux-gnu-gcc
COPT = -Wall -Os -c COPT = -Wall -Os -c
LOPT = -lSDL -o grafx2 LOPT = -lSDL -o grafx2

View File

@ -123,8 +123,8 @@ void Get_input(void)
{ {
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
//Mouvement de la souris //Mouvement de la souris
INPUT_Nouveau_Mouse_X = event.motion.x*Mouse_Facteur_de_correction_X; INPUT_Nouveau_Mouse_X = event.motion.x>>Mouse_Facteur_de_correction_X;
INPUT_Nouveau_Mouse_Y = event.motion.y*Mouse_Facteur_de_correction_Y; INPUT_Nouveau_Mouse_Y = event.motion.y>>Mouse_Facteur_de_correction_Y;
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
//Clic sur un des boutons de la souris //Clic sur un des boutons de la souris
@ -214,22 +214,23 @@ void Get_input(void)
if(ok) if(ok)
{ {
/* SDL_WarpMouse(
dx=INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X,
cx=INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y
mov ax,0004h );
int 33h
*/
puts("Get_Input > émulation curseur par clavier incomplète!");
} }
break;
} }
} }
//Gestion "avancée" du curseur: interdire la descente du curseur dans le //Gestion "avancée" du curseur: interdire la descente du curseur dans le
//menu lorsqu'on est en train de travailler dans l'image //menu lorsqu'on est en train de travailler dans l'image
printf("Taille de la pile des opérations : %d\n",Operation_Taille_pile);
if(Operation_Taille_pile!=0) if(Operation_Taille_pile!=0)
{ {
puts("dans le if...");
byte bl=0;//BL va indiquer si on doit corriger la position du curseur byte bl=0;//BL va indiquer si on doit corriger la position du curseur
//Si le curseur ne se trouve plus dans l'image //Si le curseur ne se trouve plus dans l'image
@ -267,31 +268,24 @@ void Get_input(void)
Get_input_Fin_correction_X: Get_input_Fin_correction_X:
*/ */
puts("get input: gestion de la loupe non codée !");
} }
/*
or bl,bl if (bl!=0)
jz Get_input_Pas_de_correction_du_curseur {
SDL_WarpMouse(
mov cl,Mouse_Facteur_de_correction_X INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X,
mov ax,INPUT_Nouveau_Mouse_X INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y
mov dx,INPUT_Nouveau_Mouse_Y );
shl ax,cl }
mov cl,Mouse_Facteur_de_correction_Y
shl dx,cl
mov cx,ax
mov ax,0004h
int 33h
Get_input_Pas_de_correction_du_curseur:
mov ax,Touche if (Touche != 0)
or ax,ax {
jz Get_input_Pas_de_correction //Enfin, on inhibe les touches (sauf si c'est un changement de couleur
; Enfin, on inhibe les touches (sauf si c'est un changement de couleur //ou de taille de pinceau lors d'une des operations suivantes:
; ou de taille de pinceau lors d'une des operations suivantes: //OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_SPRAY)
; OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_SPRAY) /*
cmp Autoriser_changement_de_couleur_pendant_operation,0 cmp Autoriser_changement_de_couleur_pendant_operation,0
jz Get_input_Il_faut_inhiber_les_touches jz Get_input_Il_faut_inhiber_les_touches
@ -323,6 +317,7 @@ void Get_input(void)
Get_input_Pas_de_correction: Get_input_Pas_de_correction:
*/ */
}
} }
if (INPUT_Nouveau_Mouse_X != Mouse_X || INPUT_Nouveau_Mouse_Y != Mouse_Y || INPUT_Nouveau_Mouse_K != Mouse_K ) if (INPUT_Nouveau_Mouse_X != Mouse_X || INPUT_Nouveau_Mouse_Y != Mouse_Y || INPUT_Nouveau_Mouse_K != Mouse_K )
@ -493,7 +488,10 @@ byte Effet_Trame(word X,word Y)
void Set_mouse_position(void) void Set_mouse_position(void)
{ {
puts("Set_mouse_position non implémenté!"); SDL_WarpMouse(
Mouse_X << Mouse_Facteur_de_correction_X,
Mouse_Y << Mouse_Facteur_de_correction_Y
);
} }
void Clip_mouse(void) void Clip_mouse(void)

View File

@ -28,8 +28,8 @@
; take values from 1 to 64. The ³ prendre des valeurs de 1 à 64. Plus ; take values from 1 to 64. The ³ prendre des valeurs de 1 à 64. Plus
; smaller values, the faster. ³ les valeurs sont petites, plus c'est ; smaller values, the faster. ³ les valeurs sont petites, plus c'est
; ³ rapide. ; ³ rapide.
X_sensitivity = 3 ; (default 3) X_sensitivity = 1 ; (default 3)
Y_sensitivity = 3 ; (default 3) Y_sensitivity = 1 ; (default 3)
; Due to the fact that those stupid ³ A cause du fait que ces imbéciles de ; Due to the fact that those stupid ³ A cause du fait que ces imbéciles de
; mouse drivers' makers don't care ³ programmeurs de gestionnaires de ; mouse drivers' makers don't care ³ programmeurs de gestionnaires de
@ -55,8 +55,8 @@
; Win95 window, you should turn ³ fenêtre Windows95, vous devriez passer ; Win95 window, you should turn ³ fenêtre Windows95, vous devriez passer
; these values to 0 (and increase X ³ ces valeurs à 0 (et augmenter les sen- ; these values to 0 (and increase X ³ ces valeurs à 0 (et augmenter les sen-
; and Y sensitivities above). ³ sibilités X et Y définies plus haut). ; and Y sensitivities above). ³ sibilités X et Y définies plus haut).
X_correction_factor = 1 ; (default 3) X_correction_factor = 0 ; (default 3)
Y_correction_factor = 1 ; (default 3) Y_correction_factor = 0 ; (default 3)
; Aspect of the main cursor (cross) ³ Aspect du curseur principal (croix) ; Aspect of the main cursor (cross) ³ Aspect du curseur principal (croix)
; 1: Solid ³ 1: Solide ; 1: Solid ³ 1: Solide