home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / doc / CLX / s11.doc < prev    next >
Encoding:
Interleaf document  |  1989-10-18  |  33.7 KB  |  1,095 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 18 Bold,
  12.     F5 = Times 18,
  13.     F6 = Times 12 Bold,
  14.     F7 = Times 10 Bold,
  15.     F8 = Times 8 Italic,
  16.     F9 = Symbol_B 8>
  17.  
  18. <!Page,
  19.     Bottom Margin =        1 inches,
  20.     Left Margin =        1 inches,
  21.     Right Margin =        1.15 inches,
  22.     First Page =        Right,
  23.     Starting Page # =     Inherit,
  24.     Page # Prefix =        "11<#1e>",
  25.     Hyphenation =        on,
  26.     Consecutive Hyphens =    2,
  27.     Vert. Just. =        off>
  28.  
  29. <!Autonumber Stream, List, 2,
  30.     Level 2 Suffix =    ,
  31.     Level 2 Starting Value = 0,
  32.     Level 2 Show =        no>
  33.  
  34. <!Autonumber Stream, Outline, 3,
  35.     Level 1 Symbol Type =    UPPER ROMAN,
  36.     Level 2 Symbol Type =    UPPER ALPHA>
  37.  
  38. <!Autonumber Stream, figure, 2,
  39.     Level 1 Prefix =    "Figure ",
  40.     Level 1 Suffix =    "<#1e>",
  41.     Level 1 Show =        no,
  42.     Level 2 Suffix =    ,
  43.     Level 2 Starting Value = 0,
  44.     Level 2 Show =        no>
  45.  
  46. <!Autonumber Stream, figurelet, 2,
  47.     Level 1 Symbol Type =    UPPER ALPHA,
  48.     Level 1 Prefix =    "Figure ",
  49.     Level 1 Suffix =    "<#1e>",
  50.     Level 1 Show =        no,
  51.     Level 2 Suffix =    "<#04>">
  52.  
  53. <!Autonumber Stream, invisible, 1,
  54.     Level 1 Suffix =    ,
  55.     Level 1 Show =        no>
  56.  
  57. <!Autonumber Stream, item, 2,
  58.     Level 2 Symbol Type =    LOWER ALPHA,
  59.     Level 2 Trail =        yes>
  60.  
  61. <!Autonumber Stream, paralet, 4,
  62.     Level 1 Symbol Type =    UPPER ALPHA,
  63.     Level 1 Suffix =    ,
  64.     Level 1 Show =        no,
  65.     Level 2 Prefix =    .,
  66.     Level 2 Suffix =    ,
  67.     Level 3 Prefix =    .,
  68.     Level 3 Suffix =    ,
  69.     Level 4 Prefix =    .,
  70.     Level 4 Suffix =    >
  71.  
  72. <!Autonumber Stream, paranum, 4,
  73.     Level 1 Suffix =    ,
  74.     Level 1 Show =        no,
  75.     Level 2 Prefix =    .,
  76.     Level 2 Suffix =    ,
  77.     Level 3 Prefix =    .,
  78.     Level 3 Suffix =    ,
  79.     Level 4 Prefix =    .,
  80.     Level 4 Suffix =    >
  81.  
  82. <!Autonumber Stream, table, 2,
  83.     Level 1 Prefix =    "Table ",
  84.     Level 1 Suffix =    "<#1e>",
  85.     Level 1 Show =        no,
  86.     Level 2 Suffix =    >
  87.  
  88. <!Autonumber Stream, tablelet, 2,
  89.     Level 1 Symbol Type =    UPPER ALPHA,
  90.     Level 1 Prefix =    "Table ",
  91.     Level 1 Suffix =    "<#1e>",
  92.     Level 1 Show =        no,
  93.     Level 2 Suffix =    "<#04>">
  94.  
  95. <!Class, arg,
  96.     Bottom Margin =        0.08 inches,
  97.     Left Margin =        1.85 inches,
  98.     First Indent =        -0.25 inches,
  99.     Line Spacing =        1.121 lines,
  100.     Font =            F2,
  101.     Left Tab =        -0.25/0 inches>
  102.  
  103. <!Class, bullet,
  104.     Bottom Margin =        0.153 inches,
  105.     Left Margin =        1.85 inches,
  106.     First Indent =        -0.25 inches,
  107.     Line Spacing =        1.121 lines,
  108.     Font =            F3,
  109.     Allow Page Break Within = no,
  110.     Left Tab =        -0.50/0 inches>
  111.  
  112. <!Class, caption,
  113.     Top Margin =        0.07 inches,
  114.     Bottom Margin =        0.07 inches,
  115.     Line Spacing =        1.100 lines,
  116.     Font =            F4>
  117.  
  118. <!Class, fig,
  119.     Top Margin =        0.07 inches,
  120.     Bottom Margin =        0.07 inches,
  121.     Line Spacing =        1.100 lines,
  122.     Alignment =        Left,
  123.     Font =            F4>
  124.  
  125. <!Class, newpage,
  126.     Bottom Margin =        0 inches,
  127.     Line Spacing =        1 lines,
  128.     Alignment =        Left,
  129.     Font =            F5,
  130.     Hyphenation =        off,
  131.     New Page =        yes,
  132.     Left Tab =        >
  133.  
  134. <!Class, "note",
  135.     Top Margin =        0.177 inches,
  136.     Bottom Margin =        0.334 inches,
  137.     Left Margin =        1.60 inches,
  138.     Line Spacing =        1.121 lines,
  139.     Font =            F3,
  140.     Allow Page Break Within = no,
  141.     Left Tab =        0 inches,
  142.     Right Tab =        6.50 inches>
  143.  
  144. <!Class, p1para,
  145.     Bottom Margin =        0.153 inches,
  146.     Left Margin =        1.60 inches,
  147.     First Indent =        -1.60 inches,
  148.     Line Spacing =        1.121 lines,
  149.     Alignment =        Left,
  150.     Font =            F6,
  151.     Allow Page Break Within = no,
  152.     Allow Page Break After = no,
  153.     Left Tab =        -1.70/0 inches>
  154.  
  155. <!Class, p1rule,
  156.     Bottom Margin =        0 inches,
  157.     Line Spacing =        1 lines,
  158.     Font =            F3,
  159.     Hyphenation =        off,
  160.     Allow Page Break After = no,
  161.     Left Tab =        0/0.75*13 inches>
  162.  
  163. <!Class, para,
  164.     Bottom Margin =        0.153 inches,
  165.     Left Margin =        1.60 inches,
  166.     Line Spacing =        1.121 lines,
  167.     Font =            F3,
  168.     Allow Page Break Within = no,
  169.     Left Tab =        0/0.75*13 inches>
  170.  
  171. <!Class, return,
  172.     Bottom Margin =        0.077 inches,
  173.     Left Margin =        1.60 inches,
  174.     First Indent =        -0.90 inches,
  175.     Line Spacing =        1.121 lines,
  176.     Alignment =        Left,
  177.     Font =            F7,
  178.     Hyphenation =        off,
  179.     Allow Page Break Within = no,
  180.     Allow Page Break After = no,
  181.     Left Tab =        -0.90/0 inches,
  182.     Right Tab =        7.50 inches>
  183.  
  184. <!Class, secno,
  185.     Top Margin =        0.07 inches,
  186.     Bottom Margin =        0.07 inches,
  187.     Line Spacing =        1.100 lines,
  188.     Alignment =        Left,
  189.     Font =            F4,
  190.     Autonumber Name =    paranum>
  191.  
  192. <!Class, secrule,
  193.     Bottom Margin =        0 inches,
  194.     Line Spacing =        1 lines,
  195.     Font =            F3,
  196.     Hyphenation =        off,
  197.     Allow Page Break After = no,
  198.     Left Tab =        0/0.75*13 inches,
  199.     Autonumber Name =    table>
  200.  
  201. <!Class, sectitle,
  202.     Bottom Margin =        0 inches,
  203.     Line Spacing =        1 lines,
  204.     Alignment =        Right,
  205.     Font =            F4,
  206.     Hyphenation =        off,
  207.     New Page =        yes,
  208.     Left Tab =        0/0.75*13 inches>
  209.  
  210. <!Class, syntax,
  211.     Bottom Margin =        0.077 inches,
  212.     Left Margin =        1.60 inches,
  213.     First Indent =        -0.90 inches,
  214.     Line Spacing =        1.121 lines,
  215.     Alignment =        Left,
  216.     Font =            F7,
  217.     Hyphenation =        off,
  218.     Allow Page Break Within = no,
  219.     Allow Page Break After = no,
  220.     Left Tab =        -0.90/0 inches,
  221.     Right Tab =        8 inches>
  222.  
  223. <!Class, syntax0,
  224.     Bottom Margin =        0 inches,
  225.     Left Margin =        1.60 inches,
  226.     First Indent =        -0.90 inches,
  227.     Line Spacing =        1.121 lines,
  228.     Alignment =        Left,
  229.     Font =            F7,
  230.     Hyphenation =        off,
  231.     Allow Page Break Within = no,
  232.     Allow Page Break After = no,
  233.     Left Tab =        -0.90/0 inches,
  234.     Right Tab =        8 inches>
  235.  
  236. <!Class, "table",
  237.     Top Margin =        0.07 inches,
  238.     Bottom Margin =        0.07 inches,
  239.     Line Spacing =        1.100 lines,
  240.     Font =            F7,
  241.     Autonumber Name =    table>
  242.  
  243. <!Class, title,
  244.     Top Margin =        0.07 inches,
  245.     Bottom Margin =        0.07 inches,
  246.     Line Spacing =        1.100 lines,
  247.     Alignment =        Right,
  248.     Font =            F4,
  249.     TOC Doc Name =        TOC>
  250.  
  251. <!Class, wtablin,
  252.     Bottom Margin =        0 inches,
  253.     Line Spacing =        1.121 lines,
  254.     Alignment =        Left,
  255.     Font =            F3,
  256.     Hyphenation =        off,
  257.     Allow Page Break Within = no,
  258.     Allow Page Break After = no,
  259.     Left Tab =        0/1.50/2.50/3.70/5.20/7.50 inches>
  260.  
  261. <!Master Frame,
  262.     Name =            "At Anchor",
  263.     Placement =        At Anchor,
  264.     Width =            0.41 inches,
  265.     Height =        0.137 inches,
  266.     Vertical Alignment =    0.03 inches,
  267.     Diagram =
  268. V4,
  269. (g9,32767,0
  270.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,1,0,1,1,0.066667,0.066667,6,6,0,0.066
  271.   667,6))>
  272.  
  273. <!Master Frame,
  274.     Name =            p1rule,
  275.     Placement =        At Anchor,
  276.     Width =            6.35 inches,
  277.     Height =        0.153 inches,
  278.     Vertical Alignment =    0.007 inches,
  279.     Shared Contents =    yes,
  280.     Diagram =
  281. V4,
  282. (g9,1,0
  283.  (v4,1,0,0.006667,0.066723,6.326667,0.066611,17,2,0)
  284.  (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
  285.   667,6))>
  286.  
  287. <First Page Header, Frame =
  288. V4,
  289. (g9,0,0
  290.  (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
  291.   667,6))>
  292.  
  293. <Right Page Header, Frame =
  294. V4,
  295. (g9,1,0
  296.  (T8,1,12,3.333333,0.32,3,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,11
  297.   01,2,
  298. <title,
  299.     Font =            F8>
  300.  
  301. Atoms, Properties, and Selections
  302.  
  303. <End Text>)
  304.  (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
  305.   667,6))>
  306.  
  307. <Left Page Header, Frame =
  308. V4,
  309. (g9,1,0
  310.  (T8,1,12,0,0.293333,3,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,1101,
  311.   2,
  312. <title,
  313.     Alignment =        Left,
  314.     Font =            F8>
  315.  
  316. Atoms, Properties, and Selections
  317.  
  318. <End Text>)
  319.  (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
  320.   667,6))>
  321.  
  322. <Right Page Footer, Frame =
  323. V4,
  324. (g9,1,0
  325.  (t8,1,4,6.333333,0.266667,2,17,@nntimsps10b,\240)
  326.  (t8,2,4,0.006667,0.266667,0,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  327.  (v4,3,0,0,0.066667,6.333333,0.066554,17,2,0)
  328.  (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
  329.   667,6))>
  330.  
  331. <Left Page Footer, Frame =
  332. V4,
  333. (g9,1,0
  334.  (t8,1,4,0,0.266667,0,17,@nntimsps10b,\240)
  335.  (t8,2,4,6.333333,0.266667,2,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  336.  (v4,3,0,0.026667,0.066667,6.333333,0.066554,17,2,0)
  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.  
  340. <sectitle,
  341.     Allow Page Break Within = no,
  342.     Allow Page Break After = no>
  343.  
  344. <|,"11<#1e>111">
  345. <Frame,
  346.     Name =            "At Anchor",
  347.     Placement =        At Anchor,
  348.     Width =            4.72 inches,
  349.     Height =        0.94 inches,
  350.     Vertical Alignment =    0.03 inches,
  351.     Diagram =
  352. V4,
  353. (g9,1,0
  354.  (T8,1,12,0.133333,0.426667,4.563333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048
  355.   ,512,102,1101,3,
  356. <title>
  357.  
  358. ATOMS, PROPERTIES,<HR>
  359.  AND SELECTIONS
  360.  
  361. <End Text>)
  362.  (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
  363.   667,6))>
  364. <Frame,
  365.     Name =            "At Anchor",
  366.     Placement =        At Anchor,
  367.     Width =            1.626 inches,
  368.     Height =        0.938 inches,
  369.     Vertical Alignment =    0 inches,
  370.     Diagram =
  371. V4,
  372. (g9,1,0
  373.  (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
  374.   2,1101,3,
  375. <secno,
  376.     TOC Doc Name =        TOC>
  377.  
  378. <Autonum, paranum, 1, First = Yes>
  379.  
  380. <End Text>)
  381.  (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
  382.   2,1101,3,
  383. <"table">
  384.  
  385. <Autonum, table, 1, First = Yes>
  386.  
  387. <End Text>)
  388.  (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
  389.   1,3,
  390. <fig,
  391.     Alignment =        Both,
  392.     Font =            F7,
  393.     Autonumber Name =    figure>
  394.  
  395. <Autonum, figure, 1, First = Yes>
  396.  
  397. <End Text>)
  398.  (g9,5,0
  399.    (p7,5,8,19
  400.      (g9,5,0
  401.        (g9,5,0
  402.          (v4,5,0,0.266667,0,1.6,0,17,1,0)
  403.          (v4,6,0,1.6,0,1.6,0.933333,17,1,0)
  404.          (v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0)
  405.          (v4,8,0,0.266667,0.933333,0.266667,0,17,1,0))))
  406.    (g9,10,0
  407.      (g9,10,8
  408.        (p7,10,1032,13
  409.          (g9,10,0
  410.            (g9,10,0
  411.              (v4,10,0,1.44772,0.934819,1.44772,0.146673,17,1,0)
  412.              (v4,11,0,1.44772,0.146673,1.303158,0.146673,17,1,0)
  413.              (v4,12,0,1.303158,0.146673,1.158596,0.296795,17,1,0)
  414.              (v4,13,0,1.158596,0.296795,1.158596,0.371855,17,1,0)
  415.              (v4,14,0,1.158596,0.371855,1.285088,0.371855,17,1,0)
  416.              (v4,15,0,1.285088,0.371855,1.285088,0.934819,17,1,0)
  417.              (v4,16,0,1.285088,0.934819,1.44772,0.934819,17,1,0))))
  418.        (g9,17,2048
  419.          (v4,17,33,1.140526,0.146673,1.140526,0.146673,17,0,0)
  420.          (v4,18,33,1.140526,1.160003,1.140526,1.160003,17,0,0)
  421.          (v4,19,33,1.52,1.160003,1.52,1.160003,17,0,0)
  422.          (v4,20,33,1.52,0.146673,1.52,0.146673,17,0,0)))
  423.      (g9,22,8
  424.        (p7,22,1032,13
  425.          (g9,22,0
  426.            (g9,22,0
  427.              (v4,22,0,1.074386,0.934819,1.074386,0.146673,17,1,0)
  428.              (v4,23,0,1.074386,0.146673,0.929824,0.146673,17,1,0)
  429.              (v4,24,0,0.929824,0.146673,0.785263,0.296795,17,1,0)
  430.              (v4,25,0,0.785263,0.296795,0.785263,0.371855,17,1,0)
  431.              (v4,26,0,0.785263,0.371855,0.911755,0.371855,17,1,0)
  432.              (v4,27,0,0.911755,0.371855,0.911755,0.934819,17,1,0)
  433.              (v4,28,0,0.911755,0.934819,1.074386,0.934819,17,1,0))))
  434.        (g9,29,2048
  435.          (v4,29,33,0.767192,0.146673,0.767192,0.146673,17,0,0)
  436.          (v4,30,33,0.767192,1.160003,0.767192,1.160003,17,0,0)
  437.          (v4,31,33,1.146667,1.160003,1.146667,1.160003,17,0,0)
  438.          (v4,32,33,1.146667,0.146673,1.146667,0.146673,17,0,0)))))
  439.  (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
  440.   667,6))>
  441.  
  442. <secrule,
  443.     Allow Page Break Within = no,
  444.     Allow Page Break After = yes,
  445.     Autonumber Name =    >
  446.  
  447. <Index, "atom", To Named = p1rule>
  448. <Frame,
  449.     Name =            "At Anchor",
  450.     Placement =        At Anchor,
  451.     Width =            6.35 inches,
  452.     Height =        0.153 inches,
  453.     Vertical Alignment =    0.007 inches,
  454.     Diagram =
  455. V4,
  456. (g9,1,0
  457.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  458.  (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
  459.   667,6))>
  460.  
  461. <p1para,
  462.     Alignment =        Both,
  463.     Font =            F3,
  464.     Allow Page Break After = yes>
  465.  
  466. <F6>Atoms<Tab><F7>11.1<F0><#04>In X, an <F2>atom<F0> is a unique 
  467. ID used as the name for certain server resources <#1f> properties 
  468. and selections.
  469.  
  470. <para>
  471.  
  472. In CLX, an atom is represented by a keyword symbol. For convenience, 
  473. CLX functions also allow atoms to be specified by strings and non<#1e>keyword<SP>
  474. symbols. <F7>xatom<F0> is a CLX data type that permits either string 
  475. or symbol<SP>values. A string is equivalent to the <F7>xatom<F0> 
  476. given by (<F7>intern<F0> <F2>string<F0> <F7>'keyword<F0>). A<SP>symbol 
  477. is equivalent to the <F7>xatom<F0> given by (<F7>intern<F0> (<F7>symbol<#1e>
  478. name<F0> <F2>symbol<F0>) <F7>'keyword<F0>).<SP>The symbol name 
  479. string of an <F7>xatom<F0> must consist only of ISO Latin<SP>characters. 
  480. Note that the case of <F7>xatom<F0> strings is important; the <F7>xatom
  481. <F0><SP><#7f>Atom" is not the same as the <F7>xatom<F0> <#7f>ATOM".
  482.  
  483. Certain atoms are already predefined by every X server. Predefined 
  484. atoms are designed to represent common names that are likely to be 
  485. useful for many client applications. Note that these atoms are predefined 
  486. only in the sense of having <F7>xatom<F0> and <F7>card29<F0> values, 
  487. not in the sense of having required semantics. No interpretation is 
  488. placed on the meaning or use of an atom by the server. The <F7>xatom<F0> 
  489. objects predefined by CLX are listed below.<Index, "CLX", Sort String = clx, "xatom objects">
  490.  
  491. <wtablin,
  492.     Bottom Margin =        0.15 inches,
  493.     Left Margin =        1.60 inches,
  494.     Left Tab =        0/1.45/2.50/3.30/5.20/7.50 inches>
  495.  
  496. <F7>:arc<Tab>:italic_angle<Tab><Tab>:string<HR>
  497. :atom<Tab>:max_space<Tab><Tab>:subscript_x<HR>
  498. :bitmap<Tab>:min_space<Tab><Tab>:subscript_y<HR>
  499. :cap_height<Tab>:norm_space<Tab><Tab>:superscript_x<HR>
  500. :cardinal<Tab>:notice<Tab><Tab>:superscript_y<HR>
  501. :colormap<Tab>:pixmap<Tab><Tab>:underline_position<HR>
  502. :copyright<Tab>:point<Tab><Tab>:underline_thickness<HR>
  503. :cursor<Tab>:point_size<Tab><Tab>:visualid<HR>
  504. :cut_buffer0<Tab>:primary<Tab><Tab>:weight<HR>
  505. :cut_buffer1<Tab>:quad_width<Tab><Tab>:window<HR>
  506. :cut_buffer2<Tab>:rectangle<Tab><Tab>:wm_class<HR>
  507. :cut_buffer3<Tab>:resolution<Tab><Tab>:wm_client_machine<HR>
  508. :cut_buffer4<Tab>:resource_manager<Tab>:wm_command<HR>
  509. :cut_buffer5<Tab>:rgb_best_map<Tab><Tab>:wm_hints<HR>
  510. :cut_buffer6<Tab>:rgb_blue_map<Tab><Tab>:wm_icon_name<HR>
  511. :cut_buffer7<Tab>:rgb_color_map<Tab><Tab>:wm_icon_size<HR>
  512. :drawable<Tab>:rgb_default_map<Tab>:wm_name<HR>
  513. :end_space<Tab>:rgb_gray_map<Tab><Tab>:wm_normal_hints<HR>
  514. :family_name<Tab>:rgb_green_map<Tab>:wm_size_hints<HR>
  515. :font<Tab>:rgb_red_map<Tab><Tab>:wm_transient_for<HR>
  516. :font_name<Tab>:secondary<Tab><Tab>:wm_zoom_hints<HR>
  517. :full_name<Tab>:strikeout_ascent<Tab>:x_height<HR>
  518. :integer<Tab>:strikeout_descent
  519.  
  520. <para,
  521.     New Page =        yes>
  522.  
  523. <|,"11<#1e>112">When creating a new atom, the following conventions should be 
  524. obeyed in order to minimize the conflict between atom names:
  525.  
  526. <bullet>
  527.  
  528. <F9>w<Tab><F0>Symbol names beginning with an underscore should be 
  529. used for atoms that are private to a particular vendor or organization. 
  530. An additional prefix should identify the organization.
  531.  
  532. <F9>w<Tab><F0>Symbol names beginning with two underscores should 
  533. be used for atoms that are private to a single application or end 
  534. user.
  535.  
  536. <para>
  537.  
  538. CLX provides functions to convert between an <F7>xatom<F0> and its 
  539. corresponding ID<SP>integer. The data type of an atom ID is<F7> card29<F0>. 
  540. The <F7>xatom<F0> representation<SP>is usually sufficient for most 
  541. CLX programs. However, it is occasionally<SP>useful to be able to 
  542. convert an atom ID returned in events or properties<SP>into its corresponding 
  543. <F7>xatom<F0>.
  544.  
  545. <syntax,
  546.     Bottom Margin =        0 inches,
  547.     Left Tab =        -0.90/0 inches,
  548.     Right Tab =        7.50 inches>
  549.  
  550. atom<#1e>name <F2>display atom<#1e>id<F0><Tab><F3>Function<Index, Doc = operations, "xlib:atom<#1e>name", Sort String = "atom<#1e>name">
  551.  
  552. <return>
  553.  
  554. <Tab><F3>Returns: <F2><HR>
  555.   atom<#1e>name<F3> <#1f> Type <F0>keyword<F3>.<F2> 
  556.  
  557. <para>
  558.  
  559. Returns the atom keyword for the <F2>atom<#1e>id<F0> on the given <F2>displa
  560. y<F0> server.
  561.  
  562. <arg>
  563.  
  564. display <#1f> <F3>A <F7>display<F3> object.
  565.  
  566. atom<#1e>id <#1f> <F3>A <F7>card29<F3>.
  567.  
  568. <syntax0>
  569.  
  570. find<#1e>atom <F2>display atom<#1e>name<F0><Tab><F3>Function<Index, Doc = operations, "xlib:find<#1e>atom", Sort String = "find<#1e>atom">
  571.  
  572. <return>
  573.  
  574. <Tab><F3>Returns: <F2><HR>
  575.   atom<#1e>id<F3> <#1f> Type <F0>card29<F3> or <F0>null<F3>.
  576.  
  577. <para>
  578.  
  579. Returns the atom ID for the given <F2>atom<#1e>nam<F0>e, if it exists. 
  580. If no atom of<SP>that name exists for the display server, <F7>nil<F0> 
  581. is returned.
  582.  
  583. <arg>
  584.  
  585. display <#1f> <F3>A <F7>display<F3> object.
  586.  
  587. atom<#1e>name <#1f> <F3>An <F7>xatom<F3>.
  588.  
  589. <syntax0>
  590.  
  591. intern<#1e>atom <F2>display atom<#1e>name<F0><Tab><F3>Function<Index, Doc = operations, "xlib:intern<#1e>atom", Sort String = "intern<#1e>atom">
  592.  
  593. <return>
  594.  
  595. <Tab><F3>Returns: <F2><HR>
  596.   atom<#1e>id<F3> <#1f> Type <F0>card29<F3> or<F0> null<F3>.
  597.  
  598. <para>
  599.  
  600. Creates an atom with the given name and returns its atom ID. The atom 
  601. can<SP>survive the interning client; it exists until the last server 
  602. connection has<SP>been closed and the server resets itself.
  603.  
  604. <arg>
  605.  
  606. display <#1f> <F3>A <F7>display<F3> object.
  607.  
  608. atom<#1e>name <#1f> <F3>An<F7> xatom<F3>.
  609.  
  610. <p1rule>
  611.  
  612. <Index, "property", To Named = p1rule>
  613. <Frame,
  614.     Name =            p1rule,
  615.     Placement =        At Anchor,
  616.     Width =            6.35 inches,
  617.     Height =        0.153 inches,
  618.     Vertical Alignment =    0.007 inches,
  619.     Shared Contents =    yes>
  620.  
  621. <p1para,
  622.     Alignment =        Both,
  623.     Font =            F3,
  624.     Allow Page Break After = yes>
  625.  
  626. <F6>Properties<Tab><F7>11.2<F0><#04>For each window, an X server 
  627. can record a set of <F2>properties<F0>.<SP>Properties are a general 
  628. mechanism for clients to associate arbitrary data<SP>with a window, 
  629. and for clients to communicate window data to each other via<SP>the 
  630. server. No interpretation is placed on property data by the server<SP>itself.
  631.  
  632. <para>
  633.  
  634. A property consists of a name, a type, a data format, and data. The 
  635. name of<SP>a property is given by an atom. The property type is another 
  636. atom used to<SP>denote the intended interpretation of the property 
  637. data. The property<SP>formats specifies whether the property data 
  638. should be treated as a set of<SP>8<#1e>, 16<#1e>, or 32<#1e>bit elements. 
  639. The property format must be specified so that the<SP>X server can 
  640. communicate property data with the correct byte order.
  641.  
  642. CLX provides functions to:
  643.  
  644. <bullet>
  645.  
  646. <|,"11<#1e>113"><F9>w<Tab><F0>Create or change a property
  647.  
  648. <F9>w<Tab><F0>Return property data
  649.  
  650. <F9>w<Tab><F0>List window properties
  651.  
  652. <F9>w<Tab><F0>Delete a property
  653.  
  654. <syntax,
  655.     Left Tab =        -0.90/0 inches,
  656.     Right Tab =        7.50 inches>
  657.  
  658. change<#1e>property <F2>window property data type format <F3>&key 
  659. (<F0>:mode<F3> <F0>:replace<F3>) <F0><Tab><F3>Function<Index, Doc = operations, "xlib:change<#1e>property", Sort String = "change<#1e>property"><HR>
  660. (<F0>:start<F3> 0) <F0>:end<F2> <F0>:transform
  661.  
  662. <para>
  663.  
  664. Creates a new window property or changes an existing property. A<SP><F7>:prope
  665. rty<#1e>notify<F0> event is generated for the <F2>window<F0>.
  666.  
  667. If the <F7>:mode<F0> is <F7>:replace<F0>, the new <F2>data<F0>, <F2>type
  668. <F0>, and <F2>format<F0> replace any<SP>previous values. The subsequence 
  669. of previous data elements that are<SP>replaced is defined by the <F7>:start
  670. <F0> and <F7>:end<F0> indexes.
  671.  
  672. If the <F7>:mode<F0> is <F7>:prepend<F0> or <F7>:append<F0>, 
  673. no previous data is changed, but<FJ>
  674. the new <F2>data<F0> is added at the beginning or the end, respectively. 
  675. For these<SP>modes, if the <F2>property<F0> already exists, the 
  676. new <F2>type<F0> and <F2>format<F0> must<SP>match the previous 
  677. values.
  678.  
  679. The <F7>:transform<F0>, if given, is a function used to compute 
  680. the actual property<SP>data stored. The <F7>:transform<F0>, which 
  681. must accept a single data element and<SP>return a single transformed 
  682. data element, is called for each data element.<SP>If the <F2>data<F0> 
  683. is a string, the default <F7>:transform<F0> function transforms<SP>each 
  684. character into its ASCII code; otherwise, the default is to store 
  685. the<SP><F2>data<F0> unchanged.
  686.  
  687. <arg>
  688.  
  689. window <#1f> <F3>A <F7>window<F3>.
  690.  
  691. property<F3> <F0><#1f> <F3>A property name <F7>xatom<F3>.
  692.  
  693. data <#1f> <F3>A sequence of property data elements.
  694.  
  695. type <#1f> <F3>The property type <F7>xatom<F3>.
  696.  
  697. format <#1f> <F3>One of 8, 16, or 32.
  698.  
  699. <F7>:mode<F0> <#1f> <F3>One of <F7>:replace<F3>, <F7>:append<F3>, 
  700. or <F7>:prepend<F3>.
  701.  
  702. <F7>:start, :end <F3><#1f><F0> <F3>Specify the subsequence of 
  703. previous data replaced when <F7>:mode<F3><SP>is <F7>:replace<F3>.
  704.  
  705. <F7>:transform<F0> <#1f> <F3>A function that transforms each data 
  706. element into a data<SP>value to store.
  707.  
  708. <syntax,
  709.     Left Tab =        -0.90/0 inches,
  710.     Right Tab =        7.50 inches>
  711.  
  712. delete<#1e>property <F2>window property<F0><Tab><F3>Function<Index, Doc = operations, "xlib:delete<#1e>property", Sort String = "delete<#1e>property">
  713.  
  714. <para>
  715.  
  716. Deletes the <F2>window property<F0>. If the <F2>property<F0> already 
  717. exists, a<SP><F7>:property<#1e>notify<F0> event is generated for 
  718. the <F2>window<F0>. 
  719.  
  720. <arg>
  721.  
  722. window <#1f> <F3>A <F7>window<F3>.
  723.  
  724. property <#1f> <F3>A property name <F7>xatom<F3>.
  725.  
  726. <syntax,
  727.     Bottom Margin =        0 inches,
  728.     Left Tab =        -0.90/0 inches,
  729.     Right Tab =        7.50 inches>
  730.  
  731. <|,"11<#1e>114">get<#1e>property <F2>window property <F3>&key <F0>:type<F3> 
  732. (<F0>:start<F3> 0) <F0>:end :delete<#1e>p <Tab><F3>Function<Index, Doc = operations, "xlib:get<#1e>property", Sort String = "get<#1e>property"><HR>
  733. (<F0>:result<#1e>type 'list<F3>) <F0>:transform
  734.  
  735. <return>
  736.  
  737. <Tab><F3>Returns: <F2><HR>
  738.   data <F3><#1f> Type <F0>sequence<F3>.<F2> <HR>
  739.   type <F3><#1f> Type <F0>xatom<F3>.<F2> <HR>
  740.   format <F3><#1f> Type (<F0>member 8 16 32<F3>).<F2> <HR>
  741.   bytes<#1e>after <F3><#1f> Type <F0>card32<F3>. 
  742.  
  743. <para>
  744.  
  745. Returns a subsequence of the data for the window property. The <F7>:start
  746. <F0> and<SP><F7>:end<F0> indexes specify the property <F2>data<F0> 
  747. elements returned. The <F7>:transform<F0><SP>function is called 
  748. for elements of the specified subsequence to compute the<SP><F2>data<F0> 
  749. sequence returned. The property <F2>type<F0> and <F2>format<F0> 
  750. are also returned.<SP>The final return value gives the actual number 
  751. of data bytes (not elements)<SP>following the last data element returned.
  752.  
  753. If the <F2>property<F0> does not exist, the returned <F2>data<F0> 
  754. and <F2>type<F0> are <F7>nil<F0> and<SP>the returned <F2>format<F0> 
  755. and <F2>bytes<#1e>after<F0> are zero.
  756.  
  757. If the given <F7>:type<F2> <F0>is non<#1e><F7>nil<F0> but does 
  758. not match the actual property type,<SP>then the <F2>data<F0> returned 
  759. is <F7>nil<F0>, the <F2>type<F0> and <F2>format<F0> returned 
  760. give the actual<SP>property values, and the <F2>bytes<#1e>after<F0> 
  761. returned gives the total number of bytes<SP>(not elements) in the 
  762. property data.
  763.  
  764. If the given <F7>:type<F0> is <F7>nil<F0> or if it matches the 
  765. actual property type, then: 
  766.  
  767. <bullet>
  768.  
  769. <F9>w<Tab><F0>The <F2>data<F0> returned is the transformed subsequence 
  770. of the property data.
  771.  
  772. <F9>w<Tab><F0>The <F2>type<F0><SP>and <F2>format<F0> returned 
  773. give the actual property values.
  774.  
  775. <F9>w<Tab><F0>The <F2>bytes<#1e>after<F0><SP>returned gives the 
  776. actual number of data bytes (not elements) following the<SP>last data 
  777. element returned. 
  778.  
  779. <para>
  780.  
  781. In this case, the <F7>:delete<#1e>p<F0> argument is also<SP>examined. 
  782. If <F7>:delete<#1e>p<F0> is true and <F2>bytes<#1e>after<F0> is 
  783. zero, the property<SP>is deleted and a <F7>:property<#1e>notify<F0> 
  784. event is generated for the <F2>window<F0>.
  785.  
  786. <arg>
  787.  
  788. window <#1f> <F3>A <F7>window<F3>.
  789.  
  790. property <#1f> <F3>A property name <F7>xatom<F3>.
  791.  
  792. <F7>:type<F0> <#1f> <F3>The requested type <F7>xatom<F3> or <F7>nil<F3>.
  793.  
  794. <F7>:start<F3>, <F7>:end<F0> <#1f> <F3>Specify the subsequence 
  795. of property <F0>data<F3> returned. 
  796.  
  797. <F7>:transform<F0> <#1f> <F3>A function that transforms each data 
  798. element into a data<SP>value to return.
  799.  
  800. <F7>:delete<#1e>p<F0> <#1f> <F3>If true, the existing <F0>property<F3> 
  801. can be deleted.
  802.  
  803. <F7>:result<#1e>type<F0> <#1f> <F3>The t<F0>ype<F3> of data sequence 
  804. to return. Default is <F7>'list<F3>.
  805.  
  806. <syntax,
  807.     Bottom Margin =        0 inches,
  808.     Left Tab =        -0.90/0 inches,
  809.     Right Tab =        7.50 inches>
  810.  
  811. list<#1e>properties <F2>window <F3>&key (<F0>:result<#1e>type 'list<F3>)
  812. <F0><Tab><F3>Function<Index, Doc = operations, "xlib:list<#1e>properties", Sort String = "list<#1e>properties">
  813.  
  814. <return>
  815.  
  816. <Tab><F3>Returns: <F2><HR>
  817.   properties <F3><#1f> Type <F0>sequence<F3> of <F0>keyword<F3>.<F2> 
  818.  
  819. <para>
  820.  
  821. Returns a sequence containing the names of all <F2>window<F0> <F2>properties
  822. <F0>.
  823.  
  824. <arg>
  825.  
  826. window <#1f> <F3>A <F7>window<F3>.
  827.  
  828. <F7>:result<#1e>type<F0> <#1f> <F3>The type of sequence to return. 
  829. Default is <F7>'list<F3>.
  830.  
  831. <syntax,
  832.     Left Tab =        -0.90/0 inches,
  833.     Right Tab =        7.50 inches>
  834.  
  835. rotate<#1e>properties <F2>window properties <F3>&optional (<F2>delta<F3> 
  836. 1)<F0><Tab><F3>Function<Index, Doc = operations, "xlib:rotate<#1e>properties", Sort String = "rotate<#1e>properties">
  837.  
  838. <para>
  839.  
  840. Rotates the values of the given <F2>window properties<F0>. The value 
  841. of property <F2>i<F0> in the given sequence is changed to the value 
  842. of the property at<SP>index (<F7>mod<F0> (+ <F2>i<F0> <F2>delta<F0>) 
  843. (<F7>length<F0> <F2>properties<F0>)). This function operates much<SP>like 
  844. the <F7>rotatef<F0> macro in Common Lisp.
  845.  
  846. <|,"11<#1e>115">If (<F7>mod<F0> <F2>delta<F0> (<F7>length<F0> <F2>properties<F0>)
  847. ) is non<#1e>zero, a <F7>:property<#1e>notify<F0><SP>event is generated 
  848. on the window for each property, in the same order as<SP>they appear 
  849. in the <F2>properties<F0> sequence.
  850.  
  851. <arg>
  852.  
  853. window <#1f> <F3>A <F7>window<F3>.
  854.  
  855. properties <#1f> <F3>A sequence of <F7>xatom<F3> values.
  856.  
  857. delta <#1f> <F3>The index interval between source and destination 
  858. elements of <F0>properties<F3>.
  859.  
  860. <p1rule>
  861.  
  862. <Index, "selection", To Named = p1rule>
  863. <Frame,
  864.     Name =            p1rule,
  865.     Placement =        At Anchor,
  866.     Width =            6.35 inches,
  867.     Height =        0.153 inches,
  868.     Vertical Alignment =    0.007 inches,
  869.     Shared Contents =    yes>
  870.  
  871. <p1para,
  872.     Alignment =        Both,
  873.     Font =            F3,
  874.     Allow Page Break After = yes>
  875.  
  876. <F6>Selections<Tab><F7>11.3<F0><#04>A selection is an atom used 
  877. to identify data that can be shared among all<SP>client programs connected 
  878. to an X server. Unlike properties, the data<SP>represented by a selection 
  879. is stored by some client program, not by the<SP>server.
  880.  
  881. <para>
  882.  
  883. The data named by a selection is associated with a client window, 
  884. which is<SP>referred to as the <F2>selection owner<F0>. The server 
  885. always knows which<SP>window is the owner of a selection. Selections 
  886. can be created freely by<SP>clients using <F7>intern<#1e>atom<F0> 
  887. to create an atom. CLX provides functions to<SP>inquire or change 
  888. the owner of a selection and to <F2>convert<F0> a<SP>selection.
  889.  
  890. Conversion is the key to the use of selections for inter<#1e>client<SP>communic
  891. ation. Suppose Client A wants to paste the contents of the data<SP>named 
  892. by selection <F2>S<F0> into his window <F2>WA<F0>. Client A calls <F7>conv
  893. ert<#1e>selection<F0><SP>on selection atom <F2>S<F0>, sending a 
  894. conversion request to the server. The<SP>server, in turn, sends a <F7>:selecti
  895. on<#1e>request<F0> event to the current owner of <F2>S<F0>, which 
  896. is window <F2>WB<F0> belonging to Client B. The <F7>:selection<#1e>request
  897. <F0> event<SP>contains the <F2>requestor<F0> window (<F2>WA<F0>), 
  898. the selection atom (<F2>S<F0>), an atom<SP>identifying a requested 
  899. data type, and the name of a property of <F2>WA<F0> into<SP>which 
  900. the value of <F2>S<F0> will be stored.
  901.  
  902. Since <F2>WB<F0> is the owner of <F2>S<F0>, it must be associated 
  903. with the data defined by<SP>Client B as the value of <F2>S<F0>. 
  904. When <F2>WB<F0> gets the <F7>:selection<#1e>request<F0> event,<SP>Client 
  905. B is expected to convert the value of <F2>S<F0> to the requested 
  906. data type<SP>(if possible) and store the converted value in the given 
  907. requestor property.<SP>Client B is then expected to send a <F7>:selection<#1e>
  908. notify<F0> event to the requestor<SP>window <F2>WA<F0>, informing 
  909. the requestor that the converted value for <F2>S<F0> is ready.<SP>Upon 
  910. receiving the <F7>:selection<#1e>notify<F0> event, Client A can 
  911. call <F7>get<#1e>property<F0><SP>to retrieve the converted value 
  912. and to paste it into <F2>WA<F0>.
  913.  
  914. <"note",
  915.     Top Margin =        0.15 inches,
  916.     Bottom Margin =        0.23 inches>
  917.  
  918. <Tab-><HR>
  919. <F7>NOTE: <F0>Clients using selections must always be prepared to 
  920. handle<SP><F7>:selection<#1e>request<F0> events and/or <F7>:selection<#1e>no
  921. tify<F0> events. There is no way<SP>for a client to ask not to receive 
  922. these types of events.<HR>
  923. <Tab->
  924.  
  925. <para>
  926.  
  927. Type atoms used in selection conversion can represent arbitrary<SP>client<#1e>d
  928. efined interpretations of the selection data. For example, if the<SP>value 
  929. of selection <F2>S<F0> is a text string, Client A might request 
  930. its typeface<SP>by requesting conversion to the <F7>:font<F0> type. 
  931. A type <F7>atom<F0> can also represent<SP>a request to the selection 
  932. owner to perform some action as a side<#1e>effect of<SP>conversion 
  933. (for example, <F7>:delete<F0>). Some of the predefined atoms of 
  934. an X<SP>server are intended to be used as selection types (for example, <F7>:c
  935. olormap<F0>,<SP><F7>:bitmap<F0>, <F7>:string<F0>, and so forth) 
  936. However, X does not impose any requirements on the<SP>interpretation 
  937. of type atoms.
  938.  
  939. <|,"11<#1e>116">When multiple clients negotiate for ownership of a selection, 
  940. certain race<SP>conditions might be possible. For example, two clients 
  941. might each receive a<SP>user command to assert ownership of the <F7>:primary
  942. <F0> selection, but the order in<SP>which the server processes these 
  943. client requests is unpredictable. As a<SP>result, the ownership request 
  944. initiated most recently by the user might be<SP>incorrectly overridden 
  945. by the other earlier ownership request. To prevent such<SP>anomalies, 
  946. the server records a <F2>last<#1e>changed<F0> timestamp for each 
  947. change of<SP>selection ownership.
  948.  
  949. Although inter<#1e>client communication via selections is rather complex, 
  950. it<SP>offers important benefits. Since selection communication is 
  951. mediated by an<SP>X server, clients can share data even though they 
  952. are running on different hosts<SP>and using different networking protocols. 
  953. Data storage and conversion is<SP>distributed among clients so that 
  954. the server is not required to provide all<SP>possible data types or 
  955. to store multiple forms of selection data.
  956.  
  957. Certain predefined atoms are used as standard selections, as described 
  958. in<SP>the X11 Inter<#1e>client Communications Conventions Manual. 
  959. Some of the<SP>standard selections covered by these conventions are:
  960.  
  961. <bullet>
  962.  
  963. <F9>w<Tab><F7>:primary<F2> <#1f> <F0>The <F2>primary selection<F0>. 
  964. The main vehicle for inter<#1e>client cut and paste operations.
  965.  
  966. <F9>w<Tab><F7>:secondary<F2> <#1f> <F0>The <F2>secondary selection<F0>. 
  967. In some environments, clients can use this as an auxiliary to <F7>:primary
  968. <F0>.
  969.  
  970. <F9>w<Tab><F7>:clipboard<F2> <#1f> <F0>Analogous to akill ring. 
  971. Represents the most<SP>recently deleted data item.
  972.  
  973. <syntax,
  974.     Left Tab =        -0.90/0 inches,
  975.     Right Tab =        7.50 inches>
  976.  
  977. convert<#1e>selection <F2>selection type requestor <F3>&optional <F2>propert
  978. y time<F0><Tab><F3>Function<Index, Doc = operations, "xlib:convert<#1e>selection", Sort String = "convert<#1e>selection">
  979.  
  980. <para>
  981.  
  982. Requests that the value of the <F2>selection<F0> be converted to 
  983. the specified <F2>type<F0><SP>and stored in the given <F2>property<F0> 
  984. of the <F2>requestor<F0> window.
  985.  
  986. If the <F2>selection<F0> has an owner, the X server sends a :<F7>selection<#1e>
  987. request<F0><SP>event to the owner window. Otherwise, if no owner 
  988. exists, the server<SP>generates on the requestor a <F7>:selection<#1e>notify
  989. <F0> event containing a <F7>nil<F0><SP><F2>property<F0> atom.
  990.  
  991. <para,
  992.     Bottom Margin =        0.10 inches>
  993.  
  994. The given <F2>property<F0> specifies the requestor property that 
  995. will receive the<SP>converted value. If the <F2>property<F0> is 
  996. omitted, the <F2>selection<F0> owner will<SP>define a property to 
  997. use. The <F2>time<F0> furnishes a timestamp representing the<SP>time 
  998. of the conversion request; by default, the current server time is 
  999. used.
  1000.  
  1001. <"note",
  1002.     Top Margin =        0.10 inches,
  1003.     Bottom Margin =        0.20 inches>
  1004.  
  1005. <Tab-><HR>
  1006. <F7>NOTE: <F0>Standard conventions for inter<#1e>client communication 
  1007. require that both<SP>the requestor property and the time must be specified. 
  1008. If possible, the<SP>time should be the time of a user event which 
  1009. initiated the conversion.<SP>Alternatively, a timestamp can be obtained 
  1010. by calling <F7>change<#1e>property<F0> to<SP>append zero<#1e>length 
  1011. data to some property; the timestamp in the resulting<SP><F7>:property<#1e>not
  1012. ify<F0> event can then be used.<HR>
  1013. <Tab->
  1014.  
  1015. <arg>
  1016.  
  1017. selection <#1f> <F3>The <F7>xatom<F3> for the selection name.
  1018.  
  1019. type <#1f> <F3>The <F7>xatom<F3> for the requested data type.
  1020.  
  1021. requestor <#1f> <F3>The <F7>window<F3> to receive the converted <F0>selecti
  1022. on<F3> value.
  1023.  
  1024. property <#1f> <F3>The <F7>xatom<F3> for the requestor property 
  1025. to receive the converted<SP>value.
  1026.  
  1027. time <#1f> <F3>A <F7>timestamp<F3>.
  1028.  
  1029. <syntax,
  1030.     Bottom Margin =        0 inches,
  1031.     Left Tab =        -0.90/0 inches,
  1032.     Right Tab =        7.50 inches>
  1033.  
  1034. <|,"11<#1e>117">selection<#1e>owner <F2>display selection<F3> &optional <F2>time<F0><Tab>
  1035. <F3>Function<Index, Doc = operations, "xlib:selection<#1e>owner", Sort String = "selection<#1e>owner">
  1036.  
  1037. <return>
  1038.  
  1039. <Tab><F3>Returns: <F2><HR>
  1040.   owner <F3><#1f> Type <F0>window<F3> or <F0>null<F3>.
  1041.  
  1042. <para,
  1043.     Bottom Margin =        0.14 inches>
  1044.  
  1045. Returns and (with <F7>setf<F0>) changes the owner and the last<#1e>changed 
  1046. <F2>time<F0> for the<SP><F2>selection<F0>. If the owner is <F7>nil<F0>, 
  1047. no owner for the <F2>selection<F0> exists. <SP>When the owner window 
  1048. for a <F2>selection<F0> is destroyed, the <F2>selection<F0> owner<SP>is 
  1049. set to <F7>nil<F0> without affecting the last<#1e>changed <F2>time<F0>.
  1050.  
  1051. The <F2>time<F0> argument is used only when changing the <F2>selection<F0> 
  1052. owner. If the <F2>time<F0><SP>is <F7>nil<F0>, the current server 
  1053. time is used. If the <F2>time<F0> is earlier than the<SP>current 
  1054. last<#1e>changed time of the <F2>selection<F0> or if the <F2>time<F0> 
  1055. is later<FJ>
  1056. than the<SP>current server time, the owner is not changed. Therefore, 
  1057. a client<SP>should always confirm successful change of ownership by 
  1058. immediately calling<SP><F7>selection<#1e>owner<F0>. If the change 
  1059. in ownership is successful, the<SP>last<#1e>changed time of the <F2>selection
  1060. <F0> is set to the specified <F2>time<F0>.
  1061.  
  1062. <para>
  1063.  
  1064. If the change in ownership is successful and the new owner is different 
  1065. from<SP>the previous owner, and if the previous owner is not <F7>nil<F0>, 
  1066. a<SP><F7>:selection<#1e>clear<F0> event is generated for the previous 
  1067. owner window.
  1068.  
  1069. <"note",
  1070.     Top Margin =        0.10 inches,
  1071.     Bottom Margin =        0.20 inches>
  1072.  
  1073. <Tab-><HR>
  1074. <F7>NOTE: <F0>Standard conventions for inter<#1e>client communication 
  1075. require that a<SP>non<#1e>nil time must be specified. If possible, 
  1076. the time should be the time<FJ>
  1077. of a<SP>user event which initiated the change of ownership. Alternatively, 
  1078. a<FJ>
  1079. timestamp can be obtained by calling change<#1e>property to append 
  1080. zero<#1e>length<SP>data to some property; the timestamp in the resulting <F7>:
  1081. property<#1e>notify<F0> event can then be used.<HR>
  1082. <Tab->
  1083.  
  1084. <arg>
  1085.  
  1086. display<F3> <#1f> A <F7>display<F3>.
  1087.  
  1088. selection<F3> <#1f> The <F7>xatom<F3> for the selection name.
  1089.  
  1090. time<F3> <#1f> A <F7>timestamp<F3>.
  1091.  
  1092. <newpage>
  1093.  
  1094. <|,"11<#1e>118">
  1095.