diff options
Diffstat (limited to 'libX11/man/XLoadFont.man')
-rw-r--r-- | libX11/man/XLoadFont.man | 1078 |
1 files changed, 539 insertions, 539 deletions
diff --git a/libX11/man/XLoadFont.man b/libX11/man/XLoadFont.man index b85fcb25f..008d6d1ba 100644 --- a/libX11/man/XLoadFont.man +++ b/libX11/man/XLoadFont.man @@ -1,539 +1,539 @@ -.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium -.\" -.\" Permission is hereby granted, free of charge, to any person obtaining -.\" a copy of this software and associated documentation files (the -.\" "Software"), to deal in the Software without restriction, including -.\" without limitation the rights to use, copy, modify, merge, publish, -.\" distribute, sublicense, and/or sell copies of the Software, and to -.\" permit persons to whom the Software is furnished to do so, subject to -.\" the following conditions: -.\" -.\" The above copyright notice and this permission notice shall be included -.\" in all copies or substantial portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR -.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -.\" OTHER DEALINGS IN THE SOFTWARE. -.\" -.\" Except as contained in this notice, the name of the X Consortium shall -.\" not be used in advertising or otherwise to promote the sale, use or -.\" other dealings in this Software without prior written authorization -.\" from the X Consortium. -.\" -.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by -.\" Digital Equipment Corporation -.\" -.\" Portions Copyright \(co 1990, 1991 by -.\" Tektronix, Inc. -.\" -.\" Permission to use, copy, modify and distribute this documentation for -.\" any purpose and without fee is hereby granted, provided that the above -.\" copyright notice appears in all copies and that both that copyright notice -.\" and this permission notice appear in all copies, and that the names of -.\" Digital and Tektronix not be used in in advertising or publicity pertaining -.\" to this documentation without specific, written prior permission. -.\" Digital and Tektronix makes no representations about the suitability -.\" of this documentation for any purpose. -.\" It is provided ``as is'' without express or implied warranty. -.\" -.\" -.ds xT X Toolkit Intrinsics \- C Language Interface -.ds xW Athena X Widgets \- C Language X Toolkit Interface -.ds xL Xlib \- C Language X Interface -.ds xC Inter-Client Communication Conventions Manual -.na -.de Ds -.nf -.\\$1D \\$2 \\$1 -.ft 1 -.\".ps \\n(PS -.\".if \\n(VS>=40 .vs \\n(VSu -.\".if \\n(VS<=39 .vs \\n(VSp -.. -.de De -.ce 0 -.if \\n(BD .DF -.nr BD 0 -.in \\n(OIu -.if \\n(TM .ls 2 -.sp \\n(DDu -.fi -.. -.de FD -.LP -.KS -.TA .5i 3i -.ta .5i 3i -.nf -.. -.de FN -.fi -.KE -.LP -.. -.de IN \" send an index entry to the stderr -.. -.de C{ -.KS -.nf -.D -.\" -.\" choose appropriate monospace font -.\" the imagen conditional, 480, -.\" may be changed to L if LB is too -.\" heavy for your eyes... -.\" -.ie "\\*(.T"480" .ft L -.el .ie "\\*(.T"300" .ft L -.el .ie "\\*(.T"202" .ft PO -.el .ie "\\*(.T"aps" .ft CW -.el .ft R -.ps \\n(PS -.ie \\n(VS>40 .vs \\n(VSu -.el .vs \\n(VSp -.. -.de C} -.DE -.R -.. -.de Pn -.ie t \\$1\fB\^\\$2\^\fR\\$3 -.el \\$1\fI\^\\$2\^\fP\\$3 -.. -.de ZN -.ie t \fB\^\\$1\^\fR\\$2 -.el \fI\^\\$1\^\fP\\$2 -.. -.de hN -.ie t <\fB\\$1\fR>\\$2 -.el <\fI\\$1\fP>\\$2 -.. -.de NT -.ne 7 -.ds NO Note -.if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2 -.if \\n(.$ .if !'\\$1'C' .ds NO \\$1 -.ie n .sp -.el .sp 10p -.TB -.ce -\\*(NO -.ie n .sp -.el .sp 5p -.if '\\$1'C' .ce 99 -.if '\\$2'C' .ce 99 -.in +5n -.ll -5n -.R -.. -. \" Note End -- doug kraft 3/85 -.de NE -.ce 0 -.in -5n -.ll +5n -.ie n .sp -.el .sp 10p -.. -.ny0 -.de EX -.sp -.nf -.ft CW -.. -.de EE -.ft R -.fi -.sp -.. -.TH XLoadFont __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS" -.SH NAME -XLoadFont, XQueryFont, XLoadQueryFont, XFreeFont, XGetFontProperty, XUnloadFont, XCharStruct, XFontProp, XChar2b, XFontStruct \- load or unload fonts and font metric structures -.SH SYNTAX -.HP -Font XLoadFont\^(\^Display *\fIdisplay\fP\^, char *\fIname\fP\^); -.HP -XFontStruct *XQueryFont\^(\^Display *\fIdisplay\fP\^, XID \fIfont_ID\fP\^); -.HP -XFontStruct *XLoadQueryFont\^(\^Display *\fIdisplay\fP\^, char -*\fIname\fP\^); -.HP -int XFreeFont\^(\^Display *\fIdisplay\fP\^, XFontStruct *\fIfont_struct\fP\^); -.HP -Bool XGetFontProperty\^(\^XFontStruct *\fIfont_struct\fP\^, Atom \fIatom\fP\^, -unsigned long *\fIvalue_return\fP\^); -.HP -int XUnloadFont\^(\^Display *\fIdisplay\fP\^, Font \fIfont\fP\^); -.SH ARGUMENTS -.IP \fIatom\fP 1i -Specifies the atom for the property name you want returned. -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fIfont\fP 1i -Specifies the font. -.IP \fIfont_ID\fP 1i -Specifies the font ID or the -.ZN GContext -ID. -.IP \fIfont_struct\fP 1i -Specifies the storage associated with the font. -.IP \fIgc\fP 1i -Specifies the GC. -.IP \fIname\fP 1i -Specifies the name of the font, -which is a null-terminated string. -.IP \fIvalue_return\fP 1i -Returns the value of the font property. -.SH DESCRIPTION -The -.ZN XLoadFont -function loads the specified font and returns its associated font ID. -If the font name is not in the Host Portable Character Encoding, -the result is implementation-dependent. -Use of uppercase or lowercase does not matter. -When the characters ``?'' and ``*'' are used in a font name, a -pattern match is performed and any matching font is used. -In the pattern, -the ``?'' character will match any single character, -and the ``*'' character will match any number of characters. -A structured format for font names is specified in the X Consortium standard -\fIX Logical Font Description Conventions\fP. -If -.ZN XLoadFont -was unsuccessful at loading the specified font, -a -.ZN BadName -error results. -Fonts are not associated with a particular screen -and can be stored as a component -of any GC. -When the font is no longer needed, call -.ZN XUnloadFont . -.LP -.ZN XLoadFont -can generate -.ZN BadAlloc -and -.ZN BadName -errors. -.LP -The -.ZN XQueryFont -function returns a pointer to the -.ZN XFontStruct -structure, which contains information associated with the font. -You can query a font or the font stored in a GC. -The font ID stored in the -.ZN XFontStruct -structure will be the -.ZN GContext -ID, and you need to be careful when using this ID in other functions -(see -.ZN XGContextFromGC ). -If the font does not exist, -.ZN XQueryFont -returns NULL. -To free this data, use -.ZN XFreeFontInfo . -.LP -.ZN XLoadQueryFont -can generate a -.ZN BadAlloc -error. -.LP -The -.ZN XLoadQueryFont -function provides the most common way for accessing a font. -.ZN XLoadQueryFont -both opens (loads) the specified font and returns a pointer to the -appropriate -.ZN XFontStruct -structure. -If the font name is not in the Host Portable Character Encoding, -the result is implementation-dependent. -If the font does not exist, -.ZN XLoadQueryFont -returns NULL. -.LP -The -.ZN XFreeFont -function deletes the association between the font resource ID and the specified -font and frees the -.ZN XFontStruct -structure. -The font itself will be freed when no other resource references it. -The data and the font should not be referenced again. -.LP -.ZN XFreeFont -can generate a -.ZN BadFont -error. -.LP -Given the atom for that property, -the -.ZN XGetFontProperty -function returns the value of the specified font property. -.ZN XGetFontProperty -also returns -.ZN False -if the property was not defined or -.ZN True -if it was defined. -A set of predefined atoms exists for font properties, -which can be found in -.hN X11/Xatom.h . -This set contains the standard properties associated with -a font. -Although it is not guaranteed, -it is likely that the predefined font properties will be present. -.LP -The -.ZN XUnloadFont -function deletes the association between the font resource ID and the specified font. -The font itself will be freed when no other resource references it. -The font should not be referenced again. -.LP -.ZN XUnloadFont -can generate a -.ZN BadFont -error. -.SH STRUCTURES -The -.ZN XFontStruct -structure contains all of the information for the font -and consists of the font-specific information as well as -a pointer to an array of -.ZN XCharStruct -structures for the -characters contained in the font. -The -.ZN XFontStruct , -.ZN XFontProp , -and -.ZN XCharStruct -structures contain: -.LP -.IN "XCharStruct" "" "@DEF@" -.EX -typedef struct { - short lbearing; /\&* origin to left edge of raster */ - short rbearing; /\&* origin to right edge of raster */ - short width; /\&* advance to next char's origin */ - short ascent; /\&* baseline to top edge of raster */ - short descent; /\&* baseline to bottom edge of raster */ - unsigned short attributes; /\&* per char flags (not predefined) */ -} XCharStruct; -.EE -.LP -.IN "XFontProp" "" "@DEF@" -.EX -typedef struct { - Atom name; - unsigned long card32; -} XFontProp; -.EE -.LP -.IN "XChar2b" "" "@DEF@" -.EX -typedef struct { /\&* normal 16 bit characters are two bytes */ - unsigned char byte1; - unsigned char byte2; -} XChar2b; -.EE -.LP -.IN "XFontStruct" "" "@DEF@" -.EX -typedef struct { - XExtData *ext_data; /\&* hook for extension to hang data */ - Font fid; /\&* Font id for this font */ - unsigned direction; /\&* hint about the direction font is painted */ - unsigned min_char_or_byte2; /\&* first character */ - unsigned max_char_or_byte2; /\&* last character */ - unsigned min_byte1; /\&* first row that exists */ - unsigned max_byte1; /\&* last row that exists */ - Bool all_chars_exist; /\&* flag if all characters have nonzero size */ - unsigned default_char; /\&* char to print for undefined character */ - int n_properties; /\&* how many properties there are */ - XFontProp *properties; /\&* pointer to array of additional properties */ - XCharStruct min_bounds; /\&* minimum bounds over all existing char */ - XCharStruct max_bounds; /\&* maximum bounds over all existing char */ - XCharStruct *per_char; /\&* first_char to last_char information */ - int ascent; /\&* logical extent above baseline for spacing */ - int descent; /\&* logical decent below baseline for spacing */ -} XFontStruct; -.EE -.LP -X supports single byte/character, two bytes/character matrix, -and 16-bit character text operations. -Note that any of these forms can be used with a font, but a -single byte/character text request can only specify a single byte -(that is, the first row of a 2-byte font). -You should view 2-byte fonts as a two-dimensional matrix of defined -characters: byte1 specifies the range of defined rows and -byte2 defines the range of defined columns of the font. -Single byte/character fonts have one row defined, and the byte2 range -specified in the structure defines a range of characters. -.LP -The bounding box of a character is defined by the -.ZN XCharStruct -of that character. -When characters are absent from a font, -the default_char is used. -When fonts have all characters of the same size, -only the information in the -.ZN XFontStruct -min and max bounds are used. -.LP -The members of the -.ZN XFontStruct -have the following semantics: -.IP \(bu 5 -The direction member can be either -.ZN FontLeftToRight -or -.ZN FontRightToLeft . -It is just a hint as to whether most -.ZN XCharStruct -elements -have a positive -.Pn ( FontLeftToRight ) -or a negative -.Pn ( FontRightToLeft ) -character width -metric. -The core protocol defines no support for vertical text. -.IP \(bu 5 -If the min_byte1 and max_byte1 members are both zero, min_char_or_byte2 -specifies the linear character index corresponding to the first element -of the per_char array, and max_char_or_byte2 specifies the linear character -index of the last element. -.IP -If either min_byte1 or max_byte1 are nonzero, both -min_char_or_byte2 and max_char_or_byte2 are less than 256, -and the 2-byte character index values corresponding to the -per_char array element N (counting from 0) are: -.IP -.EX - byte1 = N/D + min_byte1 - byte2 = N\\D + min_char_or_byte2 -.EE -where: -.EX - D = max_char_or_byte2 \- min_char_or_byte2 + 1 - / = integer division - \e\e = integer modulus -.EE -.IP \(bu 5 -If the per_char pointer is NULL, -all glyphs between the first and last character indexes -inclusive have the same information, -as given by both min_bounds and max_bounds. -.IP \(bu 5 -If all_chars_exist is -.ZN True , -all characters in the per_char array have nonzero bounding boxes. -.IP \(bu 5 -The default_char member specifies the character that will be used when an -undefined or nonexistent character is printed. -The default_char is a 16-bit character (not a 2-byte character). -For a font using 2-byte matrix format, -the default_char has byte1 in the most-significant byte -and byte2 in the least significant byte. -If the default_char itself specifies an undefined or nonexistent character, -no printing is performed for an undefined or nonexistent character. -.IP \(bu 5 -The min_bounds and max_bounds members contain the most extreme values of -each individual -.ZN XCharStruct -component over all elements of this array -(and ignore nonexistent characters). -The bounding box of the font (the smallest -rectangle enclosing the shape obtained by superimposing all of the -characters at the same origin [x,y]) has its upper-left coordinate at: -.Ds - [x + min_bounds.lbearing, y \- max_bounds.ascent] -.De -.IP -Its width is: -.Ds - max_bounds.rbearing \- min_bounds.lbearing -.De -.IP -Its height is: -.Ds - max_bounds.ascent + max_bounds.descent -.De -.IP \(bu 5 -The ascent member is the logical extent of the font above the baseline that is -used for determining line spacing. -Specific characters may extend beyond -this. -.IP \(bu 5 -The descent member is the logical extent of the font at or below the -baseline that is used for determining line spacing. -Specific characters may extend beyond this. -.IP \(bu 5 -If the baseline is at Y-coordinate y, -the logical extent of the font is inclusive between the Y-coordinate -values (y \- font.ascent) and (y + font.descent \- 1). -Typically, -the minimum interline spacing between rows of text is given -by ascent + descent. -.LP -For a character origin at [x,y], -the bounding box of a character (that is, -the smallest rectangle that encloses the character's shape) -described in terms of -.ZN XCharStruct -components is a rectangle with its upper-left corner at: -.LP -.Ds -[x + lbearing, y \- ascent] -.De -.LP -Its width is: -.LP -.Ds -rbearing \- lbearing -.De -.LP -Its height is: -.LP -.Ds -ascent + descent -.De -.LP -The origin for the next character is defined to be: -.LP -.Ds -[x + width, y] -.De -.LP -The lbearing member defines the extent of the left edge of the character ink -from the origin. -The rbearing member defines the extent of the right edge of the character ink -from the origin. -The ascent member defines the extent of the top edge of the character ink -from the origin. -The descent member defines the extent of the bottom edge of the character ink -from the origin. -The width member defines the logical width of the character. -.SH DIAGNOSTICS -.TP 1i -.ZN BadAlloc -The server failed to allocate the requested resource or server memory. -.TP 1i -.ZN BadFont -A value for a Font or GContext argument does not name a defined Font. -.TP 1i -.ZN BadName -A font or color of the specified name does not exist. -.SH "SEE ALSO" -XCreateGC(__libmansuffix__), -XListFonts(__libmansuffix__), -XSetFontPath(__libmansuffix__) -.br -\fI\*(xL\fP +.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining
+.\" a copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\" OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of the X Consortium shall
+.\" not be used in advertising or otherwise to promote the sale, use or
+.\" other dealings in this Software without prior written authorization
+.\" from the X Consortium.
+.\"
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
+.\" Digital Equipment Corporation
+.\"
+.\" Portions Copyright \(co 1990, 1991 by
+.\" Tektronix, Inc.
+.\"
+.\" Permission to use, copy, modify and distribute this documentation for
+.\" any purpose and without fee is hereby granted, provided that the above
+.\" copyright notice appears in all copies and that both that copyright notice
+.\" and this permission notice appear in all copies, and that the names of
+.\" Digital and Tektronix not be used in in advertising or publicity pertaining
+.\" to this documentation without specific, written prior permission.
+.\" Digital and Tektronix makes no representations about the suitability
+.\" of this documentation for any purpose.
+.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\"
+.ds xT X Toolkit Intrinsics \- C Language Interface
+.ds xW Athena X Widgets \- C Language X Toolkit Interface
+.ds xL Xlib \- C Language X Interface
+.ds xC Inter-Client Communication Conventions Manual
+.na
+.de Ds
+.nf
+.\\$1D \\$2 \\$1
+.ft 1
+.\".ps \\n(PS
+.\".if \\n(VS>=40 .vs \\n(VSu
+.\".if \\n(VS<=39 .vs \\n(VSp
+..
+.de De
+.ce 0
+.if \\n(BD .DF
+.nr BD 0
+.in \\n(OIu
+.if \\n(TM .ls 2
+.sp \\n(DDu
+.fi
+..
+.de FD
+.LP
+.KS
+.TA .5i 3i
+.ta .5i 3i
+.nf
+..
+.de FN
+.fi
+.KE
+.LP
+..
+.de IN \" send an index entry to the stderr
+..
+.de C{
+.KS
+.nf
+.D
+.\"
+.\" choose appropriate monospace font
+.\" the imagen conditional, 480,
+.\" may be changed to L if LB is too
+.\" heavy for your eyes...
+.\"
+.ie "\\*(.T"480" .ft L
+.el .ie "\\*(.T"300" .ft L
+.el .ie "\\*(.T"202" .ft PO
+.el .ie "\\*(.T"aps" .ft CW
+.el .ft R
+.ps \\n(PS
+.ie \\n(VS>40 .vs \\n(VSu
+.el .vs \\n(VSp
+..
+.de C}
+.DE
+.R
+..
+.de Pn
+.ie t \\$1\fB\^\\$2\^\fR\\$3
+.el \\$1\fI\^\\$2\^\fP\\$3
+..
+.de ZN
+.ie t \fB\^\\$1\^\fR\\$2
+.el \fI\^\\$1\^\fP\\$2
+..
+.de hN
+.ie t <\fB\\$1\fR>\\$2
+.el <\fI\\$1\fP>\\$2
+..
+.de NT
+.ne 7
+.ds NO Note
+.if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
+.if \\n(.$ .if !'\\$1'C' .ds NO \\$1
+.ie n .sp
+.el .sp 10p
+.TB
+.ce
+\\*(NO
+.ie n .sp
+.el .sp 5p
+.if '\\$1'C' .ce 99
+.if '\\$2'C' .ce 99
+.in +5n
+.ll -5n
+.R
+..
+. \" Note End -- doug kraft 3/85
+.de NE
+.ce 0
+.in -5n
+.ll +5n
+.ie n .sp
+.el .sp 10p
+..
+.ny0
+.de EX
+.sp
+.nf
+.ft CW
+..
+.de EE
+.ft R
+.fi
+.sp
+..
+.TH XLoadFont __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
+.SH NAME
+XLoadFont, XQueryFont, XLoadQueryFont, XFreeFont, XGetFontProperty, XUnloadFont, XCharStruct, XFontProp, XChar2b, XFontStruct \- load or unload fonts and font metric structures
+.SH SYNTAX
+.HP
+Font XLoadFont\^(\^Display *\fIdisplay\fP\^, char *\fIname\fP\^);
+.HP
+XFontStruct *XQueryFont\^(\^Display *\fIdisplay\fP\^, XID \fIfont_ID\fP\^);
+.HP
+XFontStruct *XLoadQueryFont\^(\^Display *\fIdisplay\fP\^, char
+*\fIname\fP\^);
+.HP
+int XFreeFont\^(\^Display *\fIdisplay\fP\^, XFontStruct *\fIfont_struct\fP\^);
+.HP
+Bool XGetFontProperty\^(\^XFontStruct *\fIfont_struct\fP\^, Atom \fIatom\fP\^,
+unsigned long *\fIvalue_return\fP\^);
+.HP
+int XUnloadFont\^(\^Display *\fIdisplay\fP\^, Font \fIfont\fP\^);
+.SH ARGUMENTS
+.IP \fIatom\fP 1i
+Specifies the atom for the property name you want returned.
+.IP \fIdisplay\fP 1i
+Specifies the connection to the X server.
+.IP \fIfont\fP 1i
+Specifies the font.
+.IP \fIfont_ID\fP 1i
+Specifies the font ID or the
+.ZN GContext
+ID.
+.IP \fIfont_struct\fP 1i
+Specifies the storage associated with the font.
+.IP \fIgc\fP 1i
+Specifies the GC.
+.IP \fIname\fP 1i
+Specifies the name of the font,
+which is a null-terminated string.
+.IP \fIvalue_return\fP 1i
+Returns the value of the font property.
+.SH DESCRIPTION
+The
+.ZN XLoadFont
+function loads the specified font and returns its associated font ID.
+If the font name is not in the Host Portable Character Encoding,
+the result is implementation-dependent.
+Use of uppercase or lowercase does not matter.
+When the characters ``?'' and ``*'' are used in a font name, a
+pattern match is performed and any matching font is used.
+In the pattern,
+the ``?'' character will match any single character,
+and the ``*'' character will match any number of characters.
+A structured format for font names is specified in the X Consortium standard
+\fIX Logical Font Description Conventions\fP.
+If
+.ZN XLoadFont
+was unsuccessful at loading the specified font,
+a
+.ZN BadName
+error results.
+Fonts are not associated with a particular screen
+and can be stored as a component
+of any GC.
+When the font is no longer needed, call
+.ZN XUnloadFont .
+.LP
+.ZN XLoadFont
+can generate
+.ZN BadAlloc
+and
+.ZN BadName
+errors.
+.LP
+The
+.ZN XQueryFont
+function returns a pointer to the
+.ZN XFontStruct
+structure, which contains information associated with the font.
+You can query a font or the font stored in a GC.
+The font ID stored in the
+.ZN XFontStruct
+structure will be the
+.ZN GContext
+ID, and you need to be careful when using this ID in other functions
+(see
+.ZN XGContextFromGC ).
+If the font does not exist,
+.ZN XQueryFont
+returns NULL.
+To free this data, use
+.ZN XFreeFontInfo .
+.LP
+.ZN XLoadQueryFont
+can generate a
+.ZN BadAlloc
+error.
+.LP
+The
+.ZN XLoadQueryFont
+function provides the most common way for accessing a font.
+.ZN XLoadQueryFont
+both opens (loads) the specified font and returns a pointer to the
+appropriate
+.ZN XFontStruct
+structure.
+If the font name is not in the Host Portable Character Encoding,
+the result is implementation-dependent.
+If the font does not exist,
+.ZN XLoadQueryFont
+returns NULL.
+.LP
+The
+.ZN XFreeFont
+function deletes the association between the font resource ID and the specified
+font and frees the
+.ZN XFontStruct
+structure.
+The font itself will be freed when no other resource references it.
+The data and the font should not be referenced again.
+.LP
+.ZN XFreeFont
+can generate a
+.ZN BadFont
+error.
+.LP
+Given the atom for that property,
+the
+.ZN XGetFontProperty
+function returns the value of the specified font property.
+.ZN XGetFontProperty
+also returns
+.ZN False
+if the property was not defined or
+.ZN True
+if it was defined.
+A set of predefined atoms exists for font properties,
+which can be found in
+.hN X11/Xatom.h .
+This set contains the standard properties associated with
+a font.
+Although it is not guaranteed,
+it is likely that the predefined font properties will be present.
+.LP
+The
+.ZN XUnloadFont
+function deletes the association between the font resource ID and the specified font.
+The font itself will be freed when no other resource references it.
+The font should not be referenced again.
+.LP
+.ZN XUnloadFont
+can generate a
+.ZN BadFont
+error.
+.SH STRUCTURES
+The
+.ZN XFontStruct
+structure contains all of the information for the font
+and consists of the font-specific information as well as
+a pointer to an array of
+.ZN XCharStruct
+structures for the
+characters contained in the font.
+The
+.ZN XFontStruct ,
+.ZN XFontProp ,
+and
+.ZN XCharStruct
+structures contain:
+.LP
+.IN "XCharStruct" "" "@DEF@"
+.EX
+typedef struct {
+ short lbearing; /\&* origin to left edge of raster */
+ short rbearing; /\&* origin to right edge of raster */
+ short width; /\&* advance to next char's origin */
+ short ascent; /\&* baseline to top edge of raster */
+ short descent; /\&* baseline to bottom edge of raster */
+ unsigned short attributes; /\&* per char flags (not predefined) */
+} XCharStruct;
+.EE
+.LP
+.IN "XFontProp" "" "@DEF@"
+.EX
+typedef struct {
+ Atom name;
+ unsigned long card32;
+} XFontProp;
+.EE
+.LP
+.IN "XChar2b" "" "@DEF@"
+.EX
+typedef struct { /\&* normal 16 bit characters are two bytes */
+ unsigned char byte1;
+ unsigned char byte2;
+} XChar2b;
+.EE
+.LP
+.IN "XFontStruct" "" "@DEF@"
+.EX
+typedef struct {
+ XExtData *ext_data; /\&* hook for extension to hang data */
+ Font fid; /\&* Font id for this font */
+ unsigned direction; /\&* hint about the direction font is painted */
+ unsigned min_char_or_byte2; /\&* first character */
+ unsigned max_char_or_byte2; /\&* last character */
+ unsigned min_byte1; /\&* first row that exists */
+ unsigned max_byte1; /\&* last row that exists */
+ Bool all_chars_exist; /\&* flag if all characters have nonzero size */
+ unsigned default_char; /\&* char to print for undefined character */
+ int n_properties; /\&* how many properties there are */
+ XFontProp *properties; /\&* pointer to array of additional properties */
+ XCharStruct min_bounds; /\&* minimum bounds over all existing char */
+ XCharStruct max_bounds; /\&* maximum bounds over all existing char */
+ XCharStruct *per_char; /\&* first_char to last_char information */
+ int ascent; /\&* logical extent above baseline for spacing */
+ int descent; /\&* logical decent below baseline for spacing */
+} XFontStruct;
+.EE
+.LP
+X supports single byte/character, two bytes/character matrix,
+and 16-bit character text operations.
+Note that any of these forms can be used with a font, but a
+single byte/character text request can only specify a single byte
+(that is, the first row of a 2-byte font).
+You should view 2-byte fonts as a two-dimensional matrix of defined
+characters: byte1 specifies the range of defined rows and
+byte2 defines the range of defined columns of the font.
+Single byte/character fonts have one row defined, and the byte2 range
+specified in the structure defines a range of characters.
+.LP
+The bounding box of a character is defined by the
+.ZN XCharStruct
+of that character.
+When characters are absent from a font,
+the default_char is used.
+When fonts have all characters of the same size,
+only the information in the
+.ZN XFontStruct
+min and max bounds are used.
+.LP
+The members of the
+.ZN XFontStruct
+have the following semantics:
+.IP \(bu 5
+The direction member can be either
+.ZN FontLeftToRight
+or
+.ZN FontRightToLeft .
+It is just a hint as to whether most
+.ZN XCharStruct
+elements
+have a positive
+.Pn ( FontLeftToRight )
+or a negative
+.Pn ( FontRightToLeft )
+character width
+metric.
+The core protocol defines no support for vertical text.
+.IP \(bu 5
+If the min_byte1 and max_byte1 members are both zero, min_char_or_byte2
+specifies the linear character index corresponding to the first element
+of the per_char array, and max_char_or_byte2 specifies the linear character
+index of the last element.
+.IP
+If either min_byte1 or max_byte1 are nonzero, both
+min_char_or_byte2 and max_char_or_byte2 are less than 256,
+and the 2-byte character index values corresponding to the
+per_char array element N (counting from 0) are:
+.IP
+.EX
+ byte1 = N/D + min_byte1
+ byte2 = N\\D + min_char_or_byte2
+.EE
+where:
+.EX
+ D = max_char_or_byte2 \- min_char_or_byte2 + 1
+ / = integer division
+ \e\e = integer modulus
+.EE
+.IP \(bu 5
+If the per_char pointer is NULL,
+all glyphs between the first and last character indexes
+inclusive have the same information,
+as given by both min_bounds and max_bounds.
+.IP \(bu 5
+If all_chars_exist is
+.ZN True ,
+all characters in the per_char array have nonzero bounding boxes.
+.IP \(bu 5
+The default_char member specifies the character that will be used when an
+undefined or nonexistent character is printed.
+The default_char is a 16-bit character (not a 2-byte character).
+For a font using 2-byte matrix format,
+the default_char has byte1 in the most-significant byte
+and byte2 in the least significant byte.
+If the default_char itself specifies an undefined or nonexistent character,
+no printing is performed for an undefined or nonexistent character.
+.IP \(bu 5
+The min_bounds and max_bounds members contain the most extreme values of
+each individual
+.ZN XCharStruct
+component over all elements of this array
+(and ignore nonexistent characters).
+The bounding box of the font (the smallest
+rectangle enclosing the shape obtained by superimposing all of the
+characters at the same origin [x,y]) has its upper-left coordinate at:
+.Ds
+ [x + min_bounds.lbearing, y \- max_bounds.ascent]
+.De
+.IP
+Its width is:
+.Ds
+ max_bounds.rbearing \- min_bounds.lbearing
+.De
+.IP
+Its height is:
+.Ds
+ max_bounds.ascent + max_bounds.descent
+.De
+.IP \(bu 5
+The ascent member is the logical extent of the font above the baseline that is
+used for determining line spacing.
+Specific characters may extend beyond
+this.
+.IP \(bu 5
+The descent member is the logical extent of the font at or below the
+baseline that is used for determining line spacing.
+Specific characters may extend beyond this.
+.IP \(bu 5
+If the baseline is at Y-coordinate y,
+the logical extent of the font is inclusive between the Y-coordinate
+values (y \- font.ascent) and (y + font.descent \- 1).
+Typically,
+the minimum interline spacing between rows of text is given
+by ascent + descent.
+.LP
+For a character origin at [x,y],
+the bounding box of a character (that is,
+the smallest rectangle that encloses the character's shape)
+described in terms of
+.ZN XCharStruct
+components is a rectangle with its upper-left corner at:
+.LP
+.Ds
+[x + lbearing, y \- ascent]
+.De
+.LP
+Its width is:
+.LP
+.Ds
+rbearing \- lbearing
+.De
+.LP
+Its height is:
+.LP
+.Ds
+ascent + descent
+.De
+.LP
+The origin for the next character is defined to be:
+.LP
+.Ds
+[x + width, y]
+.De
+.LP
+The lbearing member defines the extent of the left edge of the character ink
+from the origin.
+The rbearing member defines the extent of the right edge of the character ink
+from the origin.
+The ascent member defines the extent of the top edge of the character ink
+from the origin.
+The descent member defines the extent of the bottom edge of the character ink
+from the origin.
+The width member defines the logical width of the character.
+.SH DIAGNOSTICS
+.TP 1i
+.ZN BadAlloc
+The server failed to allocate the requested resource or server memory.
+.TP 1i
+.ZN BadFont
+A value for a Font or GContext argument does not name a defined Font.
+.TP 1i
+.ZN BadName
+A font or color of the specified name does not exist.
+.SH "SEE ALSO"
+XCreateGC(__libmansuffix__),
+XListFonts(__libmansuffix__),
+XSetFontPath(__libmansuffix__)
+.br
+\fI\*(xL\fP
|