Text tool: corrected colors, various fixes.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@320 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-11-02 19:03:11 +00:00
parent 3b4149be49
commit de2f95863d
6 changed files with 63 additions and 16 deletions

View File

@ -5825,7 +5825,7 @@ void Bouton_Texte()
case 2: // Clear case 2: // Clear
Chaine[0]='\0'; Chaine[0]='\0';
Effacer_curseur(); Effacer_curseur();
Fenetre_Contenu_bouton_saisie(Bouton_texte,Chaine); Fenetre_Effacer_bouton_saisie(Bouton_texte);
Afficher_curseur(); Afficher_curseur();
break; break;
@ -5896,7 +5896,11 @@ void Bouton_Texte()
case 11: // OK case 11: // OK
// Rendu texte // Rendu texte
Nouvelle_Brosse = Rendu_Texte(Chaine, Position_curseur+Debut_liste, Taille_police, AntiAlias, &Nouvelle_Largeur, &Nouvelle_Hauteur); Nouvelle_Brosse = NULL;
if (Chaine[0])
{
Nouvelle_Brosse = Rendu_Texte(Chaine, Position_curseur+Debut_liste, Taille_police, AntiAlias, &Nouvelle_Largeur, &Nouvelle_Hauteur);
}
if (!Nouvelle_Brosse) if (!Nouvelle_Brosse)
{ {
Fermer_fenetre(); Fermer_fenetre();
@ -5906,11 +5910,6 @@ void Bouton_Texte()
return; return;
} }
Effacer_curseur(); Effacer_curseur();
// On passe en brosse:
//if (AntiAlias)
Changer_la_forme_du_pinceau(FORME_PINCEAU_BROSSE_COULEUR);
//else
// Changer_la_forme_du_pinceau(FORME_PINCEAU_BROSSE_MONOCHROME);
if (Brosse) free(Brosse); if (Brosse) free(Brosse);
Brosse=Nouvelle_Brosse; Brosse=Nouvelle_Brosse;
@ -5918,6 +5917,23 @@ void Bouton_Texte()
Brosse_Hauteur=Nouvelle_Hauteur; Brosse_Hauteur=Nouvelle_Hauteur;
Brosse_Decalage_X=Brosse_Largeur>>1; Brosse_Decalage_X=Brosse_Largeur>>1;
Brosse_Decalage_Y=Brosse_Hauteur>>1; Brosse_Decalage_Y=Brosse_Hauteur>>1;
Fermer_fenetre();
Desenclencher_bouton(BOUTON_TEXTE);
// On passe en brosse:
if (AntiAlias || !TrueType_fonte(Position_curseur+Debut_liste))
Changer_la_forme_du_pinceau(FORME_PINCEAU_BROSSE_COULEUR);
else
Changer_la_forme_du_pinceau(FORME_PINCEAU_BROSSE_MONOCHROME);
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE);
if (Config.Auto_discontinuous)
{
// On se place en mode Dessin discontinu à la main
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
}
return;
// Attention pas de break // Attention pas de break
case 12: // Cancel case 12: // Cancel

BIN
gfx2.cfg

Binary file not shown.

View File

@ -1323,6 +1323,13 @@ void Fenetre_Contenu_bouton_saisie(struct Fenetre_Bouton_special * Enreg, char *
Print_dans_fenetre(Enreg->Pos_X+2,Enreg->Pos_Y+2,Contenu,CM_Noir,CM_Clair); Print_dans_fenetre(Enreg->Pos_X+2,Enreg->Pos_Y+2,Contenu,CM_Noir,CM_Clair);
} }
//------------ Effacer le contenu (caption) d'une zone de saisie ------------
void Fenetre_Effacer_bouton_saisie(struct Fenetre_Bouton_special * Enreg)
{
Block((Enreg->Pos_X+2)*Menu_Facteur_X+Fenetre_Pos_X,(Enreg->Pos_Y+2)*Menu_Facteur_Y+Fenetre_Pos_Y,(Enreg->Largeur/8)*8*Menu_Facteur_X,8*Menu_Facteur_Y,CM_Clair);
UpdateRect((Enreg->Pos_X+2)*Menu_Facteur_X+Fenetre_Pos_X,(Enreg->Pos_Y+2)*Menu_Facteur_Y+Fenetre_Pos_Y,Enreg->Largeur/8*8*Menu_Facteur_X,8*Menu_Facteur_Y);
}
//------ Rajout d'un bouton à la liste de ceux présents dans la fenêtre ------ //------ Rajout d'un bouton à la liste de ceux présents dans la fenêtre ------

