Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tk_MeasureChars(3)	     Tk	Library	Procedures	    Tk_MeasureChars(3)

______________________________________________________________________________

NAME
       Tk_MeasureChars,	 Tk_TextWidth,	Tk_DrawChars, Tk_UnderlineChars	- rou-
       tines to	measure	and display simple single-line strings.

SYNOPSIS
       #include	<tk.h>

       int
       Tk_MeasureChars(tkfont, string, numBytes, maxPixels, flags, lengthPtr)

       int
       Tk_TextWidth(tkfont, string, numBytes)

       Tk_DrawChars(display, drawable, gc, tkfont, string, numBytes, x,	y)

       Tk_UnderlineChars(display, drawable, gc,	tkfont,	string,	x, y, firstByte, lastByte)

ARGUMENTS
       Tk_Font tkfont (in)		  Token	for font in which text	is  to
					  be  drawn  or	 measured.   Must have
					  been returned	by a previous call  to
					  Tk_GetFont.

       const char *string (in)		  Text	to  be	measured or displayed.
					  Need not be  null  terminated.   Any
					  non-printing	meta-characters	in the
					  string (such as tabs,	newlines,  and
					  other	 control  characters)  will be
					  measured or displayed	in a platform-
					  dependent manner.

       int numBytes (in)		  The maximum number of	bytes to  con-
					  sider	  when	measuring  or  drawing
					  string.  Must	 be  greater  than  or
					  equal	to 0.

       int maxPixels (in)		  If  maxPixels	 is >= 0, it specifies
					  the longest permissible line	length
					  in  pixels.	Characters from	string
					  are processed	only until  this  many
					  pixels  have	been covered.  If max-
					  Pixels is < 0, then the line	length
					  is  unbounded	and the	flags argument
					  is ignored.

       int flags (in)			  Various flag	bits  OR-ed  together:
					  TK_PARTIAL_OK	 means include a char-
					  acter	as long	as any part of it fits
					  in the length	 given	by  maxPixels;
					  otherwise, a character must fit com-
					  pletely     to     be	   considered.
					  TK_WHOLE_WORDS means stop on a  word
					  boundary,	if    possible.	    If
					  TK_AT_LEAST_ONE is set, it means re-
					  turn at least	one character even  if
					  no   characters  could  fit  in  the
					  length  given	 by   maxPixels.    If
					  TK_AT_LEAST_ONE     is    set	   and
					  TK_WHOLE_WORDS is also set, it means
					  that if not even one	word  fits  on
					  the  line, return the	first few let-
					  ters of the word that	 did  fit;  if
					  not even one letter of the word fit,
					  then	the first letter will still be
					  returned.

       int *lengthPtr (out)		  Filled with the number of pixels oc-
					  cupied by the	number	of  characters
					  returned  as	the  result of Tk_Mea-
					  sureChars.

       Display *display	(in)		  Display on which to draw.

       Drawable	drawable (in)		  Window or pixmap in which to draw.

       GC gc (in)			  Graphics context for drawing charac-
					  ters.	 The font selected  into  this
					  GC must be the same as the tkfont.

       int x, y	(in)			  Coordinates  at  which  to place the
					  left edge of the baseline when  dis-
					  playing string.

       int firstByte (in)		  The  index  of the first byte	of the
					  first	character to underline in  the
					  string.   Underlining	 begins	at the
					  left edge of this character.

       int lastByte (in)		  The index of the first byte  of  the
					  last	character  up to which the un-
					  derline will be drawn.  The  charac-
					  ter  specified  by lastByte will not
					  itself be underlined.
______________________________________________________________________________

DESCRIPTION
       These routines are for measuring	 and  displaying  simple  single-font,
       single-line  strings.   To measure and display single-font, multi-line,
       justified text, refer to	the  documentation  for	 Tk_ComputeTextLayout.
       There  is  no  programming  interface  in  the core of Tk that supports
       multi-font, multi-line text; support for	that behavior must be built on
       top of simpler layers.  Note that the  interfaces  described  here  are
       byte-oriented  not  character-oriented, so index	values coming from Tcl
       scripts need to be converted to byte offsets using  the	Tcl_UtfAtIndex
       and related routines.

       A  glyph	 is the	displayable picture of a letter, number, or some other
       symbol.	Not all	character codes	in a given font	have a glyph.  Charac-
       ters such as tabs, newlines/returns, and	control	characters  that  have
       no  glyph are measured and displayed by these procedures	in a platform-
       dependent manner; under X, they are replaced  with  backslashed	escape
       sequences,  while under Windows and Macintosh hollow or solid boxes may
       be substituted.	Refer to the  documentation  for  Tk_ComputeTextLayout
       for  a programming interface that supports the platform-independent ex-
       pansion of tab characters into columns and newlines/returns into	multi-
       line text.

       Tk_MeasureChars is used both to compute the length of  a	 given	string
       and  to compute how many	characters from	a string fit in	a given	amount
       of space.  The return value is the number of bytes from string that fit
       in the space specified by maxPixels subject to the conditions described
       by flags.  If all characters fit, the return value  will	 be  numBytes.
       *lengthPtr is filled with the computed width, in	pixels,	of the portion
       of  the	string that was	measured.  For example,	if the return value is
       5, then *lengthPtr is filled with the distance between the left edge of
       string[0] and the right edge of string[4].

       Tk_TextWidth is a wrapper function that provides	a simpler interface to
       the Tk_MeasureChars function.  The return value is how  much  space  in
       pixels the given	string needs.

       Tk_DrawChars  draws the string at the given location in the given draw-
       able.

       Tk_UnderlineChars underlines the	given range of characters in the given
       string.	It does	not draw the characters	(which	are  assumed  to  have
       been  displayed	previously  by Tk_DrawChars); it just draws the	under-
       line.  This procedure is	used to	underline  a  few  characters  without
       having to construct an underlined font.	To produce natively underlined
       text, the appropriate underlined	font should be constructed and used.

SEE ALSO
       font(n),	FontId(3)

KEYWORDS
       font, measurement

Tk				      8.1		    Tk_MeasureChars(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tk_TextWidth.tk86&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help