home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
InfoMagic Source Code 1993 July
/
THE_SOURCE_CODE_CD_ROM.iso
/
X
/
mit
/
doc
/
CLX
/
s08.doc
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
Interleaf document
|
1989-10-18
|
42.9 KB
|
1,580 lines
<!OPS, Version = 5.2>
<!Document,
Print Rev Bars = no,
Final Output Device = "ps",
Default Printer = "nearest-adps">
<!Font Definitions,
F2 = Times 10 Italic,
F3 = Times 10,
F4 = Times 8 Italic,
F5 = Times 18 Bold,
F6 = Times 10 Bold,
F7 = Times 12 Bold,
F8 = Symbol_B 8>
<!Page,
Bottom Margin = 1 inches,
Left Margin = 1 inches,
Right Margin = 1.15 inches,
First Page = Right,
Starting Page # = Inherit,
Page # Prefix = "8<#1e>",
Hyphenation = on,
Consecutive Hyphens = 2,
Vert. Just. = off>
<!Autonumber Stream, List, 2,
Level 2 Suffix = ,
Level 2 Starting Value = 0,
Level 2 Show = no>
<!Autonumber Stream, Outline, 3,
Level 1 Symbol Type = UPPER ROMAN,
Level 2 Symbol Type = UPPER ALPHA>
<!Autonumber Stream, figure, 2,
Level 1 Prefix = "Figure ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = ,
Level 2 Starting Value = 0,
Level 2 Show = no>
<!Autonumber Stream, figurelet, 2,
Level 1 Symbol Type = UPPER ALPHA,
Level 1 Prefix = "Figure ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = "<#04>">
<!Autonumber Stream, invisible, 1,
Level 1 Suffix = ,
Level 1 Show = no>
<!Autonumber Stream, item, 2,
Level 2 Symbol Type = LOWER ALPHA,
Level 2 Trail = yes>
<!Autonumber Stream, paralet, 4,
Level 1 Symbol Type = UPPER ALPHA,
Level 1 Suffix = ,
Level 1 Show = no,
Level 2 Prefix = .,
Level 2 Suffix = ,
Level 3 Prefix = .,
Level 3 Suffix = ,
Level 4 Prefix = .,
Level 4 Suffix = >
<!Autonumber Stream, paranum, 4,
Level 1 Suffix = ,
Level 1 Show = no,
Level 2 Prefix = .,
Level 2 Suffix = ,
Level 3 Prefix = .,
Level 3 Suffix = ,
Level 4 Prefix = .,
Level 4 Suffix = >
<!Autonumber Stream, table, 2,
Level 1 Prefix = "Table ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = >
<!Autonumber Stream, tablelet, 2,
Level 1 Symbol Type = UPPER ALPHA,
Level 1 Prefix = "Table ",
Level 1 Suffix = "<#1e>",
Level 1 Show = no,
Level 2 Suffix = "<#04>">
<!Class, arg,
Bottom Margin = 0.08 inches,
Left Margin = 1.85 inches,
First Indent = -0.25 inches,
Line Spacing = 1.121 lines,
Font = F2,
Left Tab = -0.25/0 inches>
<!Class, bullet,
Bottom Margin = 0.153 inches,
Left Margin = 1.85 inches,
First Indent = -0.25 inches,
Line Spacing = 1.121 lines,
Font = F3,
Allow Page Break Within = no,
Left Tab = -0.50/0 inches>
<!Class, caption,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Font = F4>
<!Class, fig,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Alignment = Left,
Font = F5>
<!Class, p1para,
Bottom Margin = 0.153 inches,
Left Margin = 1.60 inches,
First Indent = -1.60 inches,
Line Spacing = 1.121 lines,
Font = F6,
Allow Page Break Within = no,
Left Tab = -1.60/-0.17/0 inches>
<!Class, p1rule,
Bottom Margin = 0 inches,
Line Spacing = 1 lines,
Font = F3,
Hyphenation = off,
Allow Page Break After = no,
Left Tab = 0/0.75*13 inches>
<!Class, p1stacked,
Bottom Margin = 0 inches,
Left Margin = 1.60 inches,
First Indent = -1.60 inches,
Line Spacing = 1 lines,
Font = F6,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -1.60/-0.17/0 inches>
<!Class, para,
Bottom Margin = 0.153 inches,
Left Margin = 1.60 inches,
Line Spacing = 1.121 lines,
Font = F3,
Allow Page Break Within = no,
Left Tab = 0/0.75*13 inches>
<!Class, return,
Bottom Margin = 0.077 inches,
Left Margin = 1.60 inches,
First Indent = -0.90 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F6,
Hyphenation = off,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -0.90/0 inches,
Right Tab = 7.50 inches>
<!Class, secno,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Alignment = Left,
Font = F5,
Autonumber Name = paranum>
<!Class, secrule,
Bottom Margin = 0 inches,
Line Spacing = 1 lines,
Font = F3,
Hyphenation = off,
Allow Page Break After = no,
Left Tab = 0/0.75*13 inches,
Autonumber Name = table>
<!Class, sectitle,
Bottom Margin = 0 inches,
Line Spacing = 1 lines,
Alignment = Right,
Font = F5,
Hyphenation = off,
New Page = yes,
Left Tab = 0/0.75*13 inches>
<!Class, syntax,
Bottom Margin = 0.077 inches,
Left Margin = 1.60 inches,
First Indent = -0.90 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F6,
Hyphenation = off,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -0.90/0 inches,
Right Tab = 8 inches>
<!Class, syntax0,
Bottom Margin = 0 inches,
Left Margin = 1.60 inches,
First Indent = -0.90 inches,
Line Spacing = 1.121 lines,
Alignment = Left,
Font = F6,
Hyphenation = off,
Allow Page Break Within = no,
Allow Page Break After = no,
Left Tab = -0.90/0 inches,
Right Tab = 8 inches>
<!Class, "table",
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Font = F6,
Autonumber Name = table>
<!Class, title,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.100 lines,
Alignment = Right,
Font = F5,
TOC Doc Name = TOC>
<!Master Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 0.41 inches,
Height = 0.137 inches,
Vertical Alignment = 0.03 inches,
Diagram =
V4,
(g9,32767,0
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<!Master Frame,
Name = p1rule,
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.326667,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<First Page Header, Frame =
V4,
(g9,0,0
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,1,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Right Page Header, Frame =
V4,
(g9,1,0
(T8,1,12,4.8,0.293333,1.533333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,
102,1101,2,
<caption,
Alignment = Right>
Fonts and Characters
<End Text>)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Left Page Header, Frame =
V4,
(g9,1,0
(T8,1,12,0,0.306667,1.933333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
2,1101,2,
<caption>
Fonts and Characters
<End Text>)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Right Page Footer, Frame =
V4,
(g9,1,0
(t8,1,4,6.333333,0.266667,2,17,@nntimsps10b,\240)
(t8,2,4,0.006667,0.266667,0,17,@nntimsps8i,CLX\ Programmer's\ Reference)
(v4,3,0,0,0.066667,6.333333,0.066554,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Left Page Footer, Frame =
V4,
(g9,1,0
(t8,1,4,0,0.266667,0,17,@nntimsps10b,\240)
(t8,2,4,6.333333,0.266667,2,17,@nntimsps8i,CLX\ Programmer's\ Reference)
(v4,3,0,0.026667,0.066667,6.333333,0.066554,17,2,0)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<sectitle,
Allow Page Break Within = no,
Allow Page Break After = no>
<|,"8<#1e>89">
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 4.72 inches,
Height = 0.94 inches,
Vertical Alignment = 0.03 inches,
Diagram =
V4,
(g9,1,0
(T8,1,12,0.133333,0.72,4.563333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512
,102,1101,3,
<title>
FONTS AND CHARACTERS
<End Text>)
(E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 1.626 inches,
Height = 0.938 inches,
Vertical Alignment = 0 inches,
Diagram =
V4,
(g9,1,0
(T8,1,12,0.066667,0.276667,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
2,1101,3,
<secno,
TOC Doc Name = TOC>
<Autonum, paranum, 1, First = Yes>
<End Text>)
(T8,2,12,0.026667,0.733333,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
2,1101,3,
<"table">
<Autonum, table, 1, First = Yes>
<End Text>)
(T8,3,12,0.066667,0.6,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
1,3,
<fig,
Alignment = Both,
Font = F6,
Autonumber Name = figure>
<Autonum, figure, 1, First = Yes>
<End Text>)
(g9,5,0
(p7,5,8,19
(g9,5,0
(g9,5,0
(v4,5,0,0.266667,0,1.6,0,17,1,0)
(v4,6,0,1.6,0,1.6,0.933333,17,1,0)
(v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0)
(v4,8,0,0.266667,0.933333,0.266667,0,17,1,0))))
(g9,10,8
(g9,10,1032
(p7,10,8,13
(g9,10,0
(g9,10,0
(v4,10,0,1.344561,0.934816,1.030176,0.934816,17,1,0)
(v4,11,32,1.030176,0.934816,1.097545,0.784692,17,0,0)
(v4,12,0,1.097545,0.784692,1.277192,0.784692,17,1,0)
(v4,13,0,1.277192,0.784692,1.277192,0.615801,17,1,0)
(v4,14,0,1.277192,0.615801,1.097545,0.615801,17,1,0)
(v4,15,32,1.097545,0.615801,1.097545,0.446914,17,0,0)
(v4,16,0,1.097545,0.446914,1.277192,0.446914,17,1,0)
(v4,17,0,1.277192,0.446914,1.277192,0.296785,17,1,0)
(v4,18,0,1.277192,0.296785,1.097545,0.296785,17,1,0)
(v4,19,32,1.097545,0.296785,1.030176,0.146666,17,0,0)
(v4,20,0,1.030176,0.146666,1.344561,0.146666,17,1,0)
(v4,21,0,1.344561,0.146666,1.4793,0.259257,17,1,0)
(v4,22,0,1.4793,0.259257,1.4793,0.428148,17,1,0)
(v4,23,0,1.4793,0.428148,1.367019,0.521973,17,1,0)
(v4,24,0,1.367019,0.521973,1.4793,0.615801,17,1,0)
(v4,25,0,1.4793,0.615801,1.4793,0.822221,17,1,0)
(v4,26,0,1.4793,0.822221,1.344561,0.934816,17,1,0))))
(p7,28,8,13
(g9,28,0
(g9,28,0
(v4,28,0,1.030176,0.934816,0.895439,0.822221,17,1,0)
(v4,29,0,0.895439,0.822221,0.895439,0.615801,17,1,0)
(v4,30,0,0.895439,0.615801,1.007718,0.521973,17,1,0)
(v4,31,0,1.007718,0.521973,0.895439,0.428148,17,1,0)
(v4,32,0,0.895439,0.428148,0.895439,0.259257,17,1,0)
(v4,33,0,0.895439,0.259257,1.030176,0.146666,17,1,0)
(v4,34,32,1.030176,0.146666,1.097545,0.296785,17,0,0)
(v4,35,0,1.097545,0.296785,1.097545,0.446914,17,1,0)
(v4,36,32,1.097545,0.446914,1.097545,0.615801,17,0,0)
(v4,37,0,1.097545,0.615801,1.097545,0.784692,17,1,0)
(v4,38,32,1.097545,0.784692,1.030176,0.934816,17,0,0)))))
(g9,39,2048
(v4,39,33,0.82807,0.146666,0.82807,0.146666,17,0,0)
(v4,40,33,0.82807,1.16,0.82807,1.16,17,0,0)
(v4,41,33,1.546667,1.16,1.546667,1.16,17,0,0)
(v4,42,33,1.546667,0.146666,1.546667,0.146666,17,0,0))))
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<secrule,
Allow Page Break Within = no,
Allow Page Break After = yes,
Autonumber Name = >
<Index, "character", To Named = sectitle><Index, "font", To Named = sectitle>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Diagram =
V4,
(g9,1,0
(v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
(E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
667,6))>
<p1para,
Font = F3,
Left Tab = -1.70/0 inches>
<F7>Introduction<Tab><F6>8.1<#04><F0>An X server maintains a set
of fonts used in the text operations requested<SP> by client programs.
An X font is an array of character bit maps (or <F2><Index, "glyphs">glyphs
<F0>) indexed by integer codes. In fact, font glyphs can also represent<SP>cur
sor shapes or other images and are not limited to character images.
X<SP> supports both linear and matrix encoding of font indexes. With
linear<SP>encoding, a font index is interpreted as a single 16<#1e>bit
integer index into<SP>a one<#1e>dimensional array of glyphs. With
matrix encoding, a font index is<SP>interpreted as a pair of 8<#1e>bit
integer indexes into a two<#1e>dimensional array<SP>of glyphs. The
type of index encoding used is font<#1e>dependent.
<para>
In order to access or use a font, a client program must first open
it using<SP> the <F6>open<#1e>font<F0> function, sending a font
name string as an identifier.<SP><F6>open<#1e>font<F0> creates a
CLX <F6>font<F0> object used to refer to the font in<SP>subsequent
functions. Afterward, calling <F6>open<#1e>font<F0> with the same
font name<SP>returns the same <F6>font<F0> object. When a font is
no longer in use, a client<SP> program can call <F6>close<#1e>font<F0>
to destroy the <F6>font<F0> object.
A font has several attributes which describe its geometry and its
glyphs.<SP>CLX provides functions to return the attributes of a font,
as well functions<SP>for accessing the attributes of individual font
glyphs. Glyph attributes<SP>are referred to as <Index, "font", "character attributes"><F2><Index, "character", "attributes">
character attributes<F0>, since characters are the most<SP>common
type of font glyphs. A font also has a property list of values<SP>recorded
by the X server. However, the set of possible font properties and<SP>their
values are not standardized and are implementation<#1e>dependent.
Typically, CLX maintains a cache of font and character attributes,
in<SP>order to minimize server requests. However, the font cache mechanism
is implementation<#1e>dependent and cannot be controlled by the client.
In some<SP>cases, CLX may create a <F2>pseudo<#1e>font<F0> object
solely for the purpose of<SP>accessing font attributes. A pseudo<#1e>font
is represented by a special type<SP>of <F6>font<F0> object that
cannot be used in a <F6>gcontext<F0>. If necessary, CLX can<SP>automatically
convert a pseudo<#1e>font into a true font, if the name of the<SP>pseudo<#1e>fo
nt is known.
The set of available fonts is server<#1e>dependent; that is, font
names are not<SP> guaranteed to be portable from one server to the
next. However, the public X<SP>implementation from MIT includes a
set of fonts that are typically available<SP>with most X servers.
The following paragraphs describe CLX functions to:
<bullet>
<F8>w<Tab><F0>Open and close fonts.
<F8>w<Tab><F0>List available fonts.
<F8>w<Tab><F0>Access font attributes.
<F8>w<Tab><F0>Access character attributes.
<F8>w<Tab><F0>Return the size of a text string.
<p1rule>
<Index, "font", "closing"><Index, "font", "opening", To Named = p1rule>
<Frame,
Name = p1rule,
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p1para,
Bottom Margin = 0.11 inches,
Font = F3,
Left Tab = -1.70/0 inches>
<F7>Opening Fonts<Tab><F6>8.2<#04><F0>The following paragraphs
discuss the CLX functions for opening and closing fonts.
<syntax0>
<|,"8<#1e>90">open<#1e>font <F2>display name<F3> <F0><Tab><F3>Function<Index, Doc = operations, "xlib:open<#1e>font", Sort String = "open<#1e>font">
<return>
<Tab><F3>Returns: <F2><HR>
font <F3><#1f> Type <F0>font<F3>.
<para,
Bottom Margin = 0.11 inches>
Opens the font with the given <F2>name<F0> and returns a <F6>font<F0>
object. The name<SP> string should contain only ISO Latin<#1e>1 characters;
case is not significant.
<arg>
display<F3> <#1f> A <F6>display<F3> object.
name<F3> <#1f> A font name string.
<syntax>
close<#1e>font <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:close<#1e>font", Sort String = "close<#1e>font">
<para,
Bottom Margin = 0.11 inches>
Deletes the association between the resource ID and the <F2>font<F0>.
The <F2>font<F0> is freed when no other server resource references
it. The <F2>font<F0> can be unloaded by the X server if this is
the last reference to the <F2>font <F0>by any client. In any case,
the <F2>font<F0> should never again be referenced because its resource
ID is destroyed. This might not generate a protocol request if the <F2>font
<F0> is reference<#1e>counted locally or if it is a pseudo<#1e>font.
<arg>
font <F3><#1f> A <F6>font<F3> object.
<syntax,
Left Tab = -0.90/0 inches,
Right Tab = 7.50 inches>
discard<#1e>font<#1e>info <F2>fonts<F0><Tab><F3>Function<Index, Doc = operations, "xlib:discard<#1e>font<#1e>info", Sort String = "discard<#1e>font<#1e>info">
<para,
Bottom Margin = 0.11 inches>
Discards any state that can be re<#1e>obtained with <F6>open<#1e>font<F0>.
This is simply a performance hint for memory<#1e>limited systems.
<arg>
font <F3><#1f> A <F6>font<F3> object.
<p1rule>
<Index, "font", "listing", To Named = p1rule>
<Frame,
Name = p1rule,
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p1para,
Bottom Margin = 0.11 inches,
Font = F3,
Left Tab = -1.70/0 inches>
<F7>Listing Fonts<Tab><F6>8.3<#04><F0>The following paragraphs
describe CLX functions that return fonts or font names that match<SP>a
given pattern string. Such pattern strings should contain only ISO<SP>Latin<#1e>
1 characters; case is not significant. The following pattern<SP>characters
can be used for <F2>wildcard<F0> matching:
<para,
Bottom Margin = 0.12 inches>
#\* <#1f> Matches any sequence of zero or more characters.
#\? <#1f> Matches any single character.
For example, the pattern <#7f>T?mes Roman" matches the name <#7f>Times
Roman" but not<SP> the name <#7f>Thames Roman". However, the pattern
<#7f>T*mes Roman" matches both<SP> names.
<syntax0>
font<#1e>path <F2>display<F3> &key (<F0>:result<#1e>type 'list<F3>)<F0><Tab>
<F3>Function<Index, Doc = operations, "xlib:font<#1e>path", Sort String = "font<#1e>path">
<return>
<Tab><F3>Returns: <F2><HR>
paths<F3> <#1f> Type <F0>sequence<F3> of either <F0>string<F3>
or <F0>pathname<F3>.
<para,
Bottom Margin = 0.11 inches>
Returns a <F6>list<F0> (by default) of names containing the current
search path for fonts. With <F6>setf<F0>, this function sets the
search path for font lookup. There is only one search path per server,
not one per client. The interpretation of the names is server<#1e>dependent,
but they are intended to specify directories to be searched in the
order listed.
Setting the path to the empty list restores the default path defined
for the server. Note that as a side<#1e>effect of executing this request,
the server is guaranteed to flush all cached information about fonts
for which there are currently no explicit resource IDs allocated.
<arg>
display<F3> <#1f> A <F6>display<F3> object.
<F6>:result<#1e>type<F3> <#1f> Specifies the type of resulting sequence.
<syntax0>
<|,"8<#1e>91">list<#1e>font<#1e>names <F2>display pattern <F3>&key (<F0>:max<#1e>fon
ts<F3> 65535) (<F0>:result<#1e>type<F3> <F0>'list<F3>)<F0><Tab><F3>Funct
ion<Index, Doc = operations, "xlib:list<#1e>font<#1e>names", Sort String = "list<#1e>font<#1e>names">
<return>
<Tab><F3>Returns: <F2><HR>
font<#1e>name<F3> <#1f> Type <F0>sequence<F3> of <F0>string<F3>.
<para>
Returns a sequence of strings containing the font names that match
the<SP><F2>pattern<F0>. The fonts available are determined by the
font search path; see<SP><F6>font<#1e>path<F0>). The maximum number
of font names returned is determined by<SP> <F6>:max<#1e>fonts<F0>.
<arg>
display <#1f> <F3>A <F6>display<F3> object.
pattern <#1f> <F3>A string used to match font names. Only font names
that match<SP> the pattern are returned.
<F6>:max<#1e>fonts<F0> <#1f> <F3>The maximum number of font names
returned. Default is 65535.
<F6>:result<#1e>type<F0> <#1f> <F3>The type of sequence to return.
Default is '<F6>list<F3>.
<syntax0>
list<#1e>fonts <F2>display pattern<F3> &key (<F0>:max<#1e>fonts<F3>
65535) (<F0>:result<#1e>type<F3> <F0>'list<F3>)<F0><Tab><F3>Function<Index, Doc = operations, "xlib:list<#1e>fonts", Sort String = "list<#1e>fonts">
<return>
<Tab><F3>Returns: <F2><HR>
font <F3><#1f> Type <F0>sequence<F3> of <F0>font<F3>.
<para>
Returns a sequence of pseudo<#1e>fonts corresponding to the available
fonts<SP> whose names match the <F2>pattern<F0>. The fonts available
are determined by the<SP> font search path; see <F6>font<#1e>path<F0>).
The maximum number of <F6>font<F0> objects<SP> returned is determined
by <F6>:max<#1e>fonts<F0>.
<arg>
display <#1f> <F3>A <F6>display<F3> object.
pattern <#1f> <F3>A string used to match font names. Only fonts whose
name<SP> matches the pattern are returned.
<F6>:max<#1e>fonts<F0> <#1f> <F3>The maximum number of fonts returned.
Default is 65535.
<F6>:result<#1e>type<F0> <#1f> <F3>The type of sequence to return.
Default is <F6>'list<F3>.
<p1rule>
<Index, "font", "attributes", To Named = p1rule>
<Frame,
Name = p1rule,
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p1para,
Font = F3,
Left Tab = -1.70/0 inches>
<F7>Font Attributes<Tab><F6>8.4<#04><F0>The following paragraphs
describe the CLX functions used to access font attributes.
<syntax0>
font<#1e>all<#1e>chars<#1e>exist<#1e>p <F2>font<Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>all<#1e>chars<#1e>exist<#1e>p", Sort String = "font<#1e>all<#1e>chars<#1e>exist<#1e>p">
<return>
<Tab><F3>Returns: <F2><HR>
exists<#1e>p <F3><#1f> Type <F0>boolean<F3>.
<para>
Returns true if glyphs exist for all indexes in the range returned
by <F6>font<#1e>min<#1e>char<F0> and <F6>font<#1e>max<#1e>char<F0>.
Returns <F6>nil<F0> if an index in the range<SP>corresponds to empty
glyph.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>ascent <F2>font<Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>ascent", Sort String = "font<#1e>ascent">
<return>
<Tab><F3>Returns: <F2><HR>
ascent <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the vertical <F2>ascent<F0> of the <F2>font<F0> used for
interline spacing. The<SP><F2>ascent<F0> defines the nominal distance
in pixels from the baseline to the<SP> bottom of the previous line
of text. Some font glyphs may actually extend<SP>beyond the font <F2>ascent
<F0>.
<arg>
font <#1f> <F3>A <F6>font<F3> object.
<syntax0>
font<#1e>default<#1e>char <F2>font<Tab> <F3>Function<Index, Doc = operations, "xlib:font<#1e>default<#1e>char", Sort String = "font<#1e>default<#1e>char">
<return>
<Tab><F3>Returns: <F2><HR>
index <F3><#1f> Type <F0>card16<F3>.
<para>
Returns the <F2>index<F0> of the glyph drawn when an invalid or
empty glyph<SP>index is specified. If the default index specifies
an invalid or<SP>empty glyph, an invalid or empty index has no effect.
<arg>
<|,"8<#1e>92">font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>descent <F2>font <F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>descent", Sort String = "font<#1e>descent">
<return>
<Tab><F3>Returns: <F2><HR>
descent <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the vertical <F2>descent<F0> of the <F2>font<F0> used
for interline spacing.<SP>The <F2>descent<F0> defines the nominal
distance in pixels from the baseline to<SP> the top of the next line
of text. Some font glyphs may actually extend<SP>beyond the font <F2>descent
<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>direction <F2>font<Tab> <F3>Function<Index, Doc = operations, "xlib:font<#1e>direction", Sort String = "font<#1e>direction">
<return>
<Tab><F3>Returns: <F2><HR>
direction <F3><#1f> Type <F0>draw<#1e>direction<F3>.
<para>
Returns the nominal drawing <F2>direction<F0> for the <F2>font<F0>.
The font drawing direction is only a hint that indicates whether the <F2>char<#1e>
width<F0> of most<SP>font glyphs is positive (<F6>:left<#1e>to<#1e>right
<F0> direction) or negative (<F6>:right<#1e>to<#1e>left<F0> direction).
Note that X does not provide any direct<SP>support for vertical text.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>display<F3> <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>display", Sort String = "font<#1e>display">
<return>
<Tab><F3>Returns: <F2><HR>
display <F3><#1f> Type <F0>display<F3>.
<para>
Returns the <F6>display<F0> object associated with the specified <F2>font
<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax,
Left Tab = -0.90/0 inches,
Right Tab = 7.50 inches>
font<#1e>equal <F2>font<#1e>1 font<#1e>2<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>equal", Sort String = "font<#1e>equal">
<para>
Returns true if the two arguments refer to the same server resource
and <F6>nil<F0> if they do not.
<arg>
font<#1e>1<F3>,<F0> font<#1e>2 <F3><#1f> The <F6>font<F3> objects.
<syntax0>
font<#1e>id <F2>font<F0><Tab><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>id", Sort String = "font<#1e>id">
<return>
<Tab><F3>Returns: <F2><HR>
id <F3><#1f> Type <F0>resource<#1e>id<F3>.
<para>
Returns the unique resource ID assigned to the specified <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>max<#1e>byte1 <F2>font <F0><Tab><F3>Function<F2><Index, Doc = operations, "xlib:font<#1e>max<#1e>byte1", Sort String = "font<#1e>max<#1e>byte1">
<return>
<Tab><F3>Returns:<F2> <HR>
max<#1e>byte1 <#1f> <F3>Type<F2> <F0>card8<F2>.
<para>
Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise,
if the<SP> <F2>font<F0> uses matrix index encoding, a value between
1 and 255 is<SP> returned that specifies the maximum value for the
most significant byte<SP>of font indexes.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>max<#1e>byte2 <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>max<#1e>byte2", Sort String = "font<#1e>max<#1e>byte2">
<return>
<Tab><F3>Returns:<F2> <HR>
max<#1e>byte2 <#1f> <F3>Type<F2> <F0>card8<F2>.
<para>
Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise,
if the<SP> <F2>font<F0> uses matrix index encoding, a value between
1 and 255 is<SP>returned that specifies the maximum value for the
least significant<SP> byte of font indexes.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
<|,"8<#1e>93">font<#1e>max<#1e>char <F2>font <F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>max<#1e>char", Sort String = "font<#1e>max<#1e>char">
<return>
<Tab><F3>Returns: <F2><HR>
index <F3><#1f> Type <F0>card16<F3>.
<para>
Returns the maximum valid value used for linear encoded indexes. This<SP>
function is not meaningful for fonts that use matrix index encoding.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>min<#1e>byte1 <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>min<#1e>byte1", Sort String = "font<#1e>min<#1e>byte1">
<return>
<Tab><F3>Returns: <F2><HR>
min<#1e>byte1 <F3><#1f> Type <F0>card8<F3>.
<para>
Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise,
if the<SP> <F2>font<F0> uses matrix index encoding, a value between
1 and 255 is<SP>returned that specifies the minimum value for the
most significant byte<SP> of font indexes.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>min<#1e>byte2 <F2>font<Tab> <F3>Function<Index, Doc = operations, "xlib:font<#1e>min<#1e>byte2", Sort String = "font<#1e>min<#1e>byte2">
<return>
<Tab><F3>Returns: <F2><HR>
min<#1e>byte2 <F3><#1f> Type <F0>card8<F3>.
<para>
Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise,
if the<SP> <F2>font<F0> uses matrix index encoding, a value between
1 and 255 is<SP> returned that specifies the minimum value for the
least significant<SP> byte of font indexes.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>min<#1e>char <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>min<#1e>char", Sort String = "font<#1e>min<#1e>char">
<return>
<Tab><F3>Returns: <F2><HR>
index <F3><#1f> Type <F0>card16<F3>.
<para>
Returns the minimum valid value used for linear encoded indexes. This<SP>
function is not meaningful for fonts that use matrix index encoding.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>name <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>name", Sort String = "font<#1e>name">
<return>
<Tab><F3>Returns: <F2><HR>
name <F3><#1f> Type <F0>string<F3> or <F0>null<F3>.
<para>
Returns the name of the <F2>font<F0>, or <F6>nil<F0> if <F2>font<F0>
is a pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>p <F2>font<F0><Tab><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>p", Sort String = "font<#1e>p">
<return>
<Tab><F3>Returns: <F2><HR>
font<#1e>p <F3><#1f> Type <F0>boolean<F3>.
<para>
Returns true if the argument is a <F6>font<F0> object and <F6>nil<F0>
otherwise.
<syntax0>
font<#1e>plist <F2>font<F0><Tab><F3><Tab>Function<Index, Doc = operations, "xlib:font<#1e>plist", Sort String = "font<#1e>plist">
<return>
<Tab><F3>Returns: <F2><HR>
plist <F3><#1f> Type <F0>list<F3>.
<para>
Returns and (with <F6>setf<F0>) sets the property list for the specified
<F2>font<F0>. This function provides a hook where extensions can
add data.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
<|,"8<#1e>94">font<#1e>properties <F2>font<F3><Tab>Function<Index, Doc = operations, "xlib:font<#1e>properties", Sort String = "font<#1e>properties">
<return>
<Tab><F3>Returns: <F2><HR>
properties <F3><#1f> Type <F0>list<F3>.
<para>
Returns the list of font <F2>properties<F0> recorded by the X server.
The<SP>returned list is a property list of keyword/value pairs. The
set of<SP> possible font property keywords is implementation<#1e>dependent.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
font<#1e>property <F2>font name<Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>property", Sort String = "font<#1e>property">
<return>
<Tab><F3>Returns: <F2><HR>
property <F3><#1f> Type <F0>int32<F3> or <F0>null<F3>.
<para>
Returns the value of the font <F2>property<F0> specified by the <F2>name
<F0> keyword.<SP>The property value, if it exists, is returned as
an uninterpreted 32<#1e>bit integer.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
name<F3> <#1f> A font property keyword.
<syntax0>
max<#1e>char<#1e>ascent <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:max<#1e>char<#1e>ascent", Sort String = "max<#1e>char<#1e>ascent">
<return>
<Tab><F3>Returns: <F2><HR>
ascent <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the maximum <F6>char<#1e>ascent<F0> value for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
max<#1e>char<#1e>attributes <F2>font<F3> <F0><Tab><F3>Function<Index, Doc = operations, "xlib:max<#1e>char<#1e>attributes", Sort String = "max<#1e>char<#1e>attributes">
<return>
<Tab><F3>Returns: <F2><HR>
attributes <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the maximum <F6>char<#1e>attributes<F0> value for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
max<#1e>char<#1e>descent <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:max<#1e>char<#1e>descent", Sort String = "max<#1e>char<#1e>descent">
<return>
<Tab><F3>Returns: <F2><HR>
descent <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the maximum <F6>char<#1e>descent<F0> value for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
max<#1e>char<#1e>left<#1e>bearing <F2>font<Tab><F3>Function<Index, Doc = operations, "xlib:max<#1e>char<#1e>left<#1e>bearing", Sort String = "max<#1e>char<#1e>left<#1e>bearing">
<return>
<Tab><F3>Returns: <F2><HR>
left<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the maximum <F6>char<#1e>left<#1e>bearing<F0> value for
all characters in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
max<#1e>char<#1e>right<#1e>bearing <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:max<#1e>char<#1e>right<#1e>bearing", Sort String = "max<#1e>char<#1e>right<#1e>bearing">
<return>
<Tab><F3>Returns: <F2><HR>
right<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the maximum <F6>char<#1e>right<#1e>bearing<F0> value for
all characters in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
max<#1e>char<#1e>width <F2>font<Tab> <F3>Function<Index, Doc = operations, "xlib:max<#1e>char<#1e>width", Sort String = "max<#1e>char<#1e>width">
<return>
<Tab><F3>Returns: <F2><HR>
width <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the maximum <F6>char<#1e>width <F0>value for all characters
in <F2>font<F0>.
<arg>
<|,"8<#1e>95">font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
min<#1e>char<#1e>ascent <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:min<#1e>char<#1e>ascent ", Sort String = "min<#1e>char<#1e>ascent ">
<return>
<Tab><F3>Returns: <F2><HR>
ascent <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the minimum <F6>char<#1e>ascent <F0>for all characters in <F2>font
<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
min<#1e>char<#1e>attributes <F2>font<Tab><F3>Function<Index, Doc = operations, "xlib:min<#1e>char<#1e>attributes", Sort String = "min<#1e>char<#1e>attributes">
<return>
<Tab><F3>Returns: <F2><HR>
attributes <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the minimum <F6>char<#1e>attributes <F0>for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
min<#1e>char<#1e>descent <F2>font <F0><Tab><F3>Function<Index, Doc = operations, "xlib:min<#1e>char<#1e>descent", Sort String = "min<#1e>char<#1e>descent">
<return>
<Tab><F3>Returns: <F2><HR>
descent <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the minimum <F6>char<#1e>descent <F0>for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
min<#1e>char<#1e>left<#1e>bearing <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:min<#1e>char<#1e>left<#1e>bearing", Sort String = "min<#1e>char<#1e>left<#1e>bearing">
<return>
<Tab><F3>Returns: <F2><HR>
left<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the minimum <F6>char<#1e>left<#1e>bearing <F0>for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
min<#1e>char<#1e>right<#1e>bearing <F2>font<F3><Tab> Function<Index, Doc = operations, "xlib:min<#1e>char<#1e>right<#1e>bearing", Sort String = "min<#1e>char<#1e>right<#1e>bearing">
<return>
<Tab><F3>Returns: <F2><HR>
right<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the minimum <F6>char<#1e>right<#1e>bearing <F0>for all characters
in <F2>font<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<syntax0>
min<#1e>char<#1e>width <F2>font<Tab><F3>Function<Index, Doc = operations, "xlib:min<#1e>char<#1e>width", Sort String = "min<#1e>char<#1e>width">
<return>
<Tab><F3>Returns: <F2><HR>
width <F3><#1f> Type <F0>int16<F3>.
<para>
Returns the minimum <F6>char<#1e>width <F0>for all characters in <F2>font
<F0>.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
<p1rule,
New Page = yes>
<|,"8<#1e>96"><Index, "font", "character attributes"><Index, "character", "attributes", To Named = p1rule>
<Frame,
Name = p1rule,
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p1stacked>
<F7>Character <Tab><Tab><F0>8.5<#04><F3>The following paragraphs
describe the CLX functions used to access
<p1para>
<F7>Attributes<F0><Tab><Tab><F3>the attributes of<SP>individual
font glyphs.
<syntax0>
char<#1e>ascent <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>ascent", Sort String = "char<#1e>ascent">
<return>
<Tab><F3>Returns: <F2><HR>
ascent <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
<para>
Returns the vertical distance in pixels from the baseline to the top
of<SP>the given font glyph. Returns <F6>nil<F0> if the index is
invalid or specifies an<SP>empty glyph, or if the <F2>font<F0> is
a pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
index<F3> <#1f> An <F6>int16<F3> font index.
<syntax0>
char<#1e>attributes <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>attributes", Sort String = "char<#1e>attributes">
<return>
<Tab><F3>Returns: <F2><HR>
attributes <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
<para>
Returns font<#1e>specific <F2>attributes<F0> of the given glyph.
The interpretation<SP> of such attributes is server<#1e>dependent.
Returns <F6>nil<F0> if the <F2>index<F0> is<SP>invalid or specifies
an empty glyph, or if the <F2>font<F0> is a pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
index<F3> <#1f> An <F6>int16<F3> font index.
<syntax0>
char<#1e>descent <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>descent", Sort String = "char<#1e>descent">
<return>
<Tab><F3>Returns: <F2><HR>
descent <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
<para>
Returns the vertical distance in pixels from the baseline to the bottom
of<SP> the given font glyph. Returns <F6>nil<F0> if the <F2>index<F0>
is invalid or specifies an<SP>empty glyph, or if the <F2>font<F0>
is a pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
index<F3> <#1f> An <F6>int16<F3> font index.
<syntax0>
char<#1e>left<#1e>bearing <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>left<#1e>bearing", Sort String = "char<#1e>left<#1e>bearing">
<return>
<Tab><F3>Returns: <F2><HR>
left<#1e>bearing <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
<para>
Returns the left side bearing of the given font glyph. If <F6>draw<#1e>glyph
<F0> is<SP>called with horizontal position <F2>x<F0>, the leftmost
pixel of the glyph<SP>is drawn at the position (+ <F2>x left<#1e>bearing<F0>)
. Returns <F6>nil<F0> if the<SP><F2>index<F0> is invalid or specifies
an empty glyph, or if the <F2>font<F0> is a<SP> pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
index<F3> <#1f> An <F6>int16<F3> font index.
<syntax0>
char<#1e>right<#1e>bearing <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>right<#1e>bearing", Sort String = "char<#1e>right<#1e>bearing">
<return>
<Tab><F3>Returns: <F2><HR>
right<#1e>bearing <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
<para>
Returns the right side bearing of the given font glyph. If <F6>draw<#1e>glyph
<F0><SP>is called with horizontal position <F2>x<F0>, the rightmost
pixel of the<SP>glyph is drawn at the position (+ <F2>x right<#1e>bearing
<F0>). Returns <F6>nil<F0> if<SP> the <F2>index<F0> is invalid
or specifies an empty glyph, or if the <F2>font<F0> is a<SP> pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F0>font<F3> object.
<|,"8<#1e>97">index<F3> <#1f> An <F6>int16<F3> font index.
<syntax0>
char<#1e>width <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>width", Sort String = "char<#1e>width">
<return>
<Tab><F3>Returns: <F2><HR>
width <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
<para>
Returns the <F2>width<F0> of the given font glyph. The <F2>width<F0>
is defined to be<SP> equal to (- <F2>right<#1e>bearing left<#1e>bearing<F0>).
Returns <F6>nil<F0> if the <F2>index<F0> is<SP>invalid or specifies
an empty glyph, or if the <F2>font<F0> is a pseudo<#1e>font.
<arg>
font<F3> <#1f> A <F6>font<F3> object.
index<F3> <#1f> An <F6>int16<F3> font index.
<p1rule>
<Index, "text", "size querying", To Named = sectitle><Index, "font", "querying text size", To Named = sectitle>
<Frame,
Name = p1rule,
Placement = At Anchor,
Width = 6.35 inches,
Height = 0.153 inches,
Vertical Alignment = 0.007 inches,
Shared Contents = yes>
<p1stacked,
Font = F3,
Left Tab = -1.70/0 inches>
<F7>Querying<Tab><F6>8.6<F0><#04>CLX defines functions to return
the size of text drawn in a specified<FJ>
<p1para,
Font = F3,
Left Tab = -1.70/0 inches>
<F7>Text Size<Tab><F0>font. See paragraph 6.7, Drawing Text, for
a description of the <F6>:translate<F0> function used by the functions
in the following paragraphs.
<syntax0>
text<#1e>extents<F3> <F2>font sequence<F3> &key (<F0>:start<F3>
0) <F0>:end :translate<F3><Tab>Function<Index, Doc = operations, "xlib:text<#1e>extents", Sort String = "text<#1e>extents">
<return,
Left Tab = -0.90/0/0.10/7.50 inches>
<Tab><F3>Returns:<HR>
<Tab><F2>width<F3> <#1f> Type <F0>int32<F3>.<HR>
<Tab><F2>ascent<F3> <#1f> Type <F0>int16<F3>.<HR>
<Tab><F2>descent<F3> <#1f> Type <F0>int16<F3>.<HR>
<Tab><F2>left<F3> <#1f> Type <F0>int32<F3>.<HR>
<Tab><F2>right<F3> <#1f> Type <F0>int32<F3>.<HR>
<Tab><F2>font<#1e>ascent<F3> <#1f> Type <F0>int16<F3>.<HR>
<Tab><F2>direction<F3> <#1f> Type <F0>draw<#1e>direction<F3>.<HR>
<Tab><F2>first<#1e>not<#1e>done<F3> <#1f> Type <F0>array<#1e>index<F3>
or <F0>null<F3>.
<para>
Returns the complete geometry of the given <F2>sequence<F0> when
drawn in the<SP>given <F2>fon<F0>t. The <F2>font<F0> can be a <F6>gcontext
<F0>, in which case the font<SP>attribute of the given graphics context
is used. <F6>:start<F0> and <F6>:end<F0> define<SP>the elements
of the <F2>sequence<F0> which are used.
The returned <F2>width<F0> is the total pixel width of the translated
character<SP>sequence. The returned <F2>ascent<F0> and <F2>descent<F0>
give the vertical ascent and<SP>descent for characters in the translated <F2>s
equence<F0>. The returned <F2>left<F0> gives the left bearing of
the leftmost character. The returned <F2>right<F0><SP>gives the
right bearing of the rightmost character. The returned<SP> <F2>font<#1e>ascent
<F0> and <F2>font<#1e>descent<F0> give the maximum vertical ascent
and<SP>descent for all characters in the <F2>fon<F0>t. If <F6>:translate
<F0> causes font<SP>changes, then <F2>font<#1e>ascent<F0> and <F2>font<#1e>
descent<F0> will be the maximums over all<SP> fonts used. The <F2>direction
<F0> returns the preferred draw direction for the<SP>font. If <F6>:translate
<F0> causes font changes, then the <F2>direction<F0> will be<SP><F6>nil
<F0>. The <F2>first<#1e>not<#1e>done<F0> value returned is <F6>nil<F0>
if all elements of the<SP><F2>sequence<F0> were successfully translated;
otherwise the index of the first<SP>untranslated element is returned.
<arg>
font<F3><SP><#1f> The font (or <F6>gcontext<F3>) used for measuring
characters.
sequence<F3> <#1f> A sequence of characters or other objects to be
translated into font indexes.
<F6>:start<F3>, <F6>:end <F3><#1f> Start and end indexes defining
the elements to draw.
<F6>:translate<F3> <#1f> A function to translate text to font indexes.
Default is<SP><F6>#'translate<#1e>default<F3>.
<syntax0>
<|,"8<#1e>98">text<#1e>width<F3> <F2>font sequence<F3> &key (<F0>:start<F3>
0) <F0>:end :translate<Tab><F3>Function<Index, Doc = operations, "xlib:text<#1e>width", Sort String = "text<#1e>width">
<return>
<Tab><F3>Returns:<HR>
<F2>width<F3> <#1f> Type <F0>int32<F3>.<HR>
<F2>first<#1e>not<#1e>done<F3> <#1f> Type <F0>array<#1e>index<F3>
or <F0>null<F3>.
<para>
Returns the total pixel width of the given <F2>sequence<F0> when
drawn in the<SP>given <F2>font<F0>. The <F2>font<F0> can be a <F6>gcontext
<F0>, in which case the font<SP>attribute of the given graphics context
is used. <F6>:start<F0> and <F6>:end<F0> define the elements of
the <F2>sequence<F0> which are used. The second value returned<SP>is <F6>nil
<F0> if all elements of the <F2>sequence<F0> were successfully
translated;<SP>otherwise the index of the first untranslated element
is returned.
<arg>
font<SP><F3> <#1f> The font (or <F6>gcontext<F3>) used for measuring
characters.
sequence<F3> <#1f> A sequence of characters or other objects to be
translated into font indexes.
<F6>:start<F3>, <F6>:end<F3> <#1f> Start and end indexes defining
the elements to draw.
<F6>:translate<F3> <#1f> A function to translate text to font indexes.
Default is<SP><F6>#'translate<#1e>default<F3>.