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:
parent
3b4149be49
commit
de2f95863d
30
boutons.c
30
boutons.c
@ -5825,7 +5825,7 @@ void Bouton_Texte()
|
||||
case 2: // Clear
|
||||
Chaine[0]='\0';
|
||||
Effacer_curseur();
|
||||
Fenetre_Contenu_bouton_saisie(Bouton_texte,Chaine);
|
||||
Fenetre_Effacer_bouton_saisie(Bouton_texte);
|
||||
Afficher_curseur();
|
||||
break;
|
||||
|
||||
@ -5896,7 +5896,11 @@ void Bouton_Texte()
|
||||
|
||||
case 11: // OK
|
||||
// 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)
|
||||
{
|
||||
Fermer_fenetre();
|
||||
@ -5906,11 +5910,6 @@ void Bouton_Texte()
|
||||
return;
|
||||
}
|
||||
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);
|
||||
|
||||
Brosse=Nouvelle_Brosse;
|
||||
@ -5918,6 +5917,23 @@ void Bouton_Texte()
|
||||
Brosse_Hauteur=Nouvelle_Hauteur;
|
||||
Brosse_Decalage_X=Brosse_Largeur>>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
|
||||
case 12: // Cancel
|
||||
|
||||
7
moteur.c
7
moteur.c
@ -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);
|
||||
}
|
||||
|
||||
//------------ 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 ------
|
||||
|
||||
1
moteur.h
1
moteur.h
@ -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_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_Definir_bouton_normal(word Pos_X, word Pos_Y,
|
||||
|
||||
39
texte.c
39
texte.c
@ -131,6 +131,17 @@ char * Libelle_fonte(int Indice)
|
||||
Libelle[Indice]=Nom_fonte[Indice];
|
||||
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
|
||||
@ -195,8 +206,17 @@ byte *Rendu_Texte_TTF(const char *Chaine, int Numero_fonte, int Taille, int Anti
|
||||
return NULL;
|
||||
}
|
||||
// Couleurs
|
||||
Couleur_Avant = Conversion_couleur_SDL(Fore_color);
|
||||
Couleur_Arriere = Conversion_couleur_SDL(Back_color);
|
||||
if (AntiAlias)
|
||||
{
|
||||
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
|
||||
if (AntiAlias)
|
||||
@ -241,14 +261,15 @@ byte *Rendu_Texte_TTF(const char *Chaine, int Numero_fonte, int Taille, int Anti
|
||||
}
|
||||
if (!AntiAlias)
|
||||
{
|
||||
// Mappage des couleurs
|
||||
/*for (Indice=0; Indice < Texte8Bit->w * Texte8Bit->h; Indice++)
|
||||
{
|
||||
if ()
|
||||
*(BrosseRetour+Indice)=*(BrosseRetour+Indice) ? (*(BrosseRetour+Indice)+96-15) : 0;
|
||||
}*/
|
||||
// Mappage des couleurs
|
||||
for (Indice=0; Indice < Texte8Bit->w * Texte8Bit->h; Indice++)
|
||||
{
|
||||
if (*(BrosseRetour+Indice) == CM_Noir)
|
||||
*(BrosseRetour+Indice)=Back_color;
|
||||
else if (*(BrosseRetour+Indice) == CM_Blanc)
|
||||
*(BrosseRetour+Indice)=Fore_color;
|
||||
}
|
||||
}
|
||||
|
||||
*Largeur=Texte8Bit->w;
|
||||
*Hauteur=Texte8Bit->h;
|
||||
SDL_FreeSurface(Texte8Bit);
|
||||
|
||||
2
texte.h
2
texte.h
@ -32,5 +32,7 @@ byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int Taille, int AntiAlia
|
||||
char * Libelle_fonte(int Indice);
|
||||
// Trouve le nom d'une fonte par son numéro
|
||||
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
|
||||
extern int Fonte_nombre;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user