From 1ed8852d64ffbdcbb5eb242dc6885dcaa3a3198e Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Sun, 8 Feb 2009 00:46:42 +0000 Subject: [PATCH] Fixed mouse cursor in text input (Readline(), recent problems) Fixed refresh problem when rotating a brush outside of screen limits (bug in 98%) Fixed Palette window having 'S' as shortcut for 2 functions. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@612 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- boutons.c | 19 ------------------- divers.c | 17 ----------------- divers.h | 1 - graph.c | 12 +++++++++++- palette.c | 3 +-- readline.c | 10 +++++++++- shade.c | 2 -- 7 files changed, 21 insertions(+), 43 deletions(-) diff --git a/boutons.c b/boutons.c index 533271fa..a0f8efc1 100644 --- a/boutons.c +++ b/boutons.c @@ -936,7 +936,6 @@ void Bouton_Settings(void) break; case 21 : // Nb pages Undo Attendre_fin_de_click(); - Effacer_curseur(); Num2str(Config_choisie.Nb_pages_Undo,Chaine,2); Readline(142,52,Chaine,2,1); Config_choisie.Nb_pages_Undo=atoi(Chaine); @@ -1462,7 +1461,6 @@ void Bouton_Resol(void) break; case 3 : // Largeur - Effacer_curseur(); Num2str(Largeur_choisie,Chaine,4); Readline(62,37,Chaine,4,1); Largeur_choisie=atoi(Chaine); @@ -1477,7 +1475,6 @@ void Bouton_Resol(void) break; case 4 : // Hauteur - Effacer_curseur(); Num2str(Hauteur_choisie,Chaine,4); Readline(166,37,Chaine,4,1); Hauteur_choisie=atoi(Chaine); @@ -2755,13 +2752,11 @@ byte Bouton_Load_ou_Save(byte Load, byte Image) case 7 : // Saisie d'un commentaire pour la sauvegarde if ( (!Load) && (FormatFichier[Principal_Format-1].Commentaire) ) { - Effacer_curseur(); Readline(46,175+FILENAMESPACE,Principal_Commentaire,32,0); Afficher_curseur(); } break; case 8 : // Saisie du nom de fichier - Effacer_curseur(); // Save the filename strcpy(Nom_fichier_Save, Principal_Nom_fichier); @@ -4029,7 +4024,6 @@ void Bouton_Menu_Grille(void) switch (Bouton_clicke) { case 3 : - Effacer_curseur(); Num2str(X_choisi,Chaine,2); Readline(39,26,Chaine,2,1); X_choisi=atoi(Chaine); @@ -4052,7 +4046,6 @@ void Bouton_Menu_Grille(void) Afficher_curseur(); break; case 4 : - Effacer_curseur(); Num2str(Y_choisi,Chaine,2); Readline(39,47,Chaine,2,1); Y_choisi=atoi(Chaine); @@ -4075,7 +4068,6 @@ void Bouton_Menu_Grille(void) Afficher_curseur(); break; case 5 : - Effacer_curseur(); Num2str(dX_choisi,Chaine,2); Readline(97,26,Chaine,2,1); dX_choisi=atoi(Chaine); @@ -4091,7 +4083,6 @@ void Bouton_Menu_Grille(void) Afficher_curseur(); break; case 6 : - Effacer_curseur(); Num2str(dY_choisi,Chaine,2); Readline(97,47,Chaine,2,1); dY_choisi=atoi(Chaine); @@ -4383,7 +4374,6 @@ void Bouton_Smooth_Menu(void) } else { - Effacer_curseur(); I=Bouton_clicke-7; X=I%3; Y=I/3; Num2str(Matrice_choisie[X][Y],Chaine,2); Readline(Matrice_Zone_saisie[X][Y]->Pos_X+2, @@ -4539,7 +4529,6 @@ void Bouton_Colorize_Menu(void) switch(Bouton_clicke) { case 1: // Zone de saisie de l'opacité - Effacer_curseur(); Num2str(Opacite_choisie,Chaine,3); Readline(89,23,Chaine,3,1); Opacite_choisie=atoi(Chaine); @@ -4632,7 +4621,6 @@ void Bouton_Tiling_Menu(void) if (Bouton_clicke==3) // Zone de saisie du décalage X { - Effacer_curseur(); Num2str(Offset_X_choisi,Chaine,4); Readline(93,23,Chaine,4,1); Offset_X_choisi=atoi(Chaine); @@ -4648,7 +4636,6 @@ void Bouton_Tiling_Menu(void) else if (Bouton_clicke==4) // Zone de saisie du décalage Y { - Effacer_curseur(); Num2str(Offset_Y_choisi,Chaine,4); Readline(93,37,Chaine,4,1); Offset_Y_choisi=atoi(Chaine); @@ -4943,7 +4930,6 @@ void Bouton_Spray_Menu(void) break; case 11 : // Size - Effacer_curseur(); Num2str(Spray_Size,Chaine,3); Readline(188,25,Chaine,3,1); Spray_Size=atoi(Chaine); @@ -4964,7 +4950,6 @@ void Bouton_Spray_Menu(void) break; case 12 : // Delay - Effacer_curseur(); Num2str(Spray_Delay,Chaine,2); Readline(196,39,Chaine,2,1); Spray_Delay=atoi(Chaine); @@ -4979,7 +4964,6 @@ void Bouton_Spray_Menu(void) break; case 13 : // Mono-Flow - Effacer_curseur(); Num2str(Spray_Mono_flow,Chaine,2); Readline(113,24,Chaine,2,1); Spray_Mono_flow=atoi(Chaine); @@ -4994,7 +4978,6 @@ void Bouton_Spray_Menu(void) break; case 14 : // Init - Effacer_curseur(); Num2str(Spray_Init,Chaine,2); Readline(113,40,Chaine,2,1); Spray_Init=atoi(Chaine); @@ -6182,7 +6165,6 @@ void Bouton_Texte() switch(Bouton_clicke) { case 1: // Texte saisi - Effacer_curseur(); Readline_ex(50,20,Chaine,29,250,0); A_previsionner=1; break; @@ -6233,7 +6215,6 @@ void Bouton_Texte() break; case 7: // Taille du texte (nombre) - Effacer_curseur(); Readline(222,45,Buffer_taille,3,1); Taille_police=atoi(Buffer_taille); // On corrige les dimensions diff --git a/divers.c b/divers.c index 05b828c6..9d21d1f0 100644 --- a/divers.c +++ b/divers.c @@ -596,23 +596,6 @@ void Scroll_picture(short Decalage_X,short Decalage_Y) UpdateRect(0,0,0,0); } -word Get_key(void) -{ - SDL_Event event; - - Attendre_fin_de_click(); // On prend le controle de la boucle d'évènements, donc il ne faut pas qu'on rate la fin de click ! - while(1) - { - SDL_WaitEvent(&event); - if(event.type == SDL_KEYDOWN) - { - return Conversion_ANSI(event.key.keysym); - } - else - Gere_Evenement_SDL(&event); - } -} - void Zoomer_une_ligne(byte* Ligne_originale, byte* Ligne_zoomee, word Facteur, word Largeur ) diff --git a/divers.h b/divers.h index 9b93b11a..1e6b61bb 100644 --- a/divers.h +++ b/divers.h @@ -38,7 +38,6 @@ void Wait_VBL(void); void Tempo_jauge(byte Vitesse); dword Round_div(dword Numerateur,dword Diviseur); word Palette_Compter_nb_couleurs_utilisees(dword * Tableau); -word Get_key(void); void Pixel_dans_ecran_courant (word X,word Y,byte Couleur); void Pixel_dans_brosse (word X,word Y,byte Couleur); diff --git a/graph.c b/graph.c index e08ffc6a..5c80dbef 100644 --- a/graph.c +++ b/graph.c @@ -1300,9 +1300,19 @@ void Tracer_ligne_Preview(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y,by void Tracer_ligne_Preview_xor(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y,byte Couleur) { - int L = Fin_X-Debut_X, H = Fin_Y - Debut_Y; + int L, H; Pixel_figure=Pixel_figure_Preview_xor; Tracer_ligne_General(Debut_X,Debut_Y,Fin_X,Fin_Y,Couleur); + if (Debut_X<0) + Debut_X=0; + if (Debut_Y<0) + Debut_Y=0; + if (Fin_X<0) + Fin_X=0; + if (Fin_Y<0) + Fin_Y=0; + L = Fin_X-Debut_X; + H = Fin_Y-Debut_Y; Mettre_Ecran_A_Jour((Debut_X