.\" Copyright (c) 1993, 1994  X Consortium
.\" 
.\" Permission is hereby granted, free of charge, to any person obtaining a
.\" copy of this software and associated documentation files (the "Software"), 
.\" to deal in the Software without restriction, including without limitation 
.\" the rights to use, copy, modify, merge, publish, distribute, sublicense, 
.\" and/or sell copies of the Software, and to permit persons to whom the 
.\" Software furnished to do so, subject to the following conditions:
.\" 
.\" The above copyright notice and this permission notice shall be included in
.\" all copies or substantial portions of the Software.
.\" 
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
.\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
.\" THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
.\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
.\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
.\" SOFTWARE.
.\" 
.\" Except as contained in this notice, the name of the X Consortium shall not 
.\" be used in advertising or otherwise to promote the sale, use or other 
.\" dealing in this Software without prior written authorization from the 
.\" X Consortium.
.\"
.ds tk X Toolkit
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xI Intrinsics
.ds xW X Toolkit Athena Widgets \- C Language Interface
.ds xL Xlib \- C Language X Interface
.ds xC Inter-Client Communication Conventions Manual
.ds Rn 3
.ds Vn 2.2
.hw XtGet-Selection-Value-Incremental XtGet-Selection-Values-Incremental wid-get
.na
.de Ds
.nf
.\\$1D \\$2 \\$1
.ft 1
.ps \\n(PS
.\".if \\n(VS>=40 .vs \\n(VSu
.\".if \\n(VS<=39 .vs \\n(VSp
..
.de De
.ce 0
.if \\n(BD .DF
.nr BD 0
.in \\n(OIu
.if \\n(TM .ls 2
.sp \\n(DDu
.fi
..
.de FD
.LP
.KS
.TA .5i 3i
.ta .5i 3i
.nf
..
.de FN
.fi
.KE
.LP
..
.de IN		\" send an index entry to the stderr
..
.de C{
.KS
.nf
.D
.\"
.\"	choose appropriate monospace font
.\"	the imagen conditional, 480,
.\"	may be changed to L if LB is too
.\"	heavy for your eyes...
.\"
.ie "\\*(.T"480" .ft L
.el .ie "\\*(.T"300" .ft L
.el .ie "\\*(.T"202" .ft PO
.el .ie "\\*(.T"aps" .ft CW
.el .ft R
.ps \\n(PS
.ie \\n(VS>40 .vs \\n(VSu
.el .vs \\n(VSp
..
.de C}
.DE
.R
..
.de Pn
.ie t \\$1\fB\^\\$2\^\fR\\$3
.el \\$1\fI\^\\$2\^\fP\\$3
..
.de ZN
.ie t \fB\^\\$1\^\fR\\$2
.el \fI\^\\$1\^\fP\\$2
..
.de NT
.ne 7
.ds NO Note
.if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
.if \\n(.$ .if !'\\$1'C' .ds NO \\$1
.ie n .sp
.el .sp 10p
.TB
.ce
\\*(NO
.ie n .sp
.el .sp 5p
.if '\\$1'C' .ce 99
.if '\\$2'C' .ce 99
.in +5n
.ll -5n
.R
..
.		\" Note End -- doug kraft 3/85
.de NE
.ce 0
.in -5n
.ll +5n
.ie n .sp
.el .sp 10p
..
.ny0
.TH XtGetSelectionValueIncremental __libmansuffix__ __xorgversion__ "XT FUNCTIONS"
.SH NAME
XtGetSelectionValueIncremental, XtGetSelectionValuesIncremental \- obtain selection values
.SH SYNTAX
.HP
void XtGetSelectionValueIncremental(Widget \fIw\fP, Atom \fIselection\fP, Atom
\fItarget\fP, XtSelectionCallbackProc \fIcallback\fP, XtPointer
\fIclient_data\fP, Time \fItime\fP); 
.HP
void XtGetSelectionValuesIncremental(Widget \fIw\fP, Atom \fIselection\fP,
Atom *\fItargets\fP, int \fIcount\fP, XtSelectionCallbackProc \fIcallback\fP,
XtPointer \fIclient_data\fP, Time \fItime\fP); 
.SH ARGUMENTS
.ds Cb \ that is to be called when the selection value has been obtained
.IP \fIcallback\fP 1i
Specifies the callback procedure\*(Cb.
.ds Cd it is called
.IP \fIclient_data\fP 1i
Specifies the argument that is to be passed to the specified procedure
when \*(Cd.
.IP \fIclient_data\fP 1i
Specifies the client data (one for each target type)
that is passed to the callback procedure when it is called for that target.
.IP \fIcount\fP 1i
Specifies the length of the targets and client_data lists.
.IP \fIselection\fP 1i
Specifies the particular selection desired (that is, primary or secondary).
.IP \fItarget\fP 1i
Specifies the type of the information that is needed about the selection.
.IP \fItargets\fP 1i
Specifies the types of information that is needed about the selection.
.ds Ti value is desired
.IP \fItime\fP 1i
Specifies the timestamp that indicates when the selection \*(Ti.
.ds Wi that is making the request
.IP \fIw\fP 1i
Specifies the widget \*(Wi.
.SH DESCRIPTION
The
.ZN XtGetSelectionValueIncremental
function is similar to
.ZN XtGetSelectionValue
except that the \fIselection_callback\fP procedure will be called
repeatedly upon delivery of multiple segments of the selection value.
The end of the selection value is indicated when \fIselection_callback\fP
is called with a non-NULL value of length zero, which must still be
freed by the client. If the transfer of the selection is aborted in the
middle of a transfer (for example, because to timeout), the
\fIselection_callback\fP procedure is called with a type value equal
to the symbolic constant
.ZN XT_CONVERT_FAIL
so that the requestor can dispose of the partial selection value it has
collected up until that point. Upon receiving
.ZN XT_CONVERT_FAIL ,
the requesting client must determine for itself whether or not a
partially completed transfer is meaningful.
.LP
The
.ZN XtGetSelectionValuesIncremental
function is similar to
.ZN XtGetSelectionValueIncremental
except that it takes a list of target types and a list of client data 
and obtains the current value of the selection converted to each of the targets.
The effect is as if each target were specified in a separate call to
.ZN XtGetSelectionValueIncremental .
The callback is called once with the corresponding client data for each target.
.ZN XtGetSelectionValuesIncremental
does guarantee that all the conversions will use the same selection value
because the ownership of the selection cannot change in the middle of the list,
as would be when calling
.ZN XtGetSelectionValueIncremental
repeatedly.
.SH "SEE ALSO"
.br
\fI\*(xT\fP
.br
\fI\*(xL\fP