View File

@ -39,6 +39,7 @@ void Fenetre_Dessiner_jauge(struct Fenetre_Bouton_scroller * Enreg);
void Fenetre_Dessiner_bouton_scroller(struct Fenetre_Bouton_scroller * Enreg); void Fenetre_Dessiner_bouton_scroller(struct Fenetre_Bouton_scroller * Enreg);
void Fenetre_Contenu_bouton_saisie(struct Fenetre_Bouton_special * Enreg, char * Contenu); void Fenetre_Contenu_bouton_saisie(struct Fenetre_Bouton_special * Enreg, char * Contenu);
void Fenetre_Effacer_bouton_saisie(struct Fenetre_Bouton_special * Enreg);
void Fenetre_Dessiner_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caracteres); void Fenetre_Dessiner_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caracteres);
void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y, void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,

39
texte.c
View File

@ -131,6 +131,17 @@ char * Libelle_fonte(int Indice)
Libelle[Indice]=Nom_fonte[Indice]; Libelle[Indice]=Nom_fonte[Indice];
return Libelle; return Libelle;
} }
// Vérifie si une fonte donnée est TrueType
int TrueType_fonte(int Indice)
{
T_FONTE *Fonte = Liste_fontes_debut;
if (Indice<0 ||Indice>=Fonte_nombre)
return 0;
while (Indice--)
Fonte = Fonte->Suivante;
return Fonte->EstTrueType;
}
// Initialisation à faire une fois au début du programme // Initialisation à faire une fois au début du programme
@ -195,8 +206,17 @@ byte *Rendu_Texte_TTF(const char *Chaine, int Numero_fonte, int Taille, int Anti
return NULL; return NULL;
} }
// Couleurs // Couleurs
Couleur_Avant = Conversion_couleur_SDL(Fore_color); if (AntiAlias)
Couleur_Arriere = Conversion_couleur_SDL(Back_color); {
Couleur_Avant = Conversion_couleur_SDL(Fore_color);
Couleur_Arriere = Conversion_couleur_SDL(Back_color);
}
else
{
Couleur_Avant = Conversion_couleur_SDL(CM_Blanc);
Couleur_Arriere = Conversion_couleur_SDL(CM_Noir);
}
// Rendu du texte: crée une surface SDL RGB 24bits // Rendu du texte: crée une surface SDL RGB 24bits
if (AntiAlias) if (AntiAlias)
@ -241,14 +261,15 @@ byte *Rendu_Texte_TTF(const char *Chaine, int Numero_fonte, int Taille, int Anti
} }
if (!AntiAlias) if (!AntiAlias)
{ {
// Mappage des couleurs // Mappage des couleurs
/*for (Indice=0; Indice < Texte8Bit->w * Texte8Bit->h; Indice++) for (Indice=0; Indice < Texte8Bit->w * Texte8Bit->h; Indice++)
{ {
if () if (*(BrosseRetour+Indice) == CM_Noir)
*(BrosseRetour+Indice)=*(BrosseRetour+Indice) ? (*(BrosseRetour+Indice)+96-15) : 0; *(BrosseRetour+Indice)=Back_color;
}*/ else if (*(BrosseRetour+Indice) == CM_Blanc)
*(BrosseRetour+Indice)=Fore_color;
}
} }
*Largeur=Texte8Bit->w; *Largeur=Texte8Bit->w;
*Hauteur=Texte8Bit->h; *Hauteur=Texte8Bit->h;
SDL_FreeSurface(Texte8Bit); SDL_FreeSurface(Texte8Bit);

View File

@ -32,5 +32,7 @@ byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int Taille, int AntiAlia
char * Libelle_fonte(int Indice); char * Libelle_fonte(int Indice);
// Trouve le nom d'une fonte par son numéro // Trouve le nom d'une fonte par son numéro
char * Nom_fonte(int Indice); char * Nom_fonte(int Indice);
// Vérifie si une fonte donnée est TrueType
char * TrueType_fonte(int Indice);
// Nombre de fontes déclarées // Nombre de fontes déclarées
extern int Fonte_nombre; extern int Fonte_nombre;