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
LOPT = -lSDL -o grafx2

View File

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

View File

@ -28,8 +28,8 @@
; 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
; ³ rapide.
X_sensitivity = 3 ; (default 3)
Y_sensitivity = 3 ; (default 3)
X_sensitivity = 1 ; (default 3)
Y_sensitivity = 1 ; (default 3)
; 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
@ -55,8 +55,8 @@
; 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-
; and Y sensitivities above). ³ sibilités X et Y définies plus haut).
X_correction_factor = 1 ; (default 3)
Y_correction_factor = 1 ; (default 3)
X_correction_factor = 0 ; (default 3)
Y_correction_factor = 0 ; (default 3)
; Aspect of the main cursor (cross) ³ Aspect du curseur principal (croix)
; 1: Solid ³ 1: Solide