Ce programme explique comment récupérer la taille des boîtes de textes avant de les afficher.
#include <MLV/MLV_all.h> // // Fonction affichant les côtes d'une boîte de texte. Les paramètres sont // la position du sommet Nord-Ouest ( paramètres x et y ) et la taille de la // boîte de texte ( paramètres width et height ). // void print_cote( int O, int N, int width, int height, MLV_Color color ){ int espace = 3; int sizeLine = 10; int S = N + height -1; int E = O + width - 1; MLV_draw_line(O, N - espace, O, N - espace - sizeLine , color); MLV_draw_line(E, N - espace, E, N - espace - sizeLine , color); MLV_draw_line(O, S + espace, O, S + espace + sizeLine , color); MLV_draw_line(E, S + espace, E, S + espace + sizeLine , color); MLV_draw_line(O - espace, N, O - espace - sizeLine, N, color); MLV_draw_line(O - espace, S, O - espace - sizeLine, S, color); MLV_draw_line(E + espace, N, E + espace + sizeLine, N, color); MLV_draw_line(E + espace, S, E + espace + sizeLine, S, color); } // // Attention ! // Pour pouvoir compiler ce programme sous windows et sous macintosh, // il faut, pour la déclaration du main, respecter strictement la syntaxe // suivante : // int main( int argc, char *argv[] ){ int width = 640, height = 480; // // Créé et affiche la fenêtre // MLV_create_window( "advanced - 1 - texts and boxes", "texts and boxes", width, height ); // texte à afficher dans une boîte const char* text = "Voici une boite de texte, centré par rapport à la fenetre."; // Taille de la future boite qui affichera le texte. int width_text, height_text; // // Récupère la taile de la boite de texte qui affichera le texte // contenu dans la variable text. // MLV_get_size_of_text( text, &width_text, &height_text ); int positionX = (width-width_text)/2, positionY = 100; // // Affichage du texte // MLV_draw_text( positionX, positionY, text, MLV_COLOR_GREEN ); // // Affichage les côtes du texte. // print_cote( positionX, positionY, width_text, height_text, MLV_COLOR_GREEN ); // // Second texte à afficher // const char *text_box = "Voici une boîte de texte.\nCette Boîte de texte est elle aussi centré horizontalement dans la fenetre."; int width_box = 0 , height_box = 0, size_interligne = 9; // // Récupère la taille de la boite de texte qui affichera le texte // contenu dans la variable text_box. // MLV_get_size_of_adapted_text_box( text_box, size_interligne, &width_box, &height_box ); // // Calcul la position idéale pour la boîte de texte // int positionBoxX = (width-width_box)/2, positionBoxY = 300; // // Affiche la boîte de texte. // MLV_draw_adapted_text_box( positionBoxX, positionBoxY, text_box, size_interligne, MLV_COLOR_RED, MLV_COLOR_GREEN, MLV_COLOR_BLACK, MLV_TEXT_CENTER ); // // Affiche les côtes de la boîte de texte. // print_cote( positionBoxX, positionBoxY, width_box, height_box, MLV_COLOR_GREEN ); // // Met à jour l'affichage de la fenêtre // MLV_actualise_window(); // // Attend 15 secondes // MLV_wait_seconds( 15 ); // // Ferme la fenêtre // MLV_free_window(); return 0; }