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
This commit is contained in:
Yves Rizoud 2009-02-08 00:46:42 +00:00
parent 8aadfe3732
commit 1ed8852d64
7 changed files with 21 additions and 43 deletions

View File

@ -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

View File

@ -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
)

View File

@ -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);

12
graph.c
View File

@ -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<Fin_X)?Debut_X:Fin_X,(Debut_Y<Fin_Y)?Debut_Y:Fin_Y,abs(L)+1,abs(H)+1);
}

View File

@ -841,7 +841,7 @@ void Bouton_Palette(void)
Fenetre_Definir_bouton_normal( 6,17,59,14,"Default",3,1,SDLK_f); // 5
Fenetre_Definir_bouton_normal(66,17,29,14,"Gry" ,1,1,SDLK_g); // 6
Fenetre_Definir_bouton_normal(66,47,29,14,"Swp" ,1,1,SDLK_s); // 7
Fenetre_Definir_bouton_normal(66,47,29,14,"Swp" ,0,1,TOUCHE_AUCUNE); // 7
Fenetre_Definir_bouton_normal( 6,47,59,14,"X-Swap" ,1,1,SDLK_x); // 8
Fenetre_Definir_bouton_normal(66,32,29,14,"Cpy" ,1,1,SDLK_c); // 9
Fenetre_Definir_bouton_normal( 6,32,59,14,"Spread" ,4,1,SDLK_e); // 10
@ -1785,7 +1785,6 @@ void Bouton_Palette(void)
case 23 : // Saisie du nombre de couleurs pour la réduction de palette
Num2str(Reduce_Nb_couleurs,Chaine,3);
Effacer_curseur();
if (Readline(265,41,Chaine,3,1))
{

View File

@ -38,6 +38,7 @@
#include "sdlscreen.h"
#include "readline.h"
#include "windows.h"
#include "input.h"
#define COULEUR_TEXTE CM_Noir
#define COULEUR_FOND CM_Clair
@ -144,6 +145,7 @@ byte Readline_ex(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte T
byte Offset=0; // Indice du premier caractère affiché
Effacer_curseur();
// Effacement de la chaîne
Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y),
Taille_affichee*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
@ -179,7 +181,13 @@ byte Readline_ex(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte T
while ((Touche_lue!=SDLK_RETURN) && (Touche_lue!=TOUCHE_ESC))
{
Touche_lue=Get_key();
Afficher_curseur();
do
{
if(!Get_input()) Wait_VBL();
Touche_lue=Touche_ANSI;
} while(Touche_lue==0);
Effacer_curseur();
switch (Touche_lue)
{
case SDLK_DELETE : // Suppr.

View File

@ -828,7 +828,6 @@ int Menu_Shade(void)
break;
case 15 : // Saisie du pas
Effacer_curseur();
Num2str(Shade_Liste[Shade_Actuel].Pas,Chaine,3);
Readline(276,176,Chaine,3,1);
Temp=atoi(Chaine);
@ -1070,7 +1069,6 @@ void Bouton_Quick_shade_Menu(void)
break;
case 4 : // Saisie du pas
Effacer_curseur();
Num2str(Quick_shade_Step,Chaine,3);
Readline(42,21,Chaine,3,1);
Temp=atoi(Chaine);