.\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2009
.\"   National Institute of Advanced Industrial Science and Technology (AIST)
.\" This file is part of the m17n library documentation.
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.2 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Section, no Front-Cover Texts,
.\" and no Back-Cover Texts.  A copy of the license is included in the
.\" appendix entitled "GNU Free Documentation License".
.TH "mdraw_text_extents" 3m17n "15 Oct 2009" "" "Version 1.5.5" "" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
mdraw_text_extents \- Compute text pixel width. 


.SH SYNOPSIS
int
\fBmdraw_text_extents\fP (\fBMFrame\fP *
\fIframe\fP, \fBMText\fP *
\fImt\fP, int
\fIfrom\fP, int
\fIto\fP, \fBMDrawControl\fP *
\fIcontrol\fP, \fBMDrawMetric\fP *
\fIoverall_ink_return\fP, \fBMDrawMetric\fP *
\fIoverall_logical_return\fP, \fBMDrawMetric\fP *
\fIoverall_line_return\fP)


.SH DESCRIPTION
Compute text pixel width. 
.PP
The
.ft B
mdraw_text_extents()
.ft R
function computes the width of text between
.ft B
from
.ft R
and
.ft B
to
.ft R
of M\-text
.ft B
mt
.ft R
when it is drawn on a window of frame
.ft B
frame
.ft R
using the
.ft B
mdraw_text_with_control()
.ft R
function with the drawing control object
.ft B
control\fP.
.ft R
.PP
If
.ft B
overall_ink_return
.ft R
is not
.ft C
NULL\fP,
.ft R
this function also computes the bounding box of character ink of the M\-text, and stores the results in the members of the structure pointed to by
.ft B
overall_ink_return\fP.
.ft R
If the M\-text has a face specifying a surrounding box, the box is included in the bounding box.
.PP
If
.ft B
overall_logical_return
.ft R
is not
.ft C
NULL\fP,
.ft R
this function also computes the bounding box that provides minimum spacing to other graphical features (such as surrounding box) for the M\-text, and stores the results in the members of the structure pointed to by
.ft B
overall_logical_return\fP.
.ft R
.PP
If
.ft B
overall_line_return
.ft R
is not
.ft C
NULL\fP,
.ft R
this function also computes the bounding box that provides minimum spacing to the other M\-text drawn, and stores the results in the members of the structure pointed to by
.ft B
overall_line_return\fP.
.ft R
This is a union of
.ft B
overall_ink_return
.ft R
and
.ft B
overall_logical_return
.ft R
if the members min_line_ascent, min_line_descent, max_line_ascent, and max_line_descent of
.ft B
control
.ft R
are all zero.
.PP
.SH RETURN VALUE
.PP
.RS 4
This function returns the width of the text to be drawn in the unit of pixels. If
.ft B
control\->two_dimensional
.ft R
is nonzero and the text is drawn in multiple physical lines, it returns the width of the widest line. If an error occurs, it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP.
.ft R
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_RANGE
.ft R
.RE
.PP

.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2009 National Institute of Advanced Industrial Science and Technology (AIST)
.br
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License 
<http://www.gnu.org/licenses/fdl.html>.
