diff --git a/divers.c b/divers.c index 27544a81..7ead621b 100644 --- a/divers.c +++ b/divers.c @@ -136,6 +136,9 @@ void Get_input(void) //On met le scancode dans Touche" Touche = event.key.keysym.scancode; + //...et le code ASCII dans Touche_ASCII + Touche_ASCII=event.key.keysym.sym; + //On ajoute aussi l'état des modifiers #define ekkm event.key.keysym.mod if (ekkm & (KMOD_LSHIFT | KMOD_RSHIFT)) @@ -150,139 +153,96 @@ void Get_input(void) { Touche |= 0x0400; } + #undef ekkm + + //TODO revoir les scancodes qui sont dans le tableau + //Config_Touche, ça correspond à rien ! //Cas particulier: déplacement du curseur avec haut bas gauche droite //On doit interpréter ça comme un mvt de la souris + byte ok=0; + if(Touche == Config_Touche[0]) + { + //[Touche] = Emulation de MOUSE UP + //si on est déjà en haut on peut plus bouger + if(INPUT_Nouveau_Mouse_Y!=0) + { + INPUT_Nouveau_Mouse_Y--; + ok=1; + } + } + else if(Touche == Config_Touche[1]) + { + //[Touche] = Emulation de MOUSE DOWN + if(INPUT_Nouveau_Mouse_Y émulation curseur par clavier incomplète!"); + } } } + //Gestion "avancée" du curseur: interdire la descente du curseur dans le + //menu lorsqu'on est en train de travailler dans l'image + + if(Operation_Taille_pile!=0) + { + byte bl=0;//BL va indiquer si on doit corriger la position du curseur + + //Si le curseur ne se trouve plus dans l'image + if(Menu_Ordonnee>8) { - case 0 : Config_Touche[Ordonnancement[Indice2]&0xFF]=CFG_Infos_touche.Touche; break; - case 1 : Bouton[Ordonnancement[Indice2]&0xFF].Raccourci_gauche=CFG_Infos_touche.Touche; break; - case 2 : Bouton[Ordonnancement[Indice2]&0xFF].Raccourci_droite=CFG_Infos_touche.Touche; break; + case 0 : + Config_Touche[Ordonnancement[Indice2]&0xFF]=CFG_Infos_touche.Touche; + break; + case 1 : + Bouton[Ordonnancement[Indice2]&0xFF].Raccourci_gauche = CFG_Infos_touche.Touche; + break; + case 2 : + Bouton[Ordonnancement[Indice2]&0xFF].Raccourci_droite = CFG_Infos_touche.Touche; + break; } } else