OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/hostdependX86LINUX64.git] / util / X86LINUX64 / man / mann / selection.n
1 '\"
2 '\" Copyright (c) 1990-1994 The Regents of the University of California.
3 '\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
4 '\"
5 '\" See the file "license.terms" for information on usage and redistribution
6 '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7 '\" 
8 .TH selection n 8.1 Tk "Tk Built-In Commands"
9 .\" The -*- nroff -*- definitions below are for supplemental macros used
10 .\" in Tcl/Tk manual entries.
11 .\"
12 .\" .AP type name in/out ?indent?
13 .\"     Start paragraph describing an argument to a library procedure.
14 .\"     type is type of argument (int, etc.), in/out is either "in", "out",
15 .\"     or "in/out" to describe whether procedure reads or modifies arg,
16 .\"     and indent is equivalent to second arg of .IP (shouldn't ever be
17 .\"     needed;  use .AS below instead)
18 .\"
19 .\" .AS ?type? ?name?
20 .\"     Give maximum sizes of arguments for setting tab stops.  Type and
21 .\"     name are examples of largest possible arguments that will be passed
22 .\"     to .AP later.  If args are omitted, default tab stops are used.
23 .\"
24 .\" .BS
25 .\"     Start box enclosure.  From here until next .BE, everything will be
26 .\"     enclosed in one large box.
27 .\"
28 .\" .BE
29 .\"     End of box enclosure.
30 .\"
31 .\" .CS
32 .\"     Begin code excerpt.
33 .\"
34 .\" .CE
35 .\"     End code excerpt.
36 .\"
37 .\" .VS ?version? ?br?
38 .\"     Begin vertical sidebar, for use in marking newly-changed parts
39 .\"     of man pages.  The first argument is ignored and used for recording
40 .\"     the version when the .VS was added, so that the sidebars can be
41 .\"     found and removed when they reach a certain age.  If another argument
42 .\"     is present, then a line break is forced before starting the sidebar.
43 .\"
44 .\" .VE
45 .\"     End of vertical sidebar.
46 .\"
47 .\" .DS
48 .\"     Begin an indented unfilled display.
49 .\"
50 .\" .DE
51 .\"     End of indented unfilled display.
52 .\"
53 .\" .SO ?manpage?
54 .\"     Start of list of standard options for a Tk widget. The manpage
55 .\"     argument defines where to look up the standard options; if
56 .\"     omitted, defaults to "options". The options follow on successive
57 .\"     lines, in three columns separated by tabs.
58 .\"
59 .\" .SE
60 .\"     End of list of standard options for a Tk widget.
61 .\"
62 .\" .OP cmdName dbName dbClass
63 .\"     Start of description of a specific option.  cmdName gives the
64 .\"     option's name as specified in the class command, dbName gives
65 .\"     the option's name in the option database, and dbClass gives
66 .\"     the option's class in the option database.
67 .\"
68 .\" .UL arg1 arg2
69 .\"     Print arg1 underlined, then print arg2 normally.
70 .\"
71 .\" .QW arg1 ?arg2?
72 .\"     Print arg1 in quotes, then arg2 normally (for trailing punctuation).
73 .\"
74 .\" .PQ arg1 ?arg2?
75 .\"     Print an open parenthesis, arg1 in quotes, then arg2 normally
76 .\"     (for trailing punctuation) and then a closing parenthesis.
77 .\"
78 .\"     # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
79 .if t .wh -1.3i ^B
80 .nr ^l \n(.l
81 .ad b
82 .\"     # Start an argument description
83 .de AP
84 .ie !"\\$4"" .TP \\$4
85 .el \{\
86 .   ie !"\\$2"" .TP \\n()Cu
87 .   el          .TP 15
88 .\}
89 .ta \\n()Au \\n()Bu
90 .ie !"\\$3"" \{\
91 \&\\$1 \\fI\\$2\\fP (\\$3)
92 .\".b
93 .\}
94 .el \{\
95 .br
96 .ie !"\\$2"" \{\
97 \&\\$1  \\fI\\$2\\fP
98 .\}
99 .el \{\
100 \&\\fI\\$1\\fP
101 .\}
102 .\}
103 ..
104 .\"     # define tabbing values for .AP
105 .de AS
106 .nr )A 10n
107 .if !"\\$1"" .nr )A \\w'\\$1'u+3n
108 .nr )B \\n()Au+15n
109 .\"
110 .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
111 .nr )C \\n()Bu+\\w'(in/out)'u+2n
112 ..
113 .AS Tcl_Interp Tcl_CreateInterp in/out
114 .\"     # BS - start boxed text
115 .\"     # ^y = starting y location
116 .\"     # ^b = 1
117 .de BS
118 .br
119 .mk ^y
120 .nr ^b 1u
121 .if n .nf
122 .if n .ti 0
123 .if n \l'\\n(.lu\(ul'
124 .if n .fi
125 ..
126 .\"     # BE - end boxed text (draw box now)
127 .de BE
128 .nf
129 .ti 0
130 .mk ^t
131 .ie n \l'\\n(^lu\(ul'
132 .el \{\
133 .\"     Draw four-sided box normally, but don't draw top of
134 .\"     box if the box started on an earlier page.
135 .ie !\\n(^b-1 \{\
136 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
137 .\}
138 .el \}\
139 \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
140 .\}
141 .\}
142 .fi
143 .br
144 .nr ^b 0
145 ..
146 .\"     # VS - start vertical sidebar
147 .\"     # ^Y = starting y location
148 .\"     # ^v = 1 (for troff;  for nroff this doesn't matter)
149 .de VS
150 .if !"\\$2"" .br
151 .mk ^Y
152 .ie n 'mc \s12\(br\s0
153 .el .nr ^v 1u
154 ..
155 .\"     # VE - end of vertical sidebar
156 .de VE
157 .ie n 'mc
158 .el \{\
159 .ev 2
160 .nf
161 .ti 0
162 .mk ^t
163 \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
164 .sp -1
165 .fi
166 .ev
167 .\}
168 .nr ^v 0
169 ..
170 .\"     # Special macro to handle page bottom:  finish off current
171 .\"     # box/sidebar if in box/sidebar mode, then invoked standard
172 .\"     # page bottom macro.
173 .de ^B
174 .ev 2
175 'ti 0
176 'nf
177 .mk ^t
178 .if \\n(^b \{\
179 .\"     Draw three-sided box if this is the box's first page,
180 .\"     draw two sides but no top otherwise.
181 .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
182 .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
183 .\}
184 .if \\n(^v \{\
185 .nr ^x \\n(^tu+1v-\\n(^Yu
186 \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
187 .\}
188 .bp
189 'fi
190 .ev
191 .if \\n(^b \{\
192 .mk ^y
193 .nr ^b 2
194 .\}
195 .if \\n(^v \{\
196 .mk ^Y
197 .\}
198 ..
199 .\"     # DS - begin display
200 .de DS
201 .RS
202 .nf
203 .sp
204 ..
205 .\"     # DE - end display
206 .de DE
207 .fi
208 .RE
209 .sp
210 ..
211 .\"     # SO - start of list of standard options
212 .de SO
213 'ie '\\$1'' .ds So \\fBoptions\\fR
214 'el .ds So \\fB\\$1\\fR
215 .SH "STANDARD OPTIONS"
216 .LP
217 .nf
218 .ta 5.5c 11c
219 .ft B
220 ..
221 .\"     # SE - end of list of standard options
222 .de SE
223 .fi
224 .ft R
225 .LP
226 See the \\*(So manual entry for details on the standard options.
227 ..
228 .\"     # OP - start of full description for a single option
229 .de OP
230 .LP
231 .nf
232 .ta 4c
233 Command-Line Name:      \\fB\\$1\\fR
234 Database Name:  \\fB\\$2\\fR
235 Database Class: \\fB\\$3\\fR
236 .fi
237 .IP
238 ..
239 .\"     # CS - begin code excerpt
240 .de CS
241 .RS
242 .nf
243 .ta .25i .5i .75i 1i
244 ..
245 .\"     # CE - end code excerpt
246 .de CE
247 .fi
248 .RE
249 ..
250 .\"     # UL - underline word
251 .de UL
252 \\$1\l'|0\(ul'\\$2
253 ..
254 .\"     # QW - apply quotation marks to word
255 .de QW
256 .ie '\\*(lq'"' ``\\$1''\\$2
257 .\"" fix emacs highlighting
258 .el \\*(lq\\$1\\*(rq\\$2
259 ..
260 .\"     # PQ - apply parens and quotation marks to word
261 .de PQ
262 .ie '\\*(lq'"' (``\\$1''\\$2)\\$3
263 .\"" fix emacs highlighting
264 .el (\\*(lq\\$1\\*(rq\\$2)\\$3
265 ..
266 .\"     # QR - quoted range
267 .de QR
268 .ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
269 .\"" fix emacs highlighting
270 .el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
271 ..
272 .\"     # MT - "empty" string
273 .de MT
274 .QW ""
275 ..
276 .BS
277 '\" Note:  do not modify the .SH NAME line immediately below!
278 .SH NAME
279 selection \- Manipulate the X selection
280 .SH SYNOPSIS
281 \fBselection \fIoption\fR ?\fIarg arg ...\fR?
282 .BE
283 .SH DESCRIPTION
284 .PP
285 This command provides a Tcl interface to the X selection mechanism and
286 implements the full selection functionality described in the
287 X Inter-Client Communication Conventions Manual (ICCCM).
288 .PP
289 Note that for management of the \fBCLIPBOARD\fR selection (see below), the
290 \fBclipboard\fR command may also be used.
291 .PP
292 The first argument to \fBselection\fR determines the format of the
293 rest of the arguments and the behavior of the command.  The following
294 forms are currently supported:
295 .TP
296 \fBselection clear\fR ?\fB\-displayof\fR \fIwindow\fR? ?\fB\-selection\fR \fIselection\fR?
297 .
298 If \fIselection\fR exists anywhere on \fIwindow\fR's display, clear it
299 so that no window owns the selection anymore.  \fISelection\fR
300 specifies the X selection that should be cleared, and should be an
301 atom name such as \fBPRIMARY\fR or \fBCLIPBOARD\fR; see the Inter-Client
302 Communication Conventions Manual for complete details.
303 \fISelection\fR defaults to \fBPRIMARY\fR and \fIwindow\fR defaults to
304 .QW . .
305 Returns an empty string. 
306 .TP
307 \fBselection get\fR ?\fB\-displayof\fR \fIwindow\fR? ?\fB\-selection\fR \fIselection\fR? ?\fB\-type\fR \fItype\fR?
308 .
309 Retrieves the value of \fIselection\fR from \fIwindow\fR's display and
310 returns it as a result.  \fISelection\fR defaults to \fBPRIMARY\fR and
311 \fIwindow\fR defaults to
312 .QW . .
313 \fIType\fR specifies the form in which the selection is to be returned
314 (the desired
315 .QW target
316 for conversion, in ICCCM terminology), and
317 should be an atom name such as \fBSTRING\fR or \fBFILE_NAME\fR; see the
318 Inter-Client Communication Conventions Manual for complete details.
319 \fIType\fR defaults to \fBSTRING\fR.  The selection owner may choose to
320 return the selection in any of several different representation
321 formats, such as \fBSTRING\fR, \fBUTF8_STRING\fR, \fBATOM\fR,
322 \fBINTEGER\fR, etc. (this format is different
323 than the selection type; see the ICCCM for all the confusing details).
324 If the selection is returned in a non-string format, such as \fBINTEGER\fR
325 or \fBATOM\fR, the \fBselection\fR command converts it to string format as a
326 collection of fields separated by spaces: atoms are converted to their
327 textual names, and anything else is converted to hexadecimal integers.
328 Note that \fBselection get\fR does not retrieve the selection in the
329 \fBUTF8_STRING\fR format unless told to.
330 .TP
331 \fBselection handle\fR ?\fB\-selection\fR \fIs\fR? ?\fB\-type\fR \fIt\fR? ?\fB\-format\fR \fIf\fR? \fIwindow command\fR
332 .
333 Creates a handler for selection requests, such that \fIcommand\fR will
334 be executed whenever selection \fIs\fR is owned by \fIwindow\fR and
335 someone attempts to retrieve it in the form given by type \fIt\fR
336 (e.g. \fIt\fR is specified in the \fBselection get\fR command).
337 \fIS\fR defaults to \fBPRIMARY\fR, \fIt\fR defaults to \fBSTRING\fR, and
338 \fIf\fR defaults to \fBSTRING\fR.  If \fIcommand\fR is an empty string
339 then any existing handler for \fIwindow\fR, \fIt\fR, and
340 \fIs\fR is removed.
341 Note that when the selection is handled as type \fBSTRING\fR it is also
342 automatically handled as type \fBUTF8_STRING\fR as well.
343 .RS
344 .PP
345 When \fIselection\fR is requested, \fIwindow\fR is the selection owner,
346 and \fItype\fR is the requested type, \fIcommand\fR will be executed
347 as a Tcl command with two additional numbers appended to it
348 (with space separators).  
349 The two additional numbers
350 are \fIoffset\fR and \fImaxChars\fR:  \fIoffset\fR specifies a starting
351 character position in the selection and \fImaxChars\fR gives the maximum
352 number of characters to retrieve.  The command should return a value consisting
353 of at most \fImaxChars\fR of the selection, starting at position
354 \fIoffset\fR.  For very large selections (larger than \fImaxChars\fR)
355 the selection will be retrieved using several invocations of \fIcommand\fR
356 with increasing \fIoffset\fR values.  If \fIcommand\fR returns a string
357 whose length is less than \fImaxChars\fR, the return value is assumed to
358 include all of the remainder of the selection;  if the length of
359 \fIcommand\fR's result is equal to \fImaxChars\fR then
360 \fIcommand\fR will be invoked again, until it eventually
361 returns a result shorter than \fImaxChars\fR.  The value of \fImaxChars\fR
362 will always be relatively large (thousands of characters).
363 .PP
364 If \fIcommand\fR returns an error then the selection retrieval is rejected
365 just as if the selection did not exist at all.
366 .PP
367 The \fIformat\fR argument specifies the representation that should be
368 used to transmit the selection to the requester (the second column of
369 Table 2 of the ICCCM), and defaults to \fBSTRING\fR.  If \fIformat\fR is
370 \fBSTRING\fR, the selection is transmitted as 8-bit ASCII characters (i.e.
371 just in the form returned by \fIcommand\fR, in the system \fBencoding\fR;
372 the \fBUTF8_STRING\fR format always uses UTF-8 as its encoding).
373 If \fIformat\fR is
374 \fBATOM\fR, then the return value from \fIcommand\fR is divided into fields
375 separated by white space;  each field is converted to its atom value,
376 and the 32-bit atom value is transmitted instead of the atom name.
377 For any other \fIformat\fR, the return value from \fIcommand\fR is
378 divided into fields separated by white space and each field is
379 converted to a 32-bit integer;  an array of integers is transmitted
380 to the selection requester.
381 .PP
382 The \fIformat\fR argument is needed only for compatibility with
383 selection requesters that do not use Tk.  If Tk is being
384 used to retrieve the selection then the value is converted back to
385 a string at the requesting end, so \fIformat\fR is
386 irrelevant.
387 .RE
388 .TP
389 \fBselection own\fR ?\fB\-displayof\fR \fIwindow\fR? ?\fB\-selection\fR \fIselection\fR?
390 .TP
391 \fBselection own\fR ?\fB\-command\fR \fIcommand\fR? ?\fB\-selection\fR \fIselection\fR? \fIwindow\fR
392 .
393 The first form of \fBselection own\fR returns the path name of the
394 window in this application that owns \fIselection\fR on the display
395 containing \fIwindow\fR, or an empty string if no window in this
396 application owns the selection.  \fISelection\fR defaults to \fBPRIMARY\fR and
397 \fIwindow\fR defaults to
398 .QW . .
399 .RS
400 .PP
401 The second form of \fBselection own\fR causes \fIwindow\fR to become
402 the new owner of \fIselection\fR on \fIwindow\fR's display, returning
403 an empty string as result. The existing owner, if any, is notified
404 that it has lost the selection.
405 If \fIcommand\fR is specified, it is a Tcl script to execute when
406 some other window claims ownership of the selection away from
407 \fIwindow\fR.  \fISelection\fR defaults to PRIMARY.
408 .RE
409 .SH EXAMPLES
410 .PP
411 On X11 platforms, one of the standard selections available is the
412 \fBSECONDARY\fR selection. Hardly anything uses it, but here is how to read
413 it using Tk:
414 .PP
415 .CS
416 set selContents [\fBselection get\fR \-selection SECONDARY]
417 .CE
418 .PP
419 Many different types of data may be available for a selection; the
420 special type \fBTARGETS\fR allows you to get a list of available types:
421 .PP
422 .CS
423 foreach type [\fBselection get\fR \-type TARGETS] {
424    puts "Selection PRIMARY supports type $type"
425 }
426 .CE
427 .PP
428 To claim the selection, you must first set up a handler to supply the
429 data for the selection. Then you have to claim the selection...
430 .CS
431 # Set up the data handler ready for incoming requests
432 set foo "This is a string with some data in it... blah blah"
433 \fBselection handle\fR \-selection SECONDARY . getData
434 proc getData {offset maxChars} {
435    puts "Retrieving selection starting at $offset"
436    return [string range $::foo $offset [expr {$offset+$maxChars-1}]]
437 }
438
439 # Now we grab the selection itself
440 puts "Claiming selection"
441 \fBselection own\fR \-command lost \-selection SECONDARY .
442 proc lost {} {
443    puts "Lost selection"
444 }
445 .CE
446 .SH "SEE ALSO"
447 clipboard(n)
448 .SH KEYWORDS
449 clear, format, handler, ICCCM, own, selection, target, type
450 '\" Local Variables:
451 '\" mode: nroff
452 '\" End: