textwidth


Syntax
#include <graphics.h>
int textwidth(char *textstring);
Description
The graphics function textwidth takes the string length, current font size, and multiplication factor, and determines the width of textstring in pixels.

This function is useful for computing viewport widths, sizing a title to make it fit on a graph or in a box, and so on.

Use textwidth to compute the width of strings, instead of doing the computations manually. When you use this function, no source code modifications have to be made when different fonts are selected.

Return Value
textwidth returns the text width in pixels.

See also
gettextsettings
outtext
outtextxy
settextstyle
textheight

Example
/* textwidth example */ 

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   int x = 0, y = 0;
   int i;
   char msg[80];

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");

   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk) {  /* an error occurred */
      printf("Graphics error: %s\n", grapherrormsg(errorcode));

      printf("Press any key to halt:");
      getch();
      exit(1);               /* terminate with an error code */
   }

   y = getmaxy() / 2;
   settextjustify(LEFT_TEXT, CENTER_TEXT);
   for (i = 1; i < 11; i++) {
      /* select the text style, direction, and size */
      settextstyle(TRIPLEX_FONT, HORIZ_DIR, i);

      /* create a message string */
      sprintf(msg, "Size: %d", i);

      /* output the message */
      outtextxy(x, y, msg);

      /* advance to the end of the text */

      x += textwidth(msg);
   }

   /* clean up */
   getch();
   closegraph();
   return 0;
}

Back to index