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:
Interleaf document  |  1989-10-18  |  42.9 KB  |  1,580 lines

  1. <!OPS, Version = 5.2>
  2.  
  3. <!Document,
  4.     Print Rev Bars =    no,
  5.     Final Output Device =    "ps",
  6.     Default Printer =    "nearest-adps">
  7.  
  8. <!Font Definitions,
  9.     F2 = Times 10 Italic,
  10.     F3 = Times 10,
  11.     F4 = Times 8 Italic,
  12.     F5 = Times 18 Bold,
  13.     F6 = Times 10 Bold,
  14.     F7 = Times 12 Bold,
  15.     F8 = Symbol_B 8>
  16.  
  17. <!Page,
  18.     Bottom Margin =        1 inches,
  19.     Left Margin =        1 inches,
  20.     Right Margin =        1.15 inches,
  21.     First Page =        Right,
  22.     Starting Page # =     Inherit,
  23.     Page # Prefix =        "8<#1e>",
  24.     Hyphenation =        on,
  25.     Consecutive Hyphens =    2,
  26.     Vert. Just. =        off>
  27.  
  28. <!Autonumber Stream, List, 2,
  29.     Level 2 Suffix =    ,
  30.     Level 2 Starting Value = 0,
  31.     Level 2 Show =        no>
  32.  
  33. <!Autonumber Stream, Outline, 3,
  34.     Level 1 Symbol Type =    UPPER ROMAN,
  35.     Level 2 Symbol Type =    UPPER ALPHA>
  36.  
  37. <!Autonumber Stream, figure, 2,
  38.     Level 1 Prefix =    "Figure ",
  39.     Level 1 Suffix =    "<#1e>",
  40.     Level 1 Show =        no,
  41.     Level 2 Suffix =    ,
  42.     Level 2 Starting Value = 0,
  43.     Level 2 Show =        no>
  44.  
  45. <!Autonumber Stream, figurelet, 2,
  46.     Level 1 Symbol Type =    UPPER ALPHA,
  47.     Level 1 Prefix =    "Figure ",
  48.     Level 1 Suffix =    "<#1e>",
  49.     Level 1 Show =        no,
  50.     Level 2 Suffix =    "<#04>">
  51.  
  52. <!Autonumber Stream, invisible, 1,
  53.     Level 1 Suffix =    ,
  54.     Level 1 Show =        no>
  55.  
  56. <!Autonumber Stream, item, 2,
  57.     Level 2 Symbol Type =    LOWER ALPHA,
  58.     Level 2 Trail =        yes>
  59.  
  60. <!Autonumber Stream, paralet, 4,
  61.     Level 1 Symbol Type =    UPPER ALPHA,
  62.     Level 1 Suffix =    ,
  63.     Level 1 Show =        no,
  64.     Level 2 Prefix =    .,
  65.     Level 2 Suffix =    ,
  66.     Level 3 Prefix =    .,
  67.     Level 3 Suffix =    ,
  68.     Level 4 Prefix =    .,
  69.     Level 4 Suffix =    >
  70.  
  71. <!Autonumber Stream, paranum, 4,
  72.     Level 1 Suffix =    ,
  73.     Level 1 Show =        no,
  74.     Level 2 Prefix =    .,
  75.     Level 2 Suffix =    ,
  76.     Level 3 Prefix =    .,
  77.     Level 3 Suffix =    ,
  78.     Level 4 Prefix =    .,
  79.     Level 4 Suffix =    >
  80.  
  81. <!Autonumber Stream, table, 2,
  82.     Level 1 Prefix =    "Table ",
  83.     Level 1 Suffix =    "<#1e>",
  84.     Level 1 Show =        no,
  85.     Level 2 Suffix =    >
  86.  
  87. <!Autonumber Stream, tablelet, 2,
  88.     Level 1 Symbol Type =    UPPER ALPHA,
  89.     Level 1 Prefix =    "Table ",
  90.     Level 1 Suffix =    "<#1e>",
  91.     Level 1 Show =        no,
  92.     Level 2 Suffix =    "<#04>">
  93.  
  94. <!Class, arg,
  95.     Bottom Margin =        0.08 inches,
  96.     Left Margin =        1.85 inches,
  97.     First Indent =        -0.25 inches,
  98.     Line Spacing =        1.121 lines,
  99.     Font =            F2,
  100.     Left Tab =        -0.25/0 inches>
  101.  
  102. <!Class, bullet,
  103.     Bottom Margin =        0.153 inches,
  104.     Left Margin =        1.85 inches,
  105.     First Indent =        -0.25 inches,
  106.     Line Spacing =        1.121 lines,
  107.     Font =            F3,
  108.     Allow Page Break Within = no,
  109.     Left Tab =        -0.50/0 inches>
  110.  
  111. <!Class, caption,
  112.     Top Margin =        0.07 inches,
  113.     Bottom Margin =        0.07 inches,
  114.     Line Spacing =        1.100 lines,
  115.     Font =            F4>
  116.  
  117. <!Class, fig,
  118.     Top Margin =        0.07 inches,
  119.     Bottom Margin =        0.07 inches,
  120.     Line Spacing =        1.100 lines,
  121.     Alignment =        Left,
  122.     Font =            F5>
  123.  
  124. <!Class, p1para,
  125.     Bottom Margin =        0.153 inches,
  126.     Left Margin =        1.60 inches,
  127.     First Indent =        -1.60 inches,
  128.     Line Spacing =        1.121 lines,
  129.     Font =            F6,
  130.     Allow Page Break Within = no,
  131.     Left Tab =        -1.60/-0.17/0 inches>
  132.  
  133. <!Class, p1rule,
  134.     Bottom Margin =        0 inches,
  135.     Line Spacing =        1 lines,
  136.     Font =            F3,
  137.     Hyphenation =        off,
  138.     Allow Page Break After = no,
  139.     Left Tab =        0/0.75*13 inches>
  140.  
  141. <!Class, p1stacked,
  142.     Bottom Margin =        0 inches,
  143.     Left Margin =        1.60 inches,
  144.     First Indent =        -1.60 inches,
  145.     Line Spacing =        1 lines,
  146.     Font =            F6,
  147.     Allow Page Break Within = no,
  148.     Allow Page Break After = no,
  149.     Left Tab =        -1.60/-0.17/0 inches>
  150.  
  151. <!Class, para,
  152.     Bottom Margin =        0.153 inches,
  153.     Left Margin =        1.60 inches,
  154.     Line Spacing =        1.121 lines,
  155.     Font =            F3,
  156.     Allow Page Break Within = no,
  157.     Left Tab =        0/0.75*13 inches>
  158.  
  159. <!Class, return,
  160.     Bottom Margin =        0.077 inches,
  161.     Left Margin =        1.60 inches,
  162.     First Indent =        -0.90 inches,
  163.     Line Spacing =        1.121 lines,
  164.     Alignment =        Left,
  165.     Font =            F6,
  166.     Hyphenation =        off,
  167.     Allow Page Break Within = no,
  168.     Allow Page Break After = no,
  169.     Left Tab =        -0.90/0 inches,
  170.     Right Tab =        7.50 inches>
  171.  
  172. <!Class, secno,
  173.     Top Margin =        0.07 inches,
  174.     Bottom Margin =        0.07 inches,
  175.     Line Spacing =        1.100 lines,
  176.     Alignment =        Left,
  177.     Font =            F5,
  178.     Autonumber Name =    paranum>
  179.  
  180. <!Class, secrule,
  181.     Bottom Margin =        0 inches,
  182.     Line Spacing =        1 lines,
  183.     Font =            F3,
  184.     Hyphenation =        off,
  185.     Allow Page Break After = no,
  186.     Left Tab =        0/0.75*13 inches,
  187.     Autonumber Name =    table>
  188.  
  189. <!Class, sectitle,
  190.     Bottom Margin =        0 inches,
  191.     Line Spacing =        1 lines,
  192.     Alignment =        Right,
  193.     Font =            F5,
  194.     Hyphenation =        off,
  195.     New Page =        yes,
  196.     Left Tab =        0/0.75*13 inches>
  197.  
  198. <!Class, syntax,
  199.     Bottom Margin =        0.077 inches,
  200.     Left Margin =        1.60 inches,
  201.     First Indent =        -0.90 inches,
  202.     Line Spacing =        1.121 lines,
  203.     Alignment =        Left,
  204.     Font =            F6,
  205.     Hyphenation =        off,
  206.     Allow Page Break Within = no,
  207.     Allow Page Break After = no,
  208.     Left Tab =        -0.90/0 inches,
  209.     Right Tab =        8 inches>
  210.  
  211. <!Class, syntax0,
  212.     Bottom Margin =        0 inches,
  213.     Left Margin =        1.60 inches,
  214.     First Indent =        -0.90 inches,
  215.     Line Spacing =        1.121 lines,
  216.     Alignment =        Left,
  217.     Font =            F6,
  218.     Hyphenation =        off,
  219.     Allow Page Break Within = no,
  220.     Allow Page Break After = no,
  221.     Left Tab =        -0.90/0 inches,
  222.     Right Tab =        8 inches>
  223.  
  224. <!Class, "table",
  225.     Top Margin =        0.07 inches,
  226.     Bottom Margin =        0.07 inches,
  227.     Line Spacing =        1.100 lines,
  228.     Font =            F6,
  229.     Autonumber Name =    table>
  230.  
  231. <!Class, title,
  232.     Top Margin =        0.07 inches,
  233.     Bottom Margin =        0.07 inches,
  234.     Line Spacing =        1.100 lines,
  235.     Alignment =        Right,
  236.     Font =            F5,
  237.     TOC Doc Name =        TOC>
  238.  
  239. <!Master Frame,
  240.     Name =            "At Anchor",
  241.     Placement =        At Anchor,
  242.     Width =            0.41 inches,
  243.     Height =        0.137 inches,
  244.     Vertical Alignment =    0.03 inches,
  245.     Diagram =
  246. V4,
  247. (g9,32767,0
  248.  (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
  249.   667,6))>
  250.  
  251. <!Master Frame,
  252.     Name =            p1rule,
  253.     Placement =        At Anchor,
  254.     Width =            6.35 inches,
  255.     Height =        0.153 inches,
  256.     Vertical Alignment =    0.007 inches,
  257.     Shared Contents =    yes,
  258.     Diagram =
  259. V4,
  260. (g9,1,0
  261.  (v4,1,0,0.006667,0.066723,6.326667,0.066611,17,2,0)
  262.  (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
  263.   667,6))>
  264.  
  265. <First Page Header, Frame =
  266. V4,
  267. (g9,0,0
  268.  (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
  269.   667,6))>
  270.  
  271. <Right Page Header, Frame =
  272. V4,
  273. (g9,1,0
  274.  (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,
  275.   102,1101,2,
  276. <caption,
  277.     Alignment =        Right>
  278.  
  279. Fonts and Characters
  280.  
  281. <End Text>)
  282.  (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
  283.   667,6))>
  284.  
  285. <Left Page Header, Frame =
  286. V4,
  287. (g9,1,0
  288.  (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
  289.   2,1101,2,
  290. <caption>
  291.  
  292. Fonts and Characters
  293.  
  294. <End Text>)
  295.  (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
  296.   667,6))>
  297.  
  298. <Right Page Footer, Frame =
  299. V4,
  300. (g9,1,0
  301.  (t8,1,4,6.333333,0.266667,2,17,@nntimsps10b,\240)
  302.  (t8,2,4,0.006667,0.266667,0,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  303.  (v4,3,0,0,0.066667,6.333333,0.066554,17,2,0)
  304.  (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
  305.   667,6))>
  306.  
  307. <Left Page Footer, Frame =
  308. V4,
  309. (g9,1,0
  310.  (t8,1,4,0,0.266667,0,17,@nntimsps10b,\240)
  311.  (t8,2,4,6.333333,0.266667,2,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  312.  (v4,3,0,0.026667,0.066667,6.333333,0.066554,17,2,0)
  313.  (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
  314.   667,6))>
  315.  
  316. <sectitle,
  317.     Allow Page Break Within = no,
  318.     Allow Page Break After = no>
  319.  
  320. <|,"8<#1e>89">
  321. <Frame,
  322.     Name =            "At Anchor",
  323.     Placement =        At Anchor,
  324.     Width =            4.72 inches,
  325.     Height =        0.94 inches,
  326.     Vertical Alignment =    0.03 inches,
  327.     Diagram =
  328. V4,
  329. (g9,1,0
  330.  (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
  331.   ,102,1101,3,
  332. <title>
  333.  
  334. FONTS AND CHARACTERS
  335.  
  336. <End Text>)
  337.  (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
  338.   667,6))>
  339. <Frame,
  340.     Name =            "At Anchor",
  341.     Placement =        At Anchor,
  342.     Width =            1.626 inches,
  343.     Height =        0.938 inches,
  344.     Vertical Alignment =    0 inches,
  345.     Diagram =
  346. V4,
  347. (g9,1,0
  348.  (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
  349.   2,1101,3,
  350. <secno,
  351.     TOC Doc Name =        TOC>
  352.  
  353. <Autonum, paranum, 1, First = Yes>
  354.  
  355. <End Text>)
  356.  (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
  357.   2,1101,3,
  358. <"table">
  359.  
  360. <Autonum, table, 1, First = Yes>
  361.  
  362. <End Text>)
  363.  (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
  364.   1,3,
  365. <fig,
  366.     Alignment =        Both,
  367.     Font =            F6,
  368.     Autonumber Name =    figure>
  369.  
  370. <Autonum, figure, 1, First = Yes>
  371.  
  372. <End Text>)
  373.  (g9,5,0
  374.    (p7,5,8,19
  375.      (g9,5,0
  376.        (g9,5,0
  377.          (v4,5,0,0.266667,0,1.6,0,17,1,0)
  378.          (v4,6,0,1.6,0,1.6,0.933333,17,1,0)
  379.          (v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0)
  380.          (v4,8,0,0.266667,0.933333,0.266667,0,17,1,0))))
  381.    (g9,10,8
  382.      (g9,10,1032
  383.        (p7,10,8,13
  384.          (g9,10,0
  385.            (g9,10,0
  386.              (v4,10,0,1.344561,0.934816,1.030176,0.934816,17,1,0)
  387.              (v4,11,32,1.030176,0.934816,1.097545,0.784692,17,0,0)
  388.              (v4,12,0,1.097545,0.784692,1.277192,0.784692,17,1,0)
  389.              (v4,13,0,1.277192,0.784692,1.277192,0.615801,17,1,0)
  390.              (v4,14,0,1.277192,0.615801,1.097545,0.615801,17,1,0)
  391.              (v4,15,32,1.097545,0.615801,1.097545,0.446914,17,0,0)
  392.              (v4,16,0,1.097545,0.446914,1.277192,0.446914,17,1,0)
  393.              (v4,17,0,1.277192,0.446914,1.277192,0.296785,17,1,0)
  394.              (v4,18,0,1.277192,0.296785,1.097545,0.296785,17,1,0)
  395.              (v4,19,32,1.097545,0.296785,1.030176,0.146666,17,0,0)
  396.              (v4,20,0,1.030176,0.146666,1.344561,0.146666,17,1,0)
  397.              (v4,21,0,1.344561,0.146666,1.4793,0.259257,17,1,0)
  398.              (v4,22,0,1.4793,0.259257,1.4793,0.428148,17,1,0)
  399.              (v4,23,0,1.4793,0.428148,1.367019,0.521973,17,1,0)
  400.              (v4,24,0,1.367019,0.521973,1.4793,0.615801,17,1,0)
  401.              (v4,25,0,1.4793,0.615801,1.4793,0.822221,17,1,0)
  402.              (v4,26,0,1.4793,0.822221,1.344561,0.934816,17,1,0))))
  403.        (p7,28,8,13
  404.          (g9,28,0
  405.            (g9,28,0
  406.              (v4,28,0,1.030176,0.934816,0.895439,0.822221,17,1,0)
  407.              (v4,29,0,0.895439,0.822221,0.895439,0.615801,17,1,0)
  408.              (v4,30,0,0.895439,0.615801,1.007718,0.521973,17,1,0)
  409.              (v4,31,0,1.007718,0.521973,0.895439,0.428148,17,1,0)
  410.              (v4,32,0,0.895439,0.428148,0.895439,0.259257,17,1,0)
  411.              (v4,33,0,0.895439,0.259257,1.030176,0.146666,17,1,0)
  412.              (v4,34,32,1.030176,0.146666,1.097545,0.296785,17,0,0)
  413.              (v4,35,0,1.097545,0.296785,1.097545,0.446914,17,1,0)
  414.              (v4,36,32,1.097545,0.446914,1.097545,0.615801,17,0,0)
  415.              (v4,37,0,1.097545,0.615801,1.097545,0.784692,17,1,0)
  416.              (v4,38,32,1.097545,0.784692,1.030176,0.934816,17,0,0)))))
  417.      (g9,39,2048
  418.        (v4,39,33,0.82807,0.146666,0.82807,0.146666,17,0,0)
  419.        (v4,40,33,0.82807,1.16,0.82807,1.16,17,0,0)
  420.        (v4,41,33,1.546667,1.16,1.546667,1.16,17,0,0)
  421.        (v4,42,33,1.546667,0.146666,1.546667,0.146666,17,0,0))))
  422.  (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
  423.   667,6))>
  424.  
  425. <secrule,
  426.     Allow Page Break Within = no,
  427.     Allow Page Break After = yes,
  428.     Autonumber Name =    >
  429.  
  430. <Index, "character", To Named = sectitle><Index, "font", To Named = sectitle>
  431. <Frame,
  432.     Name =            "At Anchor",
  433.     Placement =        At Anchor,
  434.     Width =            6.35 inches,
  435.     Height =        0.153 inches,
  436.     Vertical Alignment =    0.007 inches,
  437.     Diagram =
  438. V4,
  439. (g9,1,0
  440.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  441.  (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
  442.   667,6))>
  443.  
  444. <p1para,
  445.     Font =            F3,
  446.     Left Tab =        -1.70/0 inches>
  447.  
  448. <F7>Introduction<Tab><F6>8.1<#04><F0>An X server maintains a set 
  449. of fonts used in the text operations requested<SP> by client programs. 
  450. An X font is an array of character bit maps (or <F2><Index, "glyphs">glyphs
  451. <F0>) indexed by integer codes. In fact, font glyphs can also represent<SP>cur
  452. sor shapes or other images and are not limited to character images. 
  453. X<SP> supports both linear and matrix encoding of font indexes. With 
  454. linear<SP>encoding, a font index is interpreted as a single 16<#1e>bit 
  455. integer index into<SP>a one<#1e>dimensional array of glyphs. With 
  456. matrix encoding, a font index is<SP>interpreted as a pair of 8<#1e>bit 
  457. integer indexes into a two<#1e>dimensional array<SP>of glyphs. The 
  458. type of index encoding used is font<#1e>dependent.
  459.  
  460. <para>
  461.  
  462. In order to access or use a font, a client program must first open 
  463. it using<SP> the <F6>open<#1e>font<F0> function, sending a font 
  464. name string as an identifier.<SP><F6>open<#1e>font<F0> creates a 
  465. CLX <F6>font<F0> object used to refer to the font in<SP>subsequent 
  466. functions. Afterward, calling <F6>open<#1e>font<F0> with the same 
  467. font name<SP>returns the same <F6>font<F0> object. When a font is 
  468. no longer in use, a client<SP> program can call <F6>close<#1e>font<F0> 
  469. to destroy the <F6>font<F0> object.
  470.  
  471. A font has several attributes which describe its geometry and its 
  472. glyphs.<SP>CLX provides functions to return the attributes of a font, 
  473. as well functions<SP>for accessing the attributes of individual font 
  474. glyphs. Glyph attributes<SP>are referred to as <Index, "font", "character attributes"><F2><Index, "character", "attributes">
  475. character attributes<F0>, since characters are the most<SP>common 
  476. type of font glyphs. A font also has a property list of values<SP>recorded 
  477. by the X server. However, the set of possible font properties and<SP>their 
  478. values are not standardized and are implementation<#1e>dependent. 
  479. Typically, CLX maintains a cache of font and character attributes, 
  480. in<SP>order to minimize server requests. However, the font cache mechanism 
  481. is implementation<#1e>dependent and cannot be controlled by the client. 
  482. In some<SP>cases, CLX may create a <F2>pseudo<#1e>font<F0> object 
  483. solely for the purpose of<SP>accessing font attributes. A pseudo<#1e>font 
  484. is represented by a special type<SP>of <F6>font<F0> object that 
  485. cannot be used in a <F6>gcontext<F0>. If necessary, CLX can<SP>automatically 
  486. convert a pseudo<#1e>font into a true font, if the name of the<SP>pseudo<#1e>fo
  487. nt is known.
  488.  
  489. The set of available fonts is server<#1e>dependent; that is, font 
  490. names are not<SP> guaranteed to be portable from one server to the 
  491. next. However, the public X<SP>implementation from MIT includes a 
  492. set of fonts that are typically available<SP>with most X servers.
  493.  
  494. The following paragraphs describe CLX functions to:
  495.  
  496. <bullet>
  497.  
  498. <F8>w<Tab><F0>Open and close fonts.
  499.  
  500. <F8>w<Tab><F0>List available fonts. 
  501.  
  502. <F8>w<Tab><F0>Access font attributes. 
  503.  
  504. <F8>w<Tab><F0>Access character attributes. 
  505.  
  506. <F8>w<Tab><F0>Return the size of a text string. 
  507.  
  508. <p1rule>
  509.  
  510. <Index, "font", "closing"><Index, "font", "opening", To Named = p1rule>
  511. <Frame,
  512.     Name =            p1rule,
  513.     Placement =        At Anchor,
  514.     Width =            6.35 inches,
  515.     Height =        0.153 inches,
  516.     Vertical Alignment =    0.007 inches,
  517.     Shared Contents =    yes>
  518.  
  519. <p1para,
  520.     Bottom Margin =        0.11 inches,
  521.     Font =            F3,
  522.     Left Tab =        -1.70/0 inches>
  523.  
  524. <F7>Opening Fonts<Tab><F6>8.2<#04><F0>The following paragraphs 
  525. discuss the CLX functions for opening and closing fonts.
  526.  
  527. <syntax0>
  528.  
  529. <|,"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">
  530.  
  531. <return>
  532.  
  533. <Tab><F3>Returns: <F2><HR>
  534.   font <F3><#1f> Type <F0>font<F3>.
  535.  
  536. <para,
  537.     Bottom Margin =        0.11 inches>
  538.  
  539. Opens the font with the given <F2>name<F0> and returns a <F6>font<F0> 
  540. object. The name<SP> string should contain only ISO Latin<#1e>1 characters; 
  541. case is not significant.
  542.  
  543. <arg>
  544.  
  545.  display<F3> <#1f> A <F6>display<F3> object.
  546.  
  547.  name<F3> <#1f> A font name string.
  548.  
  549. <syntax>
  550.  
  551. close<#1e>font <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:close<#1e>font", Sort String = "close<#1e>font">
  552.  
  553. <para,
  554.     Bottom Margin =        0.11 inches>
  555.  
  556. Deletes the association between the resource ID and the <F2>font<F0>. 
  557. The <F2>font<F0> is freed when no other server resource references 
  558. it. The <F2>font<F0> can be unloaded by the X server if this is 
  559. the last reference to the <F2>font <F0>by any client. In any case, 
  560. the <F2>font<F0> should never again be referenced because its resource 
  561. ID is destroyed. This might not generate a protocol request if the <F2>font
  562. <F0> is reference<#1e>counted locally or if it is a pseudo<#1e>font.
  563.  
  564. <arg>
  565.  
  566. font <F3><#1f> A <F6>font<F3> object.
  567.  
  568. <syntax,
  569.     Left Tab =        -0.90/0 inches,
  570.     Right Tab =        7.50 inches>
  571.  
  572. 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">
  573.  
  574. <para,
  575.     Bottom Margin =        0.11 inches>
  576.  
  577. Discards any state that can be re<#1e>obtained with <F6>open<#1e>font<F0>. 
  578. This is simply a performance hint for memory<#1e>limited systems.
  579.  
  580. <arg>
  581.  
  582. font <F3><#1f> A <F6>font<F3> object.
  583.  
  584. <p1rule>
  585.  
  586. <Index, "font", "listing", To Named = p1rule>
  587. <Frame,
  588.     Name =            p1rule,
  589.     Placement =        At Anchor,
  590.     Width =            6.35 inches,
  591.     Height =        0.153 inches,
  592.     Vertical Alignment =    0.007 inches,
  593.     Shared Contents =    yes>
  594.  
  595. <p1para,
  596.     Bottom Margin =        0.11 inches,
  597.     Font =            F3,
  598.     Left Tab =        -1.70/0 inches>
  599.  
  600. <F7>Listing Fonts<Tab><F6>8.3<#04><F0>The following paragraphs 
  601. describe CLX functions that return fonts or font names that match<SP>a 
  602. given pattern string. Such pattern strings should contain only ISO<SP>Latin<#1e>
  603. 1 characters; case is not significant. The following pattern<SP>characters 
  604. can be used for <F2>wildcard<F0> matching:
  605.  
  606. <para,
  607.     Bottom Margin =        0.12 inches>
  608.  
  609. #\* <#1f> Matches any sequence of zero or more characters.
  610.  
  611. #\? <#1f> Matches any single character.
  612.  
  613. For example, the pattern <#7f>T?mes Roman" matches the name <#7f>Times 
  614. Roman" but not<SP> the name <#7f>Thames Roman". However, the pattern 
  615. <#7f>T*mes Roman" matches both<SP> names.
  616.  
  617. <syntax0>
  618.  
  619. font<#1e>path <F2>display<F3> &key (<F0>:result<#1e>type 'list<F3>)<F0><Tab>
  620. <F3>Function<Index, Doc = operations, "xlib:font<#1e>path", Sort String = "font<#1e>path">
  621.  
  622. <return>
  623.  
  624. <Tab><F3>Returns: <F2><HR>
  625.   paths<F3> <#1f> Type <F0>sequence<F3> of either <F0>string<F3> 
  626. or <F0>pathname<F3>.
  627.  
  628. <para,
  629.     Bottom Margin =        0.11 inches>
  630.  
  631. Returns a <F6>list<F0> (by default) of names containing the current 
  632. search path for fonts. With <F6>setf<F0>, this function sets the 
  633. search path for font lookup. There is only one search path per server, 
  634. not one per client. The interpretation of the names is server<#1e>dependent, 
  635. but they are intended to specify directories to be searched in the 
  636. order listed.
  637.  
  638. Setting the path to the empty list restores the default path defined 
  639. for the server. Note that as a side<#1e>effect of executing this request, 
  640. the server is guaranteed to flush all cached information about fonts 
  641. for which there are currently no explicit resource IDs allocated.
  642.  
  643. <arg>
  644.  
  645. display<F3> <#1f> A <F6>display<F3> object.
  646.  
  647. <F6>:result<#1e>type<F3> <#1f> Specifies the type of resulting sequence.
  648.  
  649. <syntax0>
  650.  
  651. <|,"8<#1e>91">list<#1e>font<#1e>names <F2>display pattern <F3>&key (<F0>:max<#1e>fon
  652. ts<F3> 65535) (<F0>:result<#1e>type<F3> <F0>'list<F3>)<F0><Tab><F3>Funct
  653. ion<Index, Doc = operations, "xlib:list<#1e>font<#1e>names", Sort String = "list<#1e>font<#1e>names">
  654.  
  655. <return>
  656.  
  657. <Tab><F3>Returns: <F2><HR>
  658.   font<#1e>name<F3> <#1f> Type <F0>sequence<F3> of <F0>string<F3>.
  659.  
  660. <para>
  661.  
  662. Returns a sequence of strings containing the font names that match 
  663. the<SP><F2>pattern<F0>. The fonts available are determined by the 
  664. font search path; see<SP><F6>font<#1e>path<F0>). The maximum number 
  665. of font names returned is determined by<SP> <F6>:max<#1e>fonts<F0>.
  666.  
  667. <arg>
  668.  
  669. display <#1f> <F3>A <F6>display<F3> object.
  670.  
  671. pattern <#1f> <F3>A string used to match font names. Only font names 
  672. that match<SP> the pattern are returned.
  673.  
  674. <F6>:max<#1e>fonts<F0> <#1f> <F3>The maximum number of font names 
  675. returned. Default is 65535.
  676.  
  677. <F6>:result<#1e>type<F0> <#1f> <F3>The type of sequence to return. 
  678. Default is '<F6>list<F3>.
  679.  
  680. <syntax0>
  681.  
  682. list<#1e>fonts <F2>display pattern<F3> &key (<F0>:max<#1e>fonts<F3> 
  683. 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">
  684.  
  685. <return>
  686.  
  687. <Tab><F3>Returns: <F2><HR>
  688.   font <F3><#1f> Type <F0>sequence<F3> of <F0>font<F3>.
  689.  
  690. <para>
  691.  
  692. Returns a sequence of pseudo<#1e>fonts corresponding to the available 
  693. fonts<SP> whose names match the <F2>pattern<F0>. The fonts available 
  694. are determined by the<SP> font search path; see <F6>font<#1e>path<F0>). 
  695. The maximum number of <F6>font<F0> objects<SP> returned is determined 
  696. by <F6>:max<#1e>fonts<F0>.
  697.  
  698. <arg>
  699.  
  700. display <#1f> <F3>A <F6>display<F3> object.
  701.  
  702. pattern <#1f> <F3>A string used to match font names. Only fonts whose 
  703. name<SP> matches the pattern are returned.
  704.  
  705. <F6>:max<#1e>fonts<F0> <#1f> <F3>The maximum number of fonts returned. 
  706. Default is 65535.
  707.  
  708. <F6>:result<#1e>type<F0> <#1f> <F3>The type of sequence to return. 
  709. Default is <F6>'list<F3>.
  710.  
  711. <p1rule>
  712.  
  713. <Index, "font", "attributes", To Named = p1rule>
  714. <Frame,
  715.     Name =            p1rule,
  716.     Placement =        At Anchor,
  717.     Width =            6.35 inches,
  718.     Height =        0.153 inches,
  719.     Vertical Alignment =    0.007 inches,
  720.     Shared Contents =    yes>
  721.  
  722. <p1para,
  723.     Font =            F3,
  724.     Left Tab =        -1.70/0 inches>
  725.  
  726. <F7>Font Attributes<Tab><F6>8.4<#04><F0>The following paragraphs 
  727. describe the CLX functions used to access font attributes.
  728.  
  729. <syntax0>
  730.  
  731. 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">
  732.  
  733. <return>
  734.  
  735. <Tab><F3>Returns: <F2><HR>
  736.   exists<#1e>p <F3><#1f> Type <F0>boolean<F3>.
  737.  
  738. <para>
  739.  
  740. Returns true if glyphs exist for all indexes in the range returned 
  741. by <F6>font<#1e>min<#1e>char<F0> and <F6>font<#1e>max<#1e>char<F0>. 
  742. Returns <F6>nil<F0> if an index in the range<SP>corresponds to empty 
  743. glyph.
  744.  
  745. <arg>
  746.  
  747. font<F3> <#1f> A <F6>font<F3> object.
  748.  
  749. <syntax0>
  750.  
  751. font<#1e>ascent <F2>font<Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>ascent", Sort String = "font<#1e>ascent">
  752.  
  753. <return>
  754.  
  755. <Tab><F3>Returns: <F2><HR>
  756.   ascent <F3><#1f> Type <F0>int16<F3>.
  757.  
  758. <para>
  759.  
  760. Returns the vertical <F2>ascent<F0> of the <F2>font<F0> used for 
  761. interline spacing. The<SP><F2>ascent<F0> defines the nominal distance 
  762. in pixels from the baseline to the<SP> bottom of the previous line 
  763. of text. Some font glyphs may actually extend<SP>beyond the font <F2>ascent
  764. <F0>.
  765.  
  766. <arg>
  767.  
  768. font <#1f> <F3>A <F6>font<F3> object.
  769.  
  770. <syntax0>
  771.  
  772. 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">
  773.  
  774. <return>
  775.  
  776. <Tab><F3>Returns: <F2><HR>
  777.   index <F3><#1f> Type <F0>card16<F3>.
  778.  
  779. <para>
  780.  
  781. Returns the <F2>index<F0> of the glyph drawn when an invalid or 
  782. empty glyph<SP>index is specified. If the default index specifies 
  783. an invalid or<SP>empty glyph, an invalid or empty index has no effect.
  784.  
  785. <arg>
  786.  
  787. <|,"8<#1e>92">font<F3> <#1f> A <F6>font<F3> object.
  788.  
  789. <syntax0>
  790.  
  791. font<#1e>descent <F2>font <F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>descent", Sort String = "font<#1e>descent">
  792.  
  793. <return>
  794.  
  795. <Tab><F3>Returns: <F2><HR>
  796.   descent <F3><#1f> Type <F0>int16<F3>.
  797.  
  798. <para>
  799.  
  800. Returns the vertical <F2>descent<F0> of the <F2>font<F0> used 
  801. for interline spacing.<SP>The <F2>descent<F0> defines the nominal 
  802. distance in pixels from the baseline to<SP> the top of the next line 
  803. of text. Some font glyphs may actually extend<SP>beyond the font <F2>descent
  804. <F0>.
  805.  
  806. <arg>
  807.  
  808. font<F3> <#1f> A <F6>font<F3> object.
  809.  
  810. <syntax0>
  811.  
  812. font<#1e>direction <F2>font<Tab> <F3>Function<Index, Doc = operations, "xlib:font<#1e>direction", Sort String = "font<#1e>direction">
  813.  
  814. <return>
  815.  
  816. <Tab><F3>Returns: <F2><HR>
  817.   direction <F3><#1f> Type <F0>draw<#1e>direction<F3>.
  818.  
  819. <para>
  820.  
  821. Returns the nominal drawing <F2>direction<F0> for the <F2>font<F0>. 
  822. The font drawing direction is only a hint that indicates whether the <F2>char<#1e>
  823. width<F0> of most<SP>font glyphs is positive (<F6>:left<#1e>to<#1e>right
  824. <F0> direction) or negative (<F6>:right<#1e>to<#1e>left<F0> direction). 
  825. Note that X does not provide any direct<SP>support for vertical text.
  826.  
  827. <arg>
  828.  
  829. font<F3> <#1f> A <F6>font<F3> object.
  830.  
  831. <syntax0>
  832.  
  833. font<#1e>display<F3> <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>display", Sort String = "font<#1e>display">
  834.  
  835. <return>
  836.  
  837. <Tab><F3>Returns: <F2><HR>
  838.   display <F3><#1f> Type <F0>display<F3>. 
  839.  
  840. <para>
  841.  
  842. Returns the <F6>display<F0> object associated with the specified <F2>font
  843. <F0>. 
  844.  
  845. <arg>
  846.  
  847. font<F3> <#1f> A <F6>font<F3> object.
  848.  
  849. <syntax,
  850.     Left Tab =        -0.90/0 inches,
  851.     Right Tab =        7.50 inches>
  852.  
  853. 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">
  854.  
  855. <para>
  856.  
  857. Returns true if the two arguments refer to the same server resource 
  858. and <F6>nil<F0> if they do not.
  859.  
  860. <arg>
  861.  
  862. font<#1e>1<F3>,<F0> font<#1e>2 <F3><#1f> The <F6>font<F3> objects.
  863.  
  864. <syntax0>
  865.  
  866. font<#1e>id <F2>font<F0><Tab><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>id", Sort String = "font<#1e>id">
  867.  
  868. <return>
  869.  
  870. <Tab><F3>Returns: <F2><HR>
  871.   id <F3><#1f> Type <F0>resource<#1e>id<F3>.
  872.  
  873. <para>
  874.  
  875. Returns the unique resource ID assigned to the specified <F2>font<F0>.
  876.  
  877. <arg>
  878.  
  879. font<F3> <#1f> A <F6>font<F3> object.
  880.  
  881. <syntax0>
  882.  
  883. 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">
  884.  
  885. <return>
  886.  
  887. <Tab><F3>Returns:<F2> <HR>
  888.   max<#1e>byte1 <#1f> <F3>Type<F2> <F0>card8<F2>.
  889.  
  890. <para>
  891.  
  892. Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise, 
  893. if the<SP> <F2>font<F0> uses matrix index encoding, a value between 
  894. 1 and 255 is<SP> returned that specifies the maximum value for the 
  895. most significant byte<SP>of font indexes.
  896.  
  897. <arg>
  898.  
  899. font<F3> <#1f> A <F6>font<F3> object.
  900.  
  901. <syntax0>
  902.  
  903. 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">
  904.  
  905. <return>
  906.  
  907. <Tab><F3>Returns:<F2> <HR>
  908.   max<#1e>byte2 <#1f> <F3>Type<F2> <F0>card8<F2>.
  909.  
  910. <para>
  911.  
  912. Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise, 
  913. if the<SP> <F2>font<F0> uses matrix index encoding, a value between 
  914. 1 and 255 is<SP>returned that specifies the maximum value for the 
  915. least significant<SP> byte of font indexes.
  916.  
  917. <arg>
  918.  
  919. font<F3> <#1f> A <F6>font<F3> object.
  920.  
  921. <syntax0>
  922.  
  923. <|,"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">
  924.  
  925. <return>
  926.  
  927. <Tab><F3>Returns: <F2><HR>
  928.   index <F3><#1f> Type <F0>card16<F3>.
  929.  
  930. <para>
  931.  
  932. Returns the maximum valid value used for linear encoded indexes. This<SP> 
  933. function is not meaningful for fonts that use matrix index encoding.
  934.  
  935. <arg>
  936.  
  937. font<F3> <#1f> A <F6>font<F3> object.
  938.  
  939. <syntax0>
  940.  
  941. 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">
  942.  
  943. <return>
  944.  
  945. <Tab><F3>Returns: <F2><HR>
  946.   min<#1e>byte1 <F3><#1f> Type <F0>card8<F3>.
  947.  
  948. <para>
  949.  
  950. Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise, 
  951. if the<SP> <F2>font<F0> uses matrix index encoding, a value between 
  952. 1 and 255 is<SP>returned that specifies the minimum value for the 
  953. most significant byte<SP> of font indexes.
  954.  
  955. <arg>
  956.  
  957. font<F3> <#1f> A <F6>font<F3> object.
  958.  
  959. <syntax0>
  960.  
  961. 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">
  962.  
  963. <return>
  964.  
  965. <Tab><F3>Returns: <F2><HR>
  966.   min<#1e>byte2 <F3><#1f> Type <F0>card8<F3>.
  967.  
  968. <para>
  969.  
  970. Returns zero if the <F2>font<F0> uses linear index encoding. Otherwise, 
  971. if the<SP> <F2>font<F0> uses matrix index encoding, a value between 
  972. 1 and 255 is<SP> returned that specifies the minimum value for the 
  973. least significant<SP> byte of font indexes.
  974.  
  975. <arg>
  976.  
  977. font<F3> <#1f> A <F6>font<F3> object.
  978.  
  979. <syntax0>
  980.  
  981. 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">
  982.  
  983. <return>
  984.  
  985. <Tab><F3>Returns: <F2><HR>
  986.   index <F3><#1f> Type <F0>card16<F3>.
  987.  
  988. <para>
  989.  
  990. Returns the minimum valid value used for linear encoded indexes. This<SP> 
  991. function is not meaningful for fonts that use matrix index encoding.
  992.  
  993. <arg>
  994.  
  995. font<F3> <#1f> A <F6>font<F3> object.
  996.  
  997. <syntax0>
  998.  
  999. font<#1e>name <F2>font<F0><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>name", Sort String = "font<#1e>name">
  1000.  
  1001. <return>
  1002.  
  1003. <Tab><F3>Returns: <F2><HR>
  1004.   name <F3><#1f> Type <F0>string<F3> or <F0>null<F3>.
  1005.  
  1006. <para>
  1007.  
  1008. Returns the name of the <F2>font<F0>, or <F6>nil<F0> if <F2>font<F0> 
  1009. is a pseudo<#1e>font.
  1010.  
  1011. <arg>
  1012.  
  1013. font<F3> <#1f> A <F6>font<F3> object.
  1014.  
  1015. <syntax0>
  1016.  
  1017. font<#1e>p <F2>font<F0><Tab><Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>p", Sort String = "font<#1e>p">
  1018.  
  1019. <return>
  1020.  
  1021. <Tab><F3>Returns: <F2><HR>
  1022.   font<#1e>p <F3><#1f> Type <F0>boolean<F3>.
  1023.  
  1024. <para>
  1025.  
  1026. Returns true if the argument is a <F6>font<F0> object and <F6>nil<F0> 
  1027. otherwise.
  1028.  
  1029. <syntax0>
  1030.  
  1031. font<#1e>plist <F2>font<F0><Tab><F3><Tab>Function<Index, Doc = operations, "xlib:font<#1e>plist", Sort String = "font<#1e>plist">
  1032.  
  1033. <return>
  1034.  
  1035. <Tab><F3>Returns: <F2><HR>
  1036.   plist <F3><#1f> Type <F0>list<F3>.
  1037.  
  1038. <para>
  1039.  
  1040. Returns and (with <F6>setf<F0>) sets the property list for the specified 
  1041. <F2>font<F0>. This function provides a hook where extensions can 
  1042. add data.
  1043.  
  1044. <arg>
  1045.  
  1046. font<F3> <#1f> A <F6>font<F3> object.
  1047.  
  1048. <syntax0>
  1049.  
  1050. <|,"8<#1e>94">font<#1e>properties <F2>font<F3><Tab>Function<Index, Doc = operations, "xlib:font<#1e>properties", Sort String = "font<#1e>properties">
  1051.  
  1052. <return>
  1053.  
  1054. <Tab><F3>Returns: <F2><HR>
  1055.   properties <F3><#1f> Type <F0>list<F3>.
  1056.  
  1057. <para>
  1058.  
  1059. Returns the list of font <F2>properties<F0> recorded by the X server. 
  1060. The<SP>returned list is a property list of keyword/value pairs. The 
  1061. set of<SP> possible font property keywords is implementation<#1e>dependent.
  1062.  
  1063. <arg>
  1064.  
  1065. font<F3> <#1f> A <F6>font<F3> object.
  1066.  
  1067. <syntax0>
  1068.  
  1069. font<#1e>property <F2>font name<Tab><F3>Function<Index, Doc = operations, "xlib:font<#1e>property", Sort String = "font<#1e>property">
  1070.  
  1071. <return>
  1072.  
  1073. <Tab><F3>Returns: <F2><HR>
  1074.   property <F3><#1f> Type <F0>int32<F3> or <F0>null<F3>.
  1075.  
  1076. <para>
  1077.  
  1078. Returns the value of the font <F2>property<F0> specified by the <F2>name
  1079. <F0> keyword.<SP>The property value, if it exists, is returned as 
  1080. an uninterpreted 32<#1e>bit integer.
  1081.  
  1082. <arg>
  1083.  
  1084. font<F3> <#1f> A <F6>font<F3> object.
  1085.  
  1086. name<F3> <#1f> A font property keyword.
  1087.  
  1088. <syntax0>
  1089.  
  1090. 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">
  1091.  
  1092. <return>
  1093.  
  1094. <Tab><F3>Returns: <F2><HR>
  1095.   ascent <F3><#1f> Type <F0>int16<F3>.
  1096.  
  1097. <para>
  1098.  
  1099. Returns the maximum <F6>char<#1e>ascent<F0> value for all characters 
  1100. in <F2>font<F0>.
  1101.  
  1102. <arg>
  1103.  
  1104. font<F3> <#1f> A <F6>font<F3> object.
  1105.  
  1106. <syntax0>
  1107.  
  1108. 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">
  1109.  
  1110. <return>
  1111.  
  1112. <Tab><F3>Returns: <F2><HR>
  1113.   attributes <F3><#1f> Type <F0>int16<F3>.
  1114.  
  1115. <para>
  1116.  
  1117. Returns the maximum <F6>char<#1e>attributes<F0> value for all characters 
  1118. in <F2>font<F0>.
  1119.  
  1120. <arg>
  1121.  
  1122. font<F3> <#1f> A <F6>font<F3> object.
  1123.  
  1124. <syntax0>
  1125.  
  1126. 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">
  1127.  
  1128. <return>
  1129.  
  1130. <Tab><F3>Returns: <F2><HR>
  1131.   descent <F3><#1f> Type <F0>int16<F3>.
  1132.  
  1133. <para>
  1134.  
  1135. Returns the maximum <F6>char<#1e>descent<F0> value for all characters 
  1136. in <F2>font<F0>.
  1137.  
  1138. <arg>
  1139.  
  1140. font<F3> <#1f> A <F6>font<F3> object.
  1141.  
  1142. <syntax0>
  1143.  
  1144. 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">
  1145.  
  1146. <return>
  1147.  
  1148. <Tab><F3>Returns: <F2><HR>
  1149.   left<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
  1150.  
  1151. <para>
  1152.  
  1153. Returns the maximum <F6>char<#1e>left<#1e>bearing<F0> value for 
  1154. all characters in <F2>font<F0>.
  1155.  
  1156. <arg>
  1157.  
  1158. font<F3> <#1f> A <F6>font<F3> object.
  1159.  
  1160. <syntax0>
  1161.  
  1162. 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">
  1163.  
  1164. <return>
  1165.  
  1166. <Tab><F3>Returns: <F2><HR>
  1167.   right<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
  1168.  
  1169. <para>
  1170.  
  1171. Returns the maximum <F6>char<#1e>right<#1e>bearing<F0> value for 
  1172. all characters in <F2>font<F0>.
  1173.  
  1174. <arg>
  1175.  
  1176. font<F3> <#1f> A <F6>font<F3> object.
  1177.  
  1178. <syntax0>
  1179.  
  1180. 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">
  1181.  
  1182. <return>
  1183.  
  1184. <Tab><F3>Returns: <F2><HR>
  1185.   width <F3><#1f> Type <F0>int16<F3>.
  1186.  
  1187. <para>
  1188.  
  1189. Returns the maximum <F6>char<#1e>width <F0>value for all characters 
  1190. in <F2>font<F0>.
  1191.  
  1192. <arg>
  1193.  
  1194. <|,"8<#1e>95">font<F3> <#1f> A <F6>font<F3> object.
  1195.  
  1196. <syntax0>
  1197.  
  1198. 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 ">
  1199.  
  1200. <return>
  1201.  
  1202. <Tab><F3>Returns: <F2><HR>
  1203.   ascent <F3><#1f> Type <F0>int16<F3>.
  1204.  
  1205. <para>
  1206.  
  1207. Returns the minimum <F6>char<#1e>ascent <F0>for all characters in <F2>font
  1208. <F0>.
  1209.  
  1210. <arg>
  1211.  
  1212. font<F3> <#1f> A <F6>font<F3> object.
  1213.  
  1214. <syntax0>
  1215.  
  1216. 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">
  1217.  
  1218. <return>
  1219.  
  1220. <Tab><F3>Returns: <F2><HR>
  1221.   attributes <F3><#1f> Type <F0>int16<F3>.
  1222.  
  1223. <para>
  1224.  
  1225. Returns the minimum <F6>char<#1e>attributes <F0>for all characters 
  1226. in <F2>font<F0>. 
  1227.  
  1228. <arg>
  1229.  
  1230. font<F3> <#1f> A <F6>font<F3> object.
  1231.  
  1232. <syntax0>
  1233.  
  1234. 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">
  1235.  
  1236. <return>
  1237.  
  1238. <Tab><F3>Returns: <F2><HR>
  1239.   descent <F3><#1f> Type <F0>int16<F3>.
  1240.  
  1241. <para>
  1242.  
  1243. Returns the minimum <F6>char<#1e>descent <F0>for all characters 
  1244. in <F2>font<F0>. 
  1245.  
  1246. <arg>
  1247.  
  1248. font<F3> <#1f> A <F6>font<F3> object.
  1249.  
  1250. <syntax0>
  1251.  
  1252. 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">
  1253.  
  1254. <return>
  1255.  
  1256. <Tab><F3>Returns: <F2><HR>
  1257.   left<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
  1258.  
  1259. <para>
  1260.  
  1261. Returns the minimum <F6>char<#1e>left<#1e>bearing <F0>for all characters 
  1262. in <F2>font<F0>.
  1263.  
  1264. <arg>
  1265.  
  1266. font<F3> <#1f> A <F6>font<F3> object.
  1267.  
  1268. <syntax0>
  1269.  
  1270. 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">
  1271.  
  1272. <return>
  1273.  
  1274. <Tab><F3>Returns: <F2><HR>
  1275.   right<#1e>bearing <F3><#1f> Type <F0>int16<F3>.
  1276.  
  1277. <para>
  1278.  
  1279. Returns the minimum <F6>char<#1e>right<#1e>bearing <F0>for all characters 
  1280. in <F2>font<F0>.
  1281.  
  1282. <arg>
  1283.  
  1284. font<F3> <#1f> A <F6>font<F3> object.
  1285.  
  1286. <syntax0>
  1287.  
  1288. 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">
  1289.  
  1290. <return>
  1291.  
  1292. <Tab><F3>Returns: <F2><HR>
  1293.   width <F3><#1f> Type <F0>int16<F3>.
  1294.  
  1295. <para>
  1296.  
  1297. Returns the minimum <F6>char<#1e>width <F0>for all characters in <F2>font
  1298. <F0>.
  1299.  
  1300. <arg>
  1301.  
  1302. font<F3> <#1f> A <F6>font<F3> object.
  1303.  
  1304. <p1rule,
  1305.     New Page =        yes>
  1306.  
  1307. <|,"8<#1e>96"><Index, "font", "character attributes"><Index, "character", "attributes", To Named = p1rule>
  1308. <Frame,
  1309.     Name =            p1rule,
  1310.     Placement =        At Anchor,
  1311.     Width =            6.35 inches,
  1312.     Height =        0.153 inches,
  1313.     Vertical Alignment =    0.007 inches,
  1314.     Shared Contents =    yes>
  1315.  
  1316. <p1stacked>
  1317.  
  1318. <F7>Character <Tab><Tab><F0>8.5<#04><F3>The following paragraphs 
  1319. describe the CLX functions used to access 
  1320.  
  1321. <p1para>
  1322.  
  1323. <F7>Attributes<F0><Tab><Tab><F3>the attributes of<SP>individual 
  1324. font glyphs.
  1325.  
  1326. <syntax0>
  1327.  
  1328. char<#1e>ascent <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>ascent", Sort String = "char<#1e>ascent">
  1329.  
  1330. <return>
  1331.  
  1332. <Tab><F3>Returns: <F2><HR>
  1333.   ascent <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
  1334.  
  1335. <para>
  1336.  
  1337. Returns the vertical distance in pixels from the baseline to the top 
  1338. of<SP>the given font glyph. Returns <F6>nil<F0> if the index is 
  1339. invalid or specifies an<SP>empty glyph, or if the <F2>font<F0> is 
  1340. a pseudo<#1e>font.
  1341.  
  1342. <arg>
  1343.  
  1344. font<F3> <#1f> A <F6>font<F3> object.
  1345.  
  1346. index<F3> <#1f> An <F6>int16<F3> font index.
  1347.  
  1348. <syntax0>
  1349.  
  1350. char<#1e>attributes <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>attributes", Sort String = "char<#1e>attributes">
  1351.  
  1352. <return>
  1353.  
  1354. <Tab><F3>Returns: <F2><HR>
  1355.   attributes <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
  1356.  
  1357. <para>
  1358.  
  1359. Returns font<#1e>specific <F2>attributes<F0> of the given glyph. 
  1360. The interpretation<SP> of such attributes is server<#1e>dependent. 
  1361. Returns <F6>nil<F0> if the <F2>index<F0> is<SP>invalid or specifies 
  1362. an empty glyph, or if the <F2>font<F0> is a pseudo<#1e>font.
  1363.  
  1364. <arg>
  1365.  
  1366. font<F3> <#1f> A <F6>font<F3> object.
  1367.  
  1368. index<F3> <#1f> An <F6>int16<F3> font index.
  1369.  
  1370. <syntax0>
  1371.  
  1372. char<#1e>descent <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>descent", Sort String = "char<#1e>descent">
  1373.  
  1374. <return>
  1375.  
  1376. <Tab><F3>Returns: <F2><HR>
  1377.   descent <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
  1378.  
  1379. <para>
  1380.  
  1381. Returns the vertical distance in pixels from the baseline to the bottom 
  1382. of<SP> the given font glyph. Returns <F6>nil<F0> if the <F2>index<F0> 
  1383. is invalid or specifies an<SP>empty glyph, or if the <F2>font<F0> 
  1384. is a pseudo<#1e>font.
  1385.  
  1386. <arg>
  1387.  
  1388. font<F3> <#1f> A <F6>font<F3> object.
  1389.  
  1390. index<F3> <#1f> An <F6>int16<F3> font index.
  1391.  
  1392. <syntax0>
  1393.  
  1394. 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">
  1395.  
  1396. <return>
  1397.  
  1398. <Tab><F3>Returns: <F2><HR>
  1399.   left<#1e>bearing <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
  1400.  
  1401. <para>
  1402.  
  1403. Returns the left side bearing of the given font glyph. If <F6>draw<#1e>glyph
  1404. <F0> is<SP>called with horizontal position <F2>x<F0>, the leftmost 
  1405. pixel of the glyph<SP>is drawn at the position (+ <F2>x left<#1e>bearing<F0>)
  1406. . Returns <F6>nil<F0> if the<SP><F2>index<F0> is invalid or specifies 
  1407. an empty glyph, or if the <F2>font<F0> is a<SP> pseudo<#1e>font.
  1408.  
  1409. <arg>
  1410.  
  1411. font<F3> <#1f> A <F6>font<F3> object.
  1412.  
  1413. index<F3> <#1f> An <F6>int16<F3> font index.
  1414.  
  1415. <syntax0>
  1416.  
  1417. 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">
  1418.  
  1419. <return>
  1420.  
  1421. <Tab><F3>Returns: <F2><HR>
  1422.   right<#1e>bearing <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
  1423.  
  1424. <para>
  1425.  
  1426. Returns the right side bearing of the given font glyph. If <F6>draw<#1e>glyph
  1427. <F0><SP>is called with horizontal position <F2>x<F0>, the rightmost 
  1428. pixel of the<SP>glyph is drawn at the position (+ <F2>x right<#1e>bearing
  1429. <F0>). Returns <F6>nil<F0> if<SP> the <F2>index<F0> is invalid 
  1430. or specifies an empty glyph, or if the <F2>font<F0> is a<SP> pseudo<#1e>font.
  1431.  
  1432. <arg>
  1433.  
  1434. font<F3> <#1f> A <F0>font<F3> object.
  1435.  
  1436. <|,"8<#1e>97">index<F3> <#1f> An <F6>int16<F3> font index.
  1437.  
  1438. <syntax0>
  1439.  
  1440. char<#1e>width <F2>font index<F0><Tab><F3>Function<Index, Doc = operations, "xlib:char<#1e>width", Sort String = "char<#1e>width">
  1441.  
  1442. <return>
  1443.  
  1444. <Tab><F3>Returns: <F2><HR>
  1445.   width <F3><#1f> Type <F0>int16<F3> or <F0>null<F3>.
  1446.  
  1447. <para>
  1448.  
  1449. Returns the <F2>width<F0> of the given font glyph. The <F2>width<F0> 
  1450. is defined to be<SP> equal to (- <F2>right<#1e>bearing left<#1e>bearing<F0>). 
  1451. Returns <F6>nil<F0> if the <F2>index<F0> is<SP>invalid or specifies 
  1452. an empty glyph, or if the <F2>font<F0> is a pseudo<#1e>font.
  1453.  
  1454. <arg>
  1455.  
  1456. font<F3> <#1f> A <F6>font<F3> object.
  1457.  
  1458. index<F3> <#1f> An <F6>int16<F3> font index.
  1459.  
  1460. <p1rule>
  1461.  
  1462. <Index, "text", "size querying", To Named = sectitle><Index, "font", "querying text size", To Named = sectitle>
  1463. <Frame,
  1464.     Name =            p1rule,
  1465.     Placement =        At Anchor,
  1466.     Width =            6.35 inches,
  1467.     Height =        0.153 inches,
  1468.     Vertical Alignment =    0.007 inches,
  1469.     Shared Contents =    yes>
  1470.  
  1471. <p1stacked,
  1472.     Font =            F3,
  1473.     Left Tab =        -1.70/0 inches>
  1474.  
  1475. <F7>Querying<Tab><F6>8.6<F0><#04>CLX defines functions to return 
  1476. the size of text drawn in a specified<FJ>
  1477.  
  1478. <p1para,
  1479.     Font =            F3,
  1480.     Left Tab =        -1.70/0 inches>
  1481.  
  1482. <F7>Text Size<Tab><F0>font. See paragraph 6.7, Drawing Text, for 
  1483. a description of the <F6>:translate<F0> function used by the functions 
  1484. in the following paragraphs.
  1485.  
  1486. <syntax0>
  1487.  
  1488. text<#1e>extents<F3> <F2>font sequence<F3> &key (<F0>:start<F3> 
  1489. 0) <F0>:end :translate<F3><Tab>Function<Index, Doc = operations, "xlib:text<#1e>extents", Sort String = "text<#1e>extents">
  1490.  
  1491. <return,
  1492.     Left Tab =        -0.90/0/0.10/7.50 inches>
  1493.  
  1494. <Tab><F3>Returns:<HR>
  1495. <Tab><F2>width<F3> <#1f> Type <F0>int32<F3>.<HR>
  1496. <Tab><F2>ascent<F3> <#1f> Type <F0>int16<F3>.<HR>
  1497. <Tab><F2>descent<F3> <#1f> Type <F0>int16<F3>.<HR>
  1498. <Tab><F2>left<F3> <#1f> Type <F0>int32<F3>.<HR>
  1499. <Tab><F2>right<F3> <#1f> Type <F0>int32<F3>.<HR>
  1500. <Tab><F2>font<#1e>ascent<F3> <#1f> Type <F0>int16<F3>.<HR>
  1501. <Tab><F2>direction<F3> <#1f> Type <F0>draw<#1e>direction<F3>.<HR>
  1502. <Tab><F2>first<#1e>not<#1e>done<F3> <#1f> Type <F0>array<#1e>index<F3> 
  1503. or <F0>null<F3>.
  1504.  
  1505. <para>
  1506.  
  1507. Returns the complete geometry of the given <F2>sequence<F0> when 
  1508. drawn in the<SP>given <F2>fon<F0>t. The <F2>font<F0> can be a <F6>gcontext
  1509. <F0>, in which case the font<SP>attribute of the given graphics context 
  1510. is used. <F6>:start<F0> and <F6>:end<F0> define<SP>the elements 
  1511. of the <F2>sequence<F0> which are used.
  1512.  
  1513. The returned <F2>width<F0> is the total pixel width of the translated 
  1514. character<SP>sequence. The returned <F2>ascent<F0> and <F2>descent<F0> 
  1515. give the vertical ascent and<SP>descent for characters in the translated <F2>s
  1516. equence<F0>. The returned <F2>left<F0> gives the left bearing of 
  1517. the leftmost character. The returned <F2>right<F0><SP>gives the 
  1518. right bearing of the rightmost character. The returned<SP> <F2>font<#1e>ascent
  1519. <F0> and <F2>font<#1e>descent<F0> give the maximum vertical ascent 
  1520. and<SP>descent for all characters in the <F2>fon<F0>t. If <F6>:translate
  1521. <F0> causes font<SP>changes, then <F2>font<#1e>ascent<F0> and <F2>font<#1e>
  1522. descent<F0> will be the maximums over all<SP> fonts used. The <F2>direction
  1523. <F0> returns the preferred draw direction for the<SP>font. If <F6>:translate
  1524. <F0> causes font changes, then the <F2>direction<F0> will be<SP><F6>nil
  1525. <F0>. The <F2>first<#1e>not<#1e>done<F0> value returned is <F6>nil<F0> 
  1526. if all elements of the<SP><F2>sequence<F0> were successfully translated; 
  1527. otherwise the index of the first<SP>untranslated element is returned.
  1528.  
  1529. <arg>
  1530.  
  1531. font<F3><SP><#1f> The font (or <F6>gcontext<F3>) used for measuring 
  1532. characters.
  1533.  
  1534. sequence<F3> <#1f> A sequence of characters or other objects to be 
  1535. translated into font indexes.
  1536.  
  1537. <F6>:start<F3>, <F6>:end <F3><#1f> Start and end indexes defining 
  1538. the elements to draw.
  1539.  
  1540. <F6>:translate<F3> <#1f> A function to translate text to font indexes. 
  1541. Default is<SP><F6>#'translate<#1e>default<F3>.
  1542.  
  1543. <syntax0>
  1544.  
  1545. <|,"8<#1e>98">text<#1e>width<F3> <F2>font sequence<F3> &key (<F0>:start<F3> 
  1546. 0) <F0>:end :translate<Tab><F3>Function<Index, Doc = operations, "xlib:text<#1e>width", Sort String = "text<#1e>width">
  1547.  
  1548. <return>
  1549.  
  1550. <Tab><F3>Returns:<HR>
  1551.   <F2>width<F3> <#1f> Type <F0>int32<F3>.<HR>
  1552.   <F2>first<#1e>not<#1e>done<F3> <#1f> Type <F0>array<#1e>index<F3> 
  1553. or <F0>null<F3>.
  1554.  
  1555. <para>
  1556.  
  1557. Returns the total pixel width of the given <F2>sequence<F0> when 
  1558. drawn in the<SP>given <F2>font<F0>. The <F2>font<F0> can be a <F6>gcontext
  1559. <F0>, in which case the font<SP>attribute of the given graphics context 
  1560. is used. <F6>:start<F0> and <F6>:end<F0> define the elements of 
  1561. the <F2>sequence<F0> which are used. The second value returned<SP>is <F6>nil
  1562. <F0> if all elements of the <F2>sequence<F0> were successfully 
  1563. translated;<SP>otherwise the index of the first untranslated element 
  1564. is returned.
  1565.  
  1566. <arg>
  1567.  
  1568. font<SP><F3> <#1f> The font (or <F6>gcontext<F3>) used for measuring 
  1569. characters.
  1570.  
  1571. sequence<F3> <#1f> A sequence of characters or other objects to be 
  1572. translated into font indexes.
  1573.  
  1574. <F6>:start<F3>, <F6>:end<F3> <#1f> Start and end indexes defining 
  1575. the elements to draw.
  1576.  
  1577. <F6>:translate<F3> <#1f> A function to translate text to font indexes. 
  1578. Default is<SP><F6>#'translate<#1e>default<F3>.
  1579.  
  1580.