<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <linklocation="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<summary>Information exchange through the Window Server selection mechanism.</summary>
<remarks>The X selection mechanism provides a way to transfer arbitrary chunks of data between programs. A selection is a essentially a named clipboard, identified by a string interned as a GdkAtom. By claiming ownership of a selection, an application indicates that it will be responsible for supplying its contents. The most common selections are PRIMARY and CLIPBOARD.
<para>
The contents of a selection can be represented in a number of formats, called targets. Each target is identified by an atom. A list of all possible targets supported by the selection owner can be retrieved by requesting the special target TARGETS. When a selection is retrieved, the data is accompanied by a type (an atom), and a format (an integer, representing the number of bits per item). See Properties and Atoms for more information.
</para><para>
The functions in this section only contain the lowlevel parts of the selection protocol. A considerably more complicated implementation is needed on top of this. GTK+ contains such an implementation in the functions in gtkselection.h and programmers should use those functions instead of the ones presented here. If you plan to implement selection handling directly on top of the functions here, you should refer to the X Inter-client Communication Conventions Manual (ICCCM).
<paramname="owner">a <seecref="T:Gdk.Window"/> or NULL to indicate that the the owner for the given should be unset.</param>
<paramname="selection">An atom identifying a selection.</param>
<paramname="time_">Timestamp to use when setting the selection. If this is older than the timestamp given last time the owner was set for the given selection, the request will be ignored.</param>
<paramname="send_event"> if TRUE, and the new owner is different from the current owner, the current owner will be sent a SelectionClear event.</param>
<returns>TRUE if the selection owner was successfully changed to owner, otherwise FALSE.</returns>
<summary>Determine the owner of the given selection.</summary>
<paramname="display">The <seecref="T:Gdk.Display"/> where the selection is</param>
<paramname="selection"> an atom indentifying a selection.</param>
<returns> if there is a selection owner for this window, and it is a window known to the current process, the <seecref="T:Gdk.Window"/> that owns the selection, otherwise <seelangword="null"/></returns>
<remarks>Note that the return value may be owned by a different process if a foreign window was previously created for that window, but a new foreign window will never be created by this call.</remarks>
<paramname="selection">An atom identifying the selection to get the contents of.</param>
<paramname="target">the form in which to retrieve the selection.</param>
<paramname="time_">the timestamp to use when retrieving the selection. The selection owner may refuse the request if it did not own the selection at the time indicated by the timestamp.</param>
<summary>Sets the owner of the given selection.</summary>
<paramname="owner">a <seecref="T:Gdk.Window"/> or NULL to indicate that the the owner for the given should be unset.</param>
<paramname="selection">An <seecref="T:Gdk.Atom"/> identifying a selection.</param>
<paramname="time_">timestamp to use when setting the selection. If this is older than the timestamp given last time the owner was set for the given selection, the request will be ignored.</param>
<paramname="send_event">If <seelangword="true"/> and the new owner is different from the current owner, the current owner will be sent a SelectionClear event.</param>
<returns>
<seelangword="true"/> if the selection owner was successfully changed to owner, otherwise <seelangword="false"/></returns>
<summary>Determines the owner of the given selection.</summary>
<paramname="selection">an atom indentifying a selection.</param>
<returns>If there is a selection owner for this window, and it is a window known to the current process, the <seecref="T:Gdk.Window"/> that owns the selection, otherwise <seelangword="null"/>. Note that the return value may be owned by a different process if a foreign window was previously created for that window, but a new foreign window will never be created by this call.</returns>