|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21585/root/usr/share/gtk-doc/html/gtk/ |
Upload File : |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Clipboards</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="GTK+ Reference Manual">
<link rel="up" href="gtkbase.html" title="Part II. GTK+ Core Reference">
<link rel="prev" href="gtk-Accelerator-Maps.html" title="Accelerator Maps">
<link rel="next" href="gtk-Drag-and-Drop.html" title="Drag and Drop">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="gtk.html" title="Part I. GTK+ Overview">
<link rel="part" href="gtkbase.html" title="Part II. GTK+ Core Reference">
<link rel="part" href="gtkobjects.html" title="Part III. GTK+ Widgets and Objects">
<link rel="chapter" href="ch01.html" title="Object Hierarchy">
<link rel="chapter" href="ch02.html" title="Widget Gallery">
<link rel="chapter" href="WindowWidgets.html" title="Windows">
<link rel="chapter" href="DisplayWidgets.html" title="Display Widgets">
<link rel="chapter" href="ButtonWidgets.html" title="Buttons and Toggles">
<link rel="chapter" href="NumericEntry.html" title="Numeric/Text Data Entry">
<link rel="chapter" href="TextWidgetObjects.html" title="Multiline Text Editor">
<link rel="chapter" href="TreeWidgetObjects.html" title="Tree, List and Icon Grid Widgets">
<link rel="chapter" href="MenusAndCombos.html" title="Menus, Combo Box, Toolbar">
<link rel="chapter" href="Actions.html" title="Action-based menus and toolbars">
<link rel="chapter" href="SelectorWidgets.html" title="Selectors (File/Font/Color/Input Devices)">
<link rel="chapter" href="LayoutContainers.html" title="Layout Containers">
<link rel="chapter" href="Ornaments.html" title="Ornaments">
<link rel="chapter" href="ScrollingWidgets.html" title="Scrolling">
<link rel="chapter" href="Printing.html" title="Printing">
<link rel="chapter" href="MiscObjects.html" title="Miscellaneous">
<link rel="chapter" href="AbstractObjects.html" title="Abstract Base Classes">
<link rel="chapter" href="PlugSocket.html" title="Cross-process Embedding">
<link rel="chapter" href="SpecialObjects.html" title="Special-purpose features">
<link rel="chapter" href="RecentDocuments.html" title="Recently Used Documents">
<link rel="chapter" href="DeprecatedObjects.html" title="Deprecated">
<link rel="part" href="migrating.html" title="Part IV. Migrating from Previous Versions of GTK+">
<link rel="chapter" href="gtk-migrating-checklist.html" title="Migration Checklist">
<link rel="chapter" href="gtk-migrating-GtkFileChooser.html" title="Migrating from GtkFileSelection to GtkFileChooser">
<link rel="chapter" href="gtk-migrating-GtkAction.html" title="Migrating from old menu and toolbar systems to GtkAction">
<link rel="chapter" href="gtk-migrating-GtkComboBox.html" title="Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and
GtkComboBoxEntry">
<link rel="chapter" href="gtk-migrating-GtkIconView.html" title="Migrating from GnomeIconList to GtkIconView">
<link rel="chapter" href="gtk-migrating-GtkAboutDialog.html" title="Migrating from GnomeAbout to GtkAboutDialog">
<link rel="chapter" href="gtk-migrating-GtkColorButton.html" title="Migrating from GnomeColorPicker to GtkColorButton">
<link rel="chapter" href="gtk-migrating-GtkAssistant.html" title="Migrating from GnomeDruid to GtkAssistant">
<link rel="chapter" href="gtk-migrating-GtkRecentChooser.html" title="Migrating from EggRecent to GtkRecentChooser">
<link rel="chapter" href="gtk-migrating-GtkLinkButton.html" title="Migrating from GnomeHRef to GtkLinkButton">
<link rel="part" href="pt05.html" title="Part V. GTK+ Tools">
<link rel="glossary" href="glossary.html" title="Glossary">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gtk-Accelerator-Maps.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gtkbase.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GTK+ Reference Manual</th>
<td><a accesskey="n" href="gtk-Drag-and-Drop.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2594317" class="shortcut">Top</a>
 | 
<a href="#id2595612" class="shortcut">Description</a>
 | 
<a href="#id2595529" class="shortcut">Object Hierarchy</a>
 | 
