Se define un cuadro o rectángulo donde se muestra un texto, que se adapta al tamaño. Esta es la continuación.
Existe también un método privado que se utiliza para saber el numero de líneas que se mostrará en el cuadro. Este método es el siguiente:
void numlineas()
{
int cont;
int espacio = 0;
char* mtexto = (char*)stexto.c_str();
nlineas = 1;
int maxCont = strlen(mtexto);
if (tancho + espaciado > ancho && ancho > espaciado)
{
// no cabe en una linea
string resto = stexto;
string trozo;
char caracter[] = " ";
char* caracter2;
int nuevoancho = 0;
int nc = 0;
int restoancho = 0;
do
{
cont = 1;
trozo = resto.substr(0, cont);
mtexto = (char*)trozo.c_str();
nuevoancho = al_get_text_width(fuente, mtexto);
espacio = 0;
while (nuevoancho + espaciado < ancho)
{
trozo = resto.substr(cont, 1);
caracter2 = (char*)trozo.c_str();
if (strcmp(caracter2, caracter) == 0)
{
espacio = cont;
}
cont++;
trozo = resto.substr(0, cont);
mtexto = (char*)trozo.c_str();
nuevoancho = al_get_text_width(fuente, mtexto);
}
nc = resto.length();
trozo = resto.substr(cont, 1);
caracter2 = (char*)trozo.c_str();
nlineas++;
if (espacio > 0 && cont < nc && strcmp(caracter2, caracter) != 0)
{
resto = resto.substr(espacio);
}
else
{
resto = resto.substr(cont);
}
restoancho = al_get_text_width(fuente, resto.c_str());
} while (restoancho + espaciado > ancho);
}
}
Este método es igual al de pintar pero sin mostrar nada, y actualizando el valor de nlineas.
No hay comentarios:
Publicar un comentario