.\" Copyright (C) 2001 Information-technology Promotion Agency (IPA) .\" Copyright (C) 2001-2011 .\" 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 "Mon Sep 25 2023" "Version 1.8.4" "The m17n Library" \" -*- nroff -*- .ad l .nh .SH NAME mdraw_text_extents \- .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 .PP Compute text pixel width\&. 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\&. .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\&. 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\&. .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\&. 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\&. .br .RE .PP .SH ERRORS .PP .RS 4 \fCMERROR_RANGE .ft R .br .RE .PP .SH COPYRIGHT Copyright (C) 2001 Information\-technology Promotion Agency (IPA) .br Copyright (C) 2001\-2011 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 .