<a href="#id2595554" class="shortcut">Signals</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="gtk-Clipboards"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id2594317"></a><span class="refentrytitle">Clipboards</span>
</h2>
<p>Clipboards — Storing data on clipboards</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<a name="GtkClipboard"></a><pre class="synopsis">
#include <gtk/gtk.h>
<a href="gtk-Clipboards.html#GtkClipboard-struct">GtkClipboard</a>;
void (<a href="gtk-Clipboards.html#GtkClipboardReceivedFunc">*GtkClipboardReceivedFunc</a>) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkWidget.html#GtkSelectionData">GtkSelectionData</a> *selection_data,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void (<a href="gtk-Clipboards.html#GtkClipboardTextReceivedFunc">*GtkClipboardTextReceivedFunc</a>) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *text,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void (<a href="gtk-Clipboards.html#GtkClipboardImageReceivedFunc">*GtkClipboardImageReceivedFunc</a>)
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
>GdkPixbuf</a> *pixbuf,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void (<a href="gtk-Clipboards.html#GtkClipboardTargetsReceivedFunc">*GtkClipboardTargetsReceivedFunc</a>)
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> *atoms,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> n_atoms,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void (<a href="gtk-Clipboards.html#GtkClipboardRichTextReceivedFunc">*GtkClipboardRichTextReceivedFunc</a>)
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> format,
const <a
href="../glib/glib-Basic-Types.html#guint8"
>guint8</a> *text,
<a
href="../glib/glib-Basic-Types.html#gsize"
>gsize</a> length,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);
void (<a href="gtk-Clipboards.html#GtkClipboardGetFunc">*GtkClipboardGetFunc</a>) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkWidget.html#GtkSelectionData">GtkSelectionData</a> *selection_data,
<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> info,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data_or_owner);
void (<a href="gtk-Clipboards.html#GtkClipboardClearFunc">*GtkClipboardClearFunc</a>) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data_or_owner);
<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a>* <a href="gtk-Clipboards.html#gtk-clipboard-get">gtk_clipboard_get</a> (<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> selection);
<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a>* <a href="gtk-Clipboards.html#gtk-clipboard-get-for-display">gtk_clipboard_get_for_display</a> (<a
href="../gdk/GdkDisplay.html"
>GdkDisplay</a> *display,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> selection);
<a
href="../gdk/GdkDisplay.html"
>GdkDisplay</a>* <a href="gtk-Clipboards.html#gtk-clipboard-get-display">gtk_clipboard_get_display</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-set-with-data">gtk_clipboard_set_with_data</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a href="gtk-Selections.html#GtkTargetEntry">GtkTargetEntry</a> *targets,
<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_targets,
<a href="gtk-Clipboards.html#GtkClipboardGetFunc">GtkClipboardGetFunc</a> get_func,
<a href="gtk-Clipboards.html#GtkClipboardClearFunc">GtkClipboardClearFunc</a> clear_func,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner">gtk_clipboard_set_with_owner</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a href="gtk-Selections.html#GtkTargetEntry">GtkTargetEntry</a> *targets,
<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_targets,
<a href="gtk-Clipboards.html#GtkClipboardGetFunc">GtkClipboardGetFunc</a> get_func,
<a href="gtk-Clipboards.html#GtkClipboardClearFunc">GtkClipboardClearFunc</a> clear_func,
<a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a> *owner);
<a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a>* <a href="gtk-Clipboards.html#gtk-clipboard-get-owner">gtk_clipboard_get_owner</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
void <a href="gtk-Clipboards.html#gtk-clipboard-clear">gtk_clipboard_clear</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
void <a href="gtk-Clipboards.html#gtk-clipboard-set-text">gtk_clipboard_set_text</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *text,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> len);
void <a href="gtk-Clipboards.html#gtk-clipboard-set-image">gtk_clipboard_set_image</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
>GdkPixbuf</a> *pixbuf);
void <a href="gtk-Clipboards.html#gtk-clipboard-request-contents">gtk_clipboard_request_contents</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> target,
<a href="gtk-Clipboards.html#GtkClipboardReceivedFunc">GtkClipboardReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="gtk-Clipboards.html#gtk-clipboard-request-text">gtk_clipboard_request_text</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="gtk-Clipboards.html#GtkClipboardTextReceivedFunc">GtkClipboardTextReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="gtk-Clipboards.html#gtk-clipboard-request-image">gtk_clipboard_request_image</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="gtk-Clipboards.html#GtkClipboardImageReceivedFunc">GtkClipboardImageReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="gtk-Clipboards.html#gtk-clipboard-request-targets">gtk_clipboard_request_targets</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="gtk-Clipboards.html#GtkClipboardTargetsReceivedFunc">GtkClipboardTargetsReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="gtk-Clipboards.html#gtk-clipboard-request-rich-text">gtk_clipboard_request_rich_text</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkTextBuffer.html" title="GtkTextBuffer">GtkTextBuffer</a> *buffer,
<a href="gtk-Clipboards.html#GtkClipboardRichTextReceivedFunc">GtkClipboardRichTextReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
<a href="GtkWidget.html#GtkSelectionData">GtkSelectionData</a>* <a href="gtk-Clipboards.html#gtk-clipboard-wait-for-contents">gtk_clipboard_wait_for_contents</a>
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> target);
<a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* <a href="gtk-Clipboards.html#gtk-clipboard-wait-for-text">gtk_clipboard_wait_for_text</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
<a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
>GdkPixbuf</a>* <a href="gtk-Clipboards.html#gtk-clipboard-wait-for-image">gtk_clipboard_wait_for_image</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
<a
href="../glib/glib-Basic-Types.html#guint8"
>guint8</a>* <a href="gtk-Clipboards.html#gtk-clipboard-wait-for-rich-text">gtk_clipboard_wait_for_rich_text</a>
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkTextBuffer.html" title="GtkTextBuffer">GtkTextBuffer</a> *buffer,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> *format,
<a
href="../glib/glib-Basic-Types.html#gsize"
>gsize</a> *length);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-wait-is-text-available">gtk_clipboard_wait_is_text_available</a>
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-wait-is-image-available">gtk_clipboard_wait_is_image_available</a>
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-wait-is-rich-text-available">gtk_clipboard_wait_is_rich_text_available</a>
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkTextBuffer.html" title="GtkTextBuffer">GtkTextBuffer</a> *buffer);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-wait-for-targets">gtk_clipboard_wait_for_targets</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> **targets,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> *n_targets);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gtk-Clipboards.html#gtk-clipboard-wait-is-target-available">gtk_clipboard_wait_is_target_available</a>
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> target);
void <a href="gtk-Clipboards.html#gtk-clipboard-set-can-store">gtk_clipboard_set_can_store</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a href="gtk-Selections.html#GtkTargetEntry">GtkTargetEntry</a> *targets,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> n_targets);
void <a href="gtk-Clipboards.html#gtk-clipboard-store">gtk_clipboard_store</a> (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2595529"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
<a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a>
+----GtkClipboard
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2595554"></a><h2>Signals</h2>
<pre class="synopsis">
"<a href="gtk-Clipboards.html#GtkClipboard-owner-change">owner-change</a>"
void user_function (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Event-Structures.html#GdkEvent"
>GdkEvent</a> *event,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data) : Run first
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2595612"></a><h2>Description</h2>
<p>
The <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> object represents a clipboard of data shared
between different processes or between different widgets in
the same process. Each clipboard is identified by a name encoded as a
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
><span class="type">GdkAtom</span></a>. (Conversion to and from strings can be done with
<a
href="../gdk/gdk-Properties-and-Atoms.html#gdk-atom-intern"
><code class="function">gdk_atom_intern()</code></a> and <a
href="../gdk/gdk-Properties-and-Atoms.html#gdk-atom-name"
><code class="function">gdk_atom_name()</code></a>.) The default clipboard
corresponds to the "CLIPBOARD" atom; another commonly used clipboard
is the "PRIMARY" clipboard, which, in X, traditionally contains
the currently selected text.
</p>
<p>
To support having a number of different formats on the clipboard
at the same time, the clipboard mechanism allows providing
callbacks instead of the actual data. When you set the contents
of the clipboard, you can either supply the data directly (via
functions like <a href="gtk-Clipboards.html#gtk-clipboard-set-text"><code class="function">gtk_clipboard_set_text()</code></a>), or you can supply a
callback to be called at a later time when the data is needed (via
<a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a> or <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>.)
Providing a callback also avoids having to make copies of the data
when it is not needed.
</p>
<p>
<a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a> and <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>
are quite similar; the choice between the two depends mostly on
which is more convenient in a particular situation.
The former is most useful when you want to have a blob of data
with callbacks to convert it into the various data types that you
advertise. When the <em class="parameter"><code>clear_func</code></em> you provided is called, you
simply free the data blob. The latter is more useful when the
contents of clipboard reflect the internal state of a <a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
><span class="type">GObject</span></a>
(As an example, for the PRIMARY clipboard, when an entry widget
provides the clipboard's contents the contents are simply the
text within the selected region.) If the contents change, the
entry widget can call <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a> to update
the timestamp for clipboard ownership, without having to worry
about <em class="parameter"><code>clear_func</code></em> being called.
</p>
<p>
Requesting the data from the clipboard is essentially
asynchronous. If the contents of the clipboard are provided within
the same process, then a direct function call will be made to
retrieve the data, but if they are provided by another process,
then the data needs to be retrieved from the other process, which
may take some time. To avoid blocking the user interface, the call
to request the selection, <a href="gtk-Clipboards.html#gtk-clipboard-request-contents"><code class="function">gtk_clipboard_request_contents()</code></a> takes a
callback that will be called when the contents are received (or
when the request fails.) If you don't want to deal with providing
a separate callback, you can also use <a href="gtk-Clipboards.html#gtk-clipboard-wait-for-contents"><code class="function">gtk_clipboard_wait_for_contents()</code></a>.
What this does is run the GLib main loop recursively waiting for
the contents. This can simplify the code flow, but you still have
to be aware that other callbacks in your program can be called
while this recursive mainloop is running.
</p>
<p>
Along with the functions to get the clipboard contents as an
arbitrary data chunk, there are also functions to retrieve
it as text, <a href="gtk-Clipboards.html#gtk-clipboard-request-text"><code class="function">gtk_clipboard_request_text()</code></a> and
<a href="gtk-Clipboards.html#gtk-clipboard-wait-for-text"><code class="function">gtk_clipboard_wait_for_text()</code></a>. These functions take care of
determining which formats are advertised by the clipboard
provider, asking for the clipboard in the best available format
and converting the results into the UTF-8 encoding. (The standard
form for representing strings in GTK+.)
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2595861"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2595871"></a><h3>
<a name="GtkClipboard-struct"></a>GtkClipboard</h3>
<a class="indexterm" name="id2595883"></a><pre class="programlisting">typedef struct _GtkClipboard GtkClipboard;</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2595898"></a><h3>
<a name="GtkClipboardReceivedFunc"></a>GtkClipboardReceivedFunc ()</h3>
<a class="indexterm" name="id2595912"></a><pre class="programlisting">void (*GtkClipboardReceivedFunc) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkWidget.html#GtkSelectionData">GtkSelectionData</a> *selection_data,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);</pre>
<p>
A function to be called when the results of <a href="gtk-Clipboards.html#gtk-clipboard-request-contents"><code class="function">gtk_clipboard_request_contents()</code></a>
are received, or when the request fails.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>selection_data</code></em> :</span></td>
<td>a <a href="GtkWidget.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> containing the data was received.
If retrieving the data failed, then then length field
of <em class="parameter"><code>selection_data</code></em> will be negative.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data</code></em> :</span></td>
<td>the <em class="parameter"><code>user_data</code></em> supplied to <a href="gtk-Clipboards.html#gtk-clipboard-request-contents"><code class="function">gtk_clipboard_request_contents()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2596057"></a><h3>
<a name="GtkClipboardTextReceivedFunc"></a>GtkClipboardTextReceivedFunc ()</h3>
<a class="indexterm" name="id2596070"></a><pre class="programlisting">void (*GtkClipboardTextReceivedFunc) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *text,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);</pre>
<p>
A function to be called when the results of <a href="gtk-Clipboards.html#gtk-clipboard-request-text"><code class="function">gtk_clipboard_request_text()</code></a>
are received, or when the request fails.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>text</code></em> :</span></td>
<td>the text received, as a UTF-8 encoded string, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
if retrieving the data failed.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data</code></em> :</span></td>
<td>the <em class="parameter"><code>user_data</code></em> supplied to <a href="gtk-Clipboards.html#gtk-clipboard-request-text"><code class="function">gtk_clipboard_request_text()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2596210"></a><h3>
<a name="GtkClipboardImageReceivedFunc"></a>GtkClipboardImageReceivedFunc ()</h3>
<a class="indexterm" name="id2596226"></a><pre class="programlisting">void (*GtkClipboardImageReceivedFunc)
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
>GdkPixbuf</a> *pixbuf,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);</pre>
<p>
A function to be called when the results of <a href="gtk-Clipboards.html#gtk-clipboard-request-image"><code class="function">gtk_clipboard_request_image()</code></a>
are received, or when the request fails.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td>the received image
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data</code></em> :</span></td>
<td>the <em class="parameter"><code>user_data</code></em> supplied to <a href="gtk-Clipboards.html#gtk-clipboard-request-image"><code class="function">gtk_clipboard_request_image()</code></a>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2596360"></a><h3>
<a name="GtkClipboardTargetsReceivedFunc"></a>GtkClipboardTargetsReceivedFunc ()</h3>
<a class="indexterm" name="id2596375"></a><pre class="programlisting">void (*GtkClipboardTargetsReceivedFunc)
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> *atoms,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> n_atoms,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);</pre>
<p>
A function to be called when the results of <a href="gtk-Clipboards.html#gtk-clipboard-request-targets"><code class="function">gtk_clipboard_request_targets()</code></a>
are received, or when the request fails.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>atoms</code></em> :</span></td>
<td>the supported targets, as array of <a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
><span class="type">GdkAtom</span></a>, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
if retrieving the data failed.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_atoms</code></em> :</span></td>
<td>the length of the <em class="parameter"><code>atoms</code></em> array.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data</code></em> :</span></td>
<td>the <em class="parameter"><code>user_data</code></em> supplied to <a href="gtk-Clipboards.html#gtk-clipboard-request-targets"><code class="function">gtk_clipboard_request_targets()</code></a>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2596556"></a><h3>
<a name="GtkClipboardRichTextReceivedFunc"></a>GtkClipboardRichTextReceivedFunc ()</h3>
<a class="indexterm" name="id2596569"></a><pre class="programlisting">void (*GtkClipboardRichTextReceivedFunc)
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> format,
const <a
href="../glib/glib-Basic-Types.html#guint8"
>guint8</a> *text,
<a
href="../glib/glib-Basic-Types.html#gsize"
>gsize</a> length,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> data);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>text</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>length</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data</code></em> :</span></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2596701"></a><h3>
<a name="GtkClipboardGetFunc"></a>GtkClipboardGetFunc ()</h3>
<a class="indexterm" name="id2596715"></a><pre class="programlisting">void (*GtkClipboardGetFunc) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkWidget.html#GtkSelectionData">GtkSelectionData</a> *selection_data,
<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> info,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data_or_owner);</pre>
<p>
A function that will be called to provide the contents of the selection.
If multiple types of data were advertised, the requested type can
be determined from the <em class="parameter"><code>info</code></em> parameter or by checking the target field
of <em class="parameter"><code>selection_data</code></em>. If the data could successfully be converted into
then it should be stored into the <em class="parameter"><code>selection_data</code></em> object by
calling <a href="gtk-Selections.html#gtk-selection-data-set"><code class="function">gtk_selection_data_set()</code></a> (or related functions such
as <a href="gtk-Selections.html#gtk-selection-data-set-text"><code class="function">gtk_selection_data_set_text()</code></a>). If no data is set, the requestor
will be informed that the attempt to get the data failed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>selection_data</code></em> :</span></td>
<td>a <a href="GtkWidget.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> argument in which the requested
data should be stored.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>info</code></em> :</span></td>
<td>the info field corresponding to the requested
target from the <a href="gtk-Selections.html#GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> array passed to
<a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a> or <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data_or_owner</code></em> :</span></td>
<td>the <em class="parameter"><code>user_data</code></em> argument passed to <a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a>, or
the <em class="parameter"><code>owner</code></em> argument passed to <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2596962"></a><h3>
<a name="GtkClipboardClearFunc"></a>GtkClipboardClearFunc ()</h3>
<a class="indexterm" name="id2596975"></a><pre class="programlisting">void (*GtkClipboardClearFunc) (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data_or_owner);</pre>
<p>
A function that will be called when the contents of the clipboard are changed
or cleared. Once this has called, the <em class="parameter"><code>user_data_or_owner</code></em> argument
will not be used again.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data_or_owner</code></em> :</span></td>
<td>the <em class="parameter"><code>user_data</code></em> argument passed to <a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a>, or
the <em class="parameter"><code>owner</code></em> argument passed to <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2597095"></a><h3>
<a name="gtk-clipboard-get"></a>gtk_clipboard_get ()</h3>
<a class="indexterm" name="id2597108"></a><pre class="programlisting"><a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a>* gtk_clipboard_get (<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> selection);</pre>
<p>
Returns the clipboard object for the given selection.
See <a href="gtk-Clipboards.html#gtk-clipboard-get-for-display"><code class="function">gtk_clipboard_get_for_display()</code></a> for complete details.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>selection</code></em> :</span></td>
<td> a <a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
><span class="type">GdkAtom</span></a> which identifies the clipboard
to use.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the appropriate clipboard object. If no
clipboard already exists, a new one will
be created. Once a clipboard object has
been created, it is persistent and, since
it is owned by GTK+, must not be freed or
unrefd.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2597194"></a><h3>
<a name="gtk-clipboard-get-for-display"></a>gtk_clipboard_get_for_display ()</h3>
<a class="indexterm" name="id2597209"></a><pre class="programlisting"><a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a>* gtk_clipboard_get_for_display (<a
href="../gdk/GdkDisplay.html"
>GdkDisplay</a> *display,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> selection);</pre>
<p>
Returns the clipboard object for the given selection.
Cut/copy/paste menu items and keyboard shortcuts should use
the default clipboard, returned by passing <a
href="../gdk/gdk-Selections.html#GDK-SELECTION-CLIPBOARD:CAPS"
><code class="literal">GDK_SELECTION_CLIPBOARD</code></a> for <em class="parameter"><code>selection</code></em>.
(<a
href="../gdk/gdk-Properties-and-Atoms.html#GDK-NONE:CAPS"
><code class="literal">GDK_NONE</code></a> is supported as a synonym for GDK_SELECTION_CLIPBOARD
for backwards compatibility reasons.)
The currently-selected object or text should be provided on the clipboard
identified by <a
href="../gdk/gdk-Selections.html#GDK-SELECTION-PRIMARY:CAPS"
><span class="type">GDK_SELECTION_PRIMARY</span></a>. Cut/copy/paste menu items
conceptually copy the contents of the <a
href="../gdk/gdk-Selections.html#GDK-SELECTION-PRIMARY:CAPS"
><span class="type">GDK_SELECTION_PRIMARY</span></a> clipboard
to the default clipboard, i.e. they copy the selection to what the
user sees as the clipboard.
</p>
<p>
(Passing <a
href="../gdk/gdk-Properties-and-Atoms.html#GDK-NONE:CAPS"
><span class="type">GDK_NONE</span></a> is the same as using <code class="literal">gdk_atom_intern
("CLIPBOARD", FALSE)</code>. See <a href="http://www.freedesktop.org/Standards/clipboards-spec" target="_top">
http://www.freedesktop.org/Standards/clipboards-spec</a>
for a detailed discussion of the "CLIPBOARD" vs. "PRIMARY"
selections under the X window system. On Win32 the
<a
href="../gdk/gdk-Selections.html#GDK-SELECTION-PRIMARY:CAPS"
><span class="type">GDK_SELECTION_PRIMARY</span></a> clipboard is essentially ignored.)
</p>
<p>
It's possible to have arbitrary named clipboards; if you do invent
new clipboards, you should prefix the selection name with an
underscore (because the ICCCM requires that nonstandard atoms are
underscore-prefixed), and namespace it as well. For example,
if your application called "Foo" has a special-purpose
clipboard, you might call it "_FOO_SPECIAL_CLIPBOARD".</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>display</code></em> :</span></td>
<td> the display for which the clipboard is to be retrieved or created
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>selection</code></em> :</span></td>
<td> a <a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
><span class="type">GdkAtom</span></a> which identifies the clipboard
to use.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the appropriate clipboard object. If no
clipboard already exists, a new one will
be created. Once a clipboard object has
been created, it is persistent and, since
it is owned by GTK+, must not be freed or
unrefd.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2597414"></a><h3>
<a name="gtk-clipboard-get-display"></a>gtk_clipboard_get_display ()</h3>
<a class="indexterm" name="id2597430"></a><pre class="programlisting"><a
href="../gdk/GdkDisplay.html"
>GdkDisplay</a>* gtk_clipboard_get_display (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Gets the <a
href="../gdk/GdkDisplay.html"
><span class="type">GdkDisplay</span></a> associated with <em class="parameter"><code>clipboard</code></em></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the <a
href="../gdk/GdkDisplay.html"
><span class="type">GdkDisplay</span></a> associated with <em class="parameter"><code>clipboard</code></em>
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2597528"></a><h3>
<a name="gtk-clipboard-set-with-data"></a>gtk_clipboard_set_with_data ()</h3>
<a class="indexterm" name="id2597542"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_set_with_data (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a href="gtk-Selections.html#GtkTargetEntry">GtkTargetEntry</a> *targets,
<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_targets,
<a href="gtk-Clipboards.html#GtkClipboardGetFunc">GtkClipboardGetFunc</a> get_func,
<a href="gtk-Clipboards.html#GtkClipboardClearFunc">GtkClipboardClearFunc</a> clear_func,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Virtually sets the contents of the specified clipboard by providing
a list of supported formats for the clipboard data and a function
to call to get the actual data when it is requested.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>targets</code></em> :</span></td>
<td> array containing information about the available forms for the
clipboard data
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_targets</code></em> :</span></td>
<td> number of elements in <em class="parameter"><code>targets</code></em>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>get_func</code></em> :</span></td>
<td> function to call to get the actual clipboard data
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>clear_func</code></em> :</span></td>
<td> when the clipboard contents are set again, this function will
be called, and <em class="parameter"><code>get_func</code></em> will not be subsequently called.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user data to pass to <em class="parameter"><code>get_func</code></em> and <em class="parameter"><code>clear_func</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if setting the clipboard data succeeded. If setting
the clipboard data failed the provided callback functions
will be ignored.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2597763"></a><h3>
<a name="gtk-clipboard-set-with-owner"></a>gtk_clipboard_set_with_owner ()</h3>
<a class="indexterm" name="id2597776"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_set_with_owner (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a href="gtk-Selections.html#GtkTargetEntry">GtkTargetEntry</a> *targets,
<a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> n_targets,
<a href="gtk-Clipboards.html#GtkClipboardGetFunc">GtkClipboardGetFunc</a> get_func,
<a href="gtk-Clipboards.html#GtkClipboardClearFunc">GtkClipboardClearFunc</a> clear_func,
<a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a> *owner);</pre>
<p>
Virtually sets the contents of the specified clipboard by providing
a list of supported formats for the clipboard data and a function
to call to get the actual data when it is requested.
</p>
<p>
The difference between this function and <a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a>
is that instead of an generic <em class="parameter"><code>user_data</code></em> pointer, a <a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
><span class="type">GObject</span></a> is passed
in.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>targets</code></em> :</span></td>
<td> array containing information about the available forms for the
clipboard data
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_targets</code></em> :</span></td>
<td> number of elements in <em class="parameter"><code>targets</code></em>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>get_func</code></em> :</span></td>
<td> function to call to get the actual clipboard data
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>clear_func</code></em> :</span></td>
<td> when the clipboard contents are set again, this function will
be called, and <em class="parameter"><code>get_func</code></em> will not be subsequently called.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>owner</code></em> :</span></td>
<td> an object that "owns" the data. This object will be passed
to the callbacks when called.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if setting the clipboard data succeeded. If setting
the clipboard data failed the provided callback functions
will be ignored.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598018"></a><h3>
<a name="gtk-clipboard-get-owner"></a>gtk_clipboard_get_owner ()</h3>
<a class="indexterm" name="id2598031"></a><pre class="programlisting"><a
href="../gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a>* gtk_clipboard_get_owner (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
If the clipboard contents callbacks were set with
<a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>, and the <a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a> or
<a href="gtk-Clipboards.html#gtk-clipboard-clear"><code class="function">gtk_clipboard_clear()</code></a> has not subsequently called, returns the owner set
by <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the owner of the clipboard, if any; otherwise <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598156"></a><h3>
<a name="gtk-clipboard-clear"></a>gtk_clipboard_clear ()</h3>
<a class="indexterm" name="id2598169"></a><pre class="programlisting">void gtk_clipboard_clear (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Clears the contents of the clipboard. Generally this should only
be called between the time you call <a href="gtk-Clipboards.html#gtk-clipboard-set-with-owner"><code class="function">gtk_clipboard_set_with_owner()</code></a>
or <a href="gtk-Clipboards.html#gtk-clipboard-set-with-data"><code class="function">gtk_clipboard_set_with_data()</code></a>,
and when the <em class="parameter"><code>clear_func</code></em> you supplied is called. Otherwise, the
clipboard may be owned by someone else.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598259"></a><h3>
<a name="gtk-clipboard-set-text"></a>gtk_clipboard_set_text ()</h3>
<a class="indexterm" name="id2598272"></a><pre class="programlisting">void gtk_clipboard_set_text (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *text,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> len);</pre>
<p>
Sets the contents of the clipboard to the given UTF-8 string. GTK+ will
make a copy of the text and take responsibility for responding
for requests for the text, and for converting the text into
the requested format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> object
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>text</code></em> :</span></td>
<td> a UTF-8 string.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>len</code></em> :</span></td>
<td> length of <em class="parameter"><code>text</code></em>, in bytes, or -1, in which case
the length will be determined with <code class="function"><code class="function">strlen()</code></code>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598402"></a><h3>
<a name="gtk-clipboard-set-image"></a>gtk_clipboard_set_image ()</h3>
<a class="indexterm" name="id2598418"></a><pre class="programlisting">void gtk_clipboard_set_image (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
>GdkPixbuf</a> *pixbuf);</pre>
<p>
Sets the contents of the clipboard to the given <a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
><span class="type">GdkPixbuf</span></a>.
GTK+ will take responsibility for responding for requests
for the image, and for converting the image into the
requested format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> object
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td> a <a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
><span class="type">GdkPixbuf</span></a>
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598520"></a><h3>
<a name="gtk-clipboard-request-contents"></a>gtk_clipboard_request_contents ()</h3>
<a class="indexterm" name="id2598533"></a><pre class="programlisting">void gtk_clipboard_request_contents (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> target,
<a href="gtk-Clipboards.html#GtkClipboardReceivedFunc">GtkClipboardReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Requests the contents of clipboard as the given target.
When the results of the result are later received the supplied callback
will be called.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>target</code></em> :</span></td>
<td> an atom representing the form into which the clipboard
owner should convert the selection.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>callback</code></em> :</span></td>
<td> A function to call when the results are received
(or the retrieval fails). If the retrieval fails
the length field of <em class="parameter"><code>selection_data</code></em> will be
negative.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user data to pass to <em class="parameter"><code>callback</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598674"></a><h3>
<a name="gtk-clipboard-request-text"></a>gtk_clipboard_request_text ()</h3>
<a class="indexterm" name="id2598688"></a><pre class="programlisting">void gtk_clipboard_request_text (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="gtk-Clipboards.html#GtkClipboardTextReceivedFunc">GtkClipboardTextReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Requests the contents of the clipboard as text. When the text is
later received, it will be converted to UTF-8 if necessary, and
<em class="parameter"><code>callback</code></em> will be called.
</p>
<p>
The <em class="parameter"><code>text</code></em> parameter to <em class="parameter"><code>callback</code></em> will contain the resulting text if
the request succeeded, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if it failed. This could happen for
various reasons, in particular if the clipboard was empty or if the
contents of the clipboard could not be converted into text form.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>callback</code></em> :</span></td>
<td> a function to call when the text is received,
or the retrieval fails. (It will always be called
one way or the other.)
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user data to pass to <em class="parameter"><code>callback</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2598835"></a><h3>
<a name="gtk-clipboard-request-image"></a>gtk_clipboard_request_image ()</h3>
<a class="indexterm" name="id2598852"></a><pre class="programlisting">void gtk_clipboard_request_image (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="gtk-Clipboards.html#GtkClipboardImageReceivedFunc">GtkClipboardImageReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Requests the contents of the clipboard as image. When the image is
later received, it will be converted to a <a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
><span class="type">GdkPixbuf</span></a>, and
<em class="parameter"><code>callback</code></em> will be called.
</p>
<p>
The <em class="parameter"><code>pixbuf</code></em> parameter to <em class="parameter"><code>callback</code></em> will contain the resulting
<a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
><span class="type">GdkPixbuf</span></a> if the request succeeded, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if it failed. This
could happen for various reasons, in particular if the clipboard
was empty or if the contents of the clipboard could not be
converted into an image.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>callback</code></em> :</span></td>
<td> a function to call when the image is received,
or the retrieval fails. (It will always be called
one way or the other.)
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user data to pass to <em class="parameter"><code>callback</code></em>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599019"></a><h3>
<a name="gtk-clipboard-request-targets"></a>gtk_clipboard_request_targets ()</h3>
<a class="indexterm" name="id2599035"></a><pre class="programlisting">void gtk_clipboard_request_targets (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="gtk-Clipboards.html#GtkClipboardTargetsReceivedFunc">GtkClipboardTargetsReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Requests the contents of the clipboard as list of supported targets.
When the list is later received, <em class="parameter"><code>callback</code></em> will be called.
</p>
<p>
The <em class="parameter"><code>targets</code></em> parameter to <em class="parameter"><code>callback</code></em> will contain the resulting targets if
the request succeeded, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if it failed.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>callback</code></em> :</span></td>
<td> a function to call when the targets are received,
or the retrieval fails. (It will always be called
one way or the other.)
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user data to pass to <em class="parameter"><code>callback</code></em>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599185"></a><h3>
<a name="gtk-clipboard-request-rich-text"></a>gtk_clipboard_request_rich_text ()</h3>
<a class="indexterm" name="id2599200"></a><pre class="programlisting">void gtk_clipboard_request_rich_text (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkTextBuffer.html" title="GtkTextBuffer">GtkTextBuffer</a> *buffer,
<a href="gtk-Clipboards.html#GtkClipboardRichTextReceivedFunc">GtkClipboardRichTextReceivedFunc</a> callback,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Requests the contents of the clipboard as rich text. When the rich
text is later received, <em class="parameter"><code>callback</code></em> will be called.
</p>
<p>
The <em class="parameter"><code>text</code></em> parameter to <em class="parameter"><code>callback</code></em> will contain the resulting rich
text if the request succeeded, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if it failed. The <em class="parameter"><code>length</code></em>
parameter will contain <em class="parameter"><code>text</code></em>'s length. This function can fail for
various reasons, in particular if the clipboard was empty or if the
contents of the clipboard could not be converted into rich text form.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>buffer</code></em> :</span></td>
<td> a <a href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>callback</code></em> :</span></td>
<td> a function to call when the text is received,
or the retrieval fails. (It will always be called
one way or the other.)
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user data to pass to <em class="parameter"><code>callback</code></em>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.10
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599395"></a><h3>
<a name="gtk-clipboard-wait-for-contents"></a>gtk_clipboard_wait_for_contents ()</h3>
<a class="indexterm" name="id2599409"></a><pre class="programlisting"><a href="GtkWidget.html#GtkSelectionData">GtkSelectionData</a>* gtk_clipboard_wait_for_contents
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> target);</pre>
<p>
Requests the contents of the clipboard using the given target.
This function waits for the data to be received using the main
loop, so events, timeouts, etc, may be dispatched during the wait.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>target</code></em> :</span></td>
<td> an atom representing the form into which the clipboard
owner should convert the selection.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a newly-allocated <a href="GtkWidget.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> object or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
if retrieving the given target failed. If non-<a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>,
this value must be freed with <a href="gtk-Selections.html#gtk-selection-data-free"><code class="function">gtk_selection_data_free()</code></a>
when you are finished with it.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599548"></a><h3>
<a name="gtk-clipboard-wait-for-text"></a>gtk_clipboard_wait_for_text ()</h3>
<a class="indexterm" name="id2599561"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* gtk_clipboard_wait_for_text (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Requests the contents of the clipboard as text and converts
the result to UTF-8 if necessary. This function waits for
the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a newly-allocated UTF-8 string which must
be freed with <a
href="../glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if retrieving
the selection data failed. (This could happen
for various reasons, in particular if the
clipboard was empty or if the contents of the
clipboard could not be converted into text form.)
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599659"></a><h3>
<a name="gtk-clipboard-wait-for-image"></a>gtk_clipboard_wait_for_image ()</h3>
<a class="indexterm" name="id2599674"></a><pre class="programlisting"><a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
>GdkPixbuf</a>* gtk_clipboard_wait_for_image (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Requests the contents of the clipboard as image and converts
the result to a <a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
><span class="type">GdkPixbuf</span></a>. This function waits for
the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a newly-allocated <a
href="../gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"
><span class="type">GdkPixbuf</span></a> object which must
be disposed with <a
href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"
><code class="function">g_object_unref()</code></a>, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if
retrieving the selection data failed. (This
could happen for various reasons, in particular
if the clipboard was empty or if the contents of
the clipboard could not be converted into an image.)
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599792"></a><h3>
<a name="gtk-clipboard-wait-for-rich-text"></a>gtk_clipboard_wait_for_rich_text ()</h3>
<a class="indexterm" name="id2599808"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#guint8"
>guint8</a>* gtk_clipboard_wait_for_rich_text
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkTextBuffer.html" title="GtkTextBuffer">GtkTextBuffer</a> *buffer,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> *format,
<a
href="../glib/glib-Basic-Types.html#gsize"
>gsize</a> *length);</pre>
<p>
Requests the contents of the clipboard as rich text. This function
waits for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>buffer</code></em> :</span></td>
<td> a <a href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> return location for the format of the returned data
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>length</code></em> :</span></td>
<td> return location for the length of the returned data
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a newly-allocated binary block of data which must
be freed with <a
href="../glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if retrieving
the selection data failed. (This could happen
for various reasons, in particular if the
clipboard was empty or if the contents of the
clipboard could not be converted into text form.)
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.10
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2599985"></a><h3>
<a name="gtk-clipboard-wait-is-text-available"></a>gtk_clipboard_wait_is_text_available ()</h3>
<a class="indexterm" name="id2599999"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_wait_is_text_available
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Test to see if there is text available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains any of the supported text targets. This function
waits for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.
</p>
<p>
This function is a little faster than calling
<a href="gtk-Clipboards.html#gtk-clipboard-wait-for-text"><code class="function">gtk_clipboard_wait_for_text()</code></a> since it doesn't need to retrieve
the actual text.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> is there is text available, <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> otherwise.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2600111"></a><h3>
<a name="gtk-clipboard-wait-is-image-available"></a>gtk_clipboard_wait_is_image_available ()</h3>
<a class="indexterm" name="id2600127"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_wait_is_image_available
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Test to see if there is an image available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains any of the supported image targets. This function
waits for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.
</p>
<p>
This function is a little faster than calling
<a href="gtk-Clipboards.html#gtk-clipboard-wait-for-image"><code class="function">gtk_clipboard_wait_for_image()</code></a> since it doesn't need to retrieve
the actual image data.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> is there is an image available, <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> otherwise.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2600243"></a><h3>
<a name="gtk-clipboard-wait-is-rich-text-available"></a>gtk_clipboard_wait_is_rich_text_available ()</h3>
<a class="indexterm" name="id2600260"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_wait_is_rich_text_available
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a href="GtkTextBuffer.html" title="GtkTextBuffer">GtkTextBuffer</a> *buffer);</pre>
<p>
Test to see if there is rich text available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains any of the supported rich text targets. This function
waits for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.
</p>
<p>
This function is a little faster than calling
<a href="gtk-Clipboards.html#gtk-clipboard-wait-for-rich-text"><code class="function">gtk_clipboard_wait_for_rich_text()</code></a> since it doesn't need to retrieve
the actual text.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>buffer</code></em> :</span></td>
<td> a <a href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> is there is rich text available, <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> otherwise.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.10
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2600405"></a><h3>
<a name="gtk-clipboard-wait-for-targets"></a>gtk_clipboard_wait_for_targets ()</h3>
<a class="indexterm" name="id2600421"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_wait_for_targets (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> **targets,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> *n_targets);</pre>
<p>
Returns a list of targets that are present on the clipboard, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
if there aren't any targets available. The returned list must be
freed with <a
href="../glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>.
This function waits for the data to be received using the main
loop, so events, timeouts, etc, may be dispatched during the wait.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>targets</code></em> :</span></td>
<td> location to store an array of targets. The result
stored here must be freed with <a
href="../glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_targets</code></em> :</span></td>
<td> location to store number of items in <em class="parameter"><code>targets</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if any targets are present on the clipboard,
otherwise <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2600600"></a><h3>
<a name="gtk-clipboard-wait-is-target-available"></a>gtk_clipboard_wait_is_target_available ()</h3>
<a class="indexterm" name="id2600616"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gtk_clipboard_wait_is_target_available
(<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
>GdkAtom</a> target);</pre>
<p>
Checks if a clipboard supports pasting data of a given type. This
function can be used to determine if a "Paste" menu item should be
insensitive or not.
</p>
<p>
If you want to see if there's text available on the clipboard, use
<a href="gtk-Clipboards.html#gtk-clipboard-wait-is-text-available"><code class="function">gtk_clipboard_wait_is_text_available()</code></a> instead.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>target</code></em> :</span></td>
<td> A <a
href="../gdk/gdk-Properties-and-Atoms.html#GdkAtom"
><span class="type">GdkAtom</span></a> indicating which target to look for.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the target is available, <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> otherwise.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2600760"></a><h3>
<a name="gtk-clipboard-set-can-store"></a>gtk_clipboard_set_can_store ()</h3>
<a class="indexterm" name="id2600776"></a><pre class="programlisting">void gtk_clipboard_set_can_store (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
const <a href="gtk-Selections.html#GtkTargetEntry">GtkTargetEntry</a> *targets,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> n_targets);</pre>
<p>
Hints that the clipboard data should be stored somewhere when the
application exits or when <a href="gtk-Clipboards.html#gtk-clipboard-store"><code class="function">gtk_clipboard_store()</code></a> is called.
</p>
<p>
This value is reset when the clipboard owner changes.
Where the clipboard data is stored is platform dependent,
see <a
href="../gdk/GdkDisplay.html#gdk-display-store-clipboard"
><code class="function">gdk_display_store_clipboard()</code></a> for more information.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>targets</code></em> :</span></td>
<td> array containing information about which forms should be stored
or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> to indicate that all forms should be stored.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_targets</code></em> :</span></td>
<td> number of elements in <em class="parameter"><code>targets</code></em>
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2600930"></a><h3>
<a name="gtk-clipboard-store"></a>gtk_clipboard_store ()</h3>
<a class="indexterm" name="id2600945"></a><pre class="programlisting">void gtk_clipboard_store (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard);</pre>
<p>
Stores the current clipboard data somewhere so that it will stay
around after the application has quit.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td> a <a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a>
</td>
</tr></tbody>
</table></div>
<p>Since 2.6
</p>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id2601010"></a><h2>Signal Details</h2>
<div class="refsect2" lang="en">
<a name="id2601020"></a><h3>
<a name="GtkClipboard-owner-change"></a>The "owner-change" signal</h3>
<a class="indexterm" name="id2601031"></a><pre class="programlisting">void user_function (<a href="gtk-Clipboards.html#GtkClipboard">GtkClipboard</a> *clipboard,
<a
href="../gdk/gdk-Event-Structures.html#GdkEvent"
>GdkEvent</a> *event,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data) : Run first</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>clipboard</code></em> :</span></td>
<td>the object which received the signal.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>event</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id2601123"></a><h2>See Also</h2>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="type">GtkSelection</span></span></td>
<td><p><a href="gtk-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> provides a high-level wrapper around the
lower level routines that deal with X selections. It is
also possibly to directly manipulate the X selections,
though it is seldom necessary to do so.</p></td>
</tr></tbody>
</table></div>
<p>
</p>
</div>
</div>
</body>
</html>