'\"macro stdmacro
.if n .pH g3xt.XtGetSVal @(#)XtGetSVal	40.3 of 1/21/90
.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 XtMake-Geometry-Request XtQuery-Geometry 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
.tm \\n%:\\$1:\\$2:\\$3
..
.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 PN
.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
.nr X
.if \nX=0 .ds x} XtGetSelectionValue 3Xt "9/1/88" "XWIN 3.0" "\&"
.if \nX=1 .ds x} XtGetSelectionValue 3Xt "9/1/88" "XWIN 3.0"
.if \nX=2 .ds x} XtGetSelectionValue 3Xt "" "\&"
.if \nX=3 .ds x} XtGetSelectionValue "" "" "\&"
.TH \*(x}
.SH NAME
XtGetSelectionValue, XtGetSelectionValues, XtGetSelectionValueIncremental, \
XtGetSelectionValuesIncremental \- obtain selection values
.SH SYNTAX
void XtGetSelectionValue(\fIw\fP, \fIselection\fP, \fItarget\fP, \
\fIcallback\fP, \fIclient_data\fP, \fItime\fP)
.br
      Widget \fIw\fP;
.br
      Atom \fIselection\fP;
.br
      Atom \fItarget\fP;
.br
      XtSelectionCallbackProc \fIcallback\fP;
.br
      caddr_t \fIclient_data\fP;
.br
      Time \fItime\fP;
.LP
void XtGetSelectionValues(\fIw\fP, \fIselection\fP, \fItargets\fP, \
\fIcount\fP, \fIcallback\fP, \fIclient_data\fP, \fItime\fP)
.br
      Widget \fIw\fP;
.br
      Atom \fIselection\fP;
.br
      Atom *\fItargets\fP;
.br
      int \fIcount\fP;
.br
      XtSelectionCallbackProc \fIcallback\fP;
.br
      caddr_t \fIclient_data\fP;
.br
      Time \fItime\fP;
.LP
void XtGetSelectionValueIncremental(\fIw\fP, \fIselection\fP, \fItarget\fP, \
\fIselection_callback\fP, \fIcancel_callback\fP,
.br
				   \fIclient_data\fP, \fItime\fP)
.br
     Widget \fIw\fP;
.br
     Atom \fIselection\fP;
.br
     Atom \fItarget\fP;
.br
     XtSelectionIncrCallbackProc \fIselection_callback\fP;
.br
     XtCancelSelectionCallbackProc \fIcancel_callback\fP;
.br
     caddr_t \fIclient_data\fP;
.br
     Time \fItime\fP;
.LP
void XtGetSelectionValuesIncremental(\fIw\fP, \fIselection\fP, \fItargets\fP, \
\fIcount\fP, \fIselection_callback\fP,
.br
                           \fIcancel_callback\fP, \fIclient_data\fP, \fItime\fP)
.br
     Widget \fIw\fP;
.br
     Atom \fIselection\fP;
.br
     Atom *\fItargets\fP;
.br
     int \fIcount\fP;
.br
     XtSelectionIncrCallbackProc \fIselection_callback\fP;
.br
     XtCancelConvertSelectionProc \fIcancel_callback\fP;
.br
     caddr_t \fIclient_data\fP;
.br
     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 Cb \ that is to be called if the connection is lost
.IP \fIcancel_callback\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).
.ds Cb \ that is to be called to obtain the next incremental chunk of data \
or for each selection value obtained
.IP \fIselection_callback\fP 1i
Specifies the callback procedure\*(Cb.
.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
.PN XtGetSelectionValue
function requests the value of the selection that has been converted to 
the target type. 
The specified callback will be called some time after 
.PN XtGetSelectionValue 
is called;
in fact, it may be called before or after 
.PN XtGetSelectionValue 
returns.
.LP
The
.PN XtGetSelectionValues
function is similar to
.PN XtGetSelectionValue 
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
.PN XtGetSelectionValue .
The callback is called once with the corresponding client data for each target.
.PN XtGetSelectionValues
does guarantee that all the conversions will use the same selection value
becaues the ownership of the selection cannot change in the middle of the list,
as would be when calling
.PN XtGetSelectionValue
repeatedly.
.LP
The
.PN XtGetSelectionValueIncremental
function is similar to
.PN XtGetSelectionValue 
except that the callback procedure will be called repeatedly each time 
upon delivery of the next segment of the selection value.
The end of the selection value is detected when callback is called with 
a value of length zero.
If the transfer of the selection is aborted in the middle of a transfer, 
the cancel_callback procedure is called so that the requestor 
can dispose of the partial selection value it has collected up until that point.
.LP
The
.PN XtGetSelectionValuesIncremental
function is similar to
.PN XtGetSelectionValueIncremental
except that it takes a list of targets and client_data.
.PN XtGetSelectionValuesIncremental
is equivalent to calling
.PN XtGetSelectionValueIncremental
successively for each target/client_data pair.
.PN 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 possible when calling
.PN XtGetSelectionValueIncremental
repeatedly.
.SH "SEE ALSO"
XtAppGetSelectionTimeout(3Xt),
XtOwnSelection(3Xt)
.br
\fI\*(xT\fP
.br
\fI\*(xL\fP
