Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Drag and Drop: GTK+ 2 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 2 Reference Manual">
<link rel="up" href="gtkbase.html" title="Part II. GTK+ Core Reference">
<link rel="prev" href="gtk2-Clipboards.html" title="Clipboards">
<link rel="next" href="GtkIconTheme.html" title="GtkIconTheme">
<meta name="generator" content="GTK-Doc V1.26.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</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="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#gtk2-Drag-and-Drop.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gtkbase.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gtk2-Clipboards.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GtkIconTheme.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gtk2-Drag-and-Drop"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gtk2-Drag-and-Drop.top_of_page"></a>Drag and Drop</span></h2>
<p>Drag and Drop</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gtk2-Drag-and-Drop.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set" title="gtk_drag_dest_set ()">gtk_drag_dest_set</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set-proxy" title="gtk_drag_dest_set_proxy ()">gtk_drag_dest_set_proxy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-unset" title="gtk_drag_dest_unset ()">gtk_drag_dest_unset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../html/gdk2-Properties-and-Atoms.html#GdkAtom"><span class="returnvalue">GdkAtom</span></a>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-find-target" title="gtk_drag_dest_find_target ()">gtk_drag_dest_find_target</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="returnvalue">GtkTargetList</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-get-target-list" title="gtk_drag_dest_get_target_list ()">gtk_drag_dest_get_target_list</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set-target-list" title="gtk_drag_dest_set_target_list ()">gtk_drag_dest_set_target_list</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-add-text-targets" title="gtk_drag_dest_add_text_targets ()">gtk_drag_dest_add_text_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-add-image-targets" title="gtk_drag_dest_add_image_targets ()">gtk_drag_dest_add_image_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-add-uri-targets" title="gtk_drag_dest_add_uri_targets ()">gtk_drag_dest_add_uri_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set-track-motion" title="gtk_drag_dest_set_track_motion ()">gtk_drag_dest_set_track_motion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-get-track-motion" title="gtk_drag_dest_get_track_motion ()">gtk_drag_dest_get_track_motion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()">gtk_drag_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-get-data" title="gtk_drag_get_data ()">gtk_drag_get_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-get-source-widget" title="gtk_drag_get_source_widget ()">gtk_drag_get_source_widget</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-highlight" title="gtk_drag_highlight ()">gtk_drag_highlight</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-unhighlight" title="gtk_drag_unhighlight ()">gtk_drag_unhighlight</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="returnvalue">GdkDragContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-begin" title="gtk_drag_begin ()">gtk_drag_begin</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-widget" title="gtk_drag_set_icon_widget ()">gtk_drag_set_icon_widget</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-pixmap" title="gtk_drag_set_icon_pixmap ()">gtk_drag_set_icon_pixmap</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-pixbuf" title="gtk_drag_set_icon_pixbuf ()">gtk_drag_set_icon_pixbuf</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-stock" title="gtk_drag_set_icon_stock ()">gtk_drag_set_icon_stock</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-name" title="gtk_drag_set_icon_name ()">gtk_drag_set_icon_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-default" title="gtk_drag_set_icon_default ()">gtk_drag_set_icon_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-default-icon" title="gtk_drag_set_default_icon ()">gtk_drag_set_default_icon</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-check-threshold" title="gtk_drag_check_threshold ()">gtk_drag_check_threshold</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set" title="gtk_drag_source_set ()">gtk_drag_source_set</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-icon" title="gtk_drag_source_set_icon ()">gtk_drag_source_set_icon</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-icon-pixbuf" title="gtk_drag_source_set_icon_pixbuf ()">gtk_drag_source_set_icon_pixbuf</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-icon-stock" title="gtk_drag_source_set_icon_stock ()">gtk_drag_source_set_icon_stock</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-icon-name" title="gtk_drag_source_set_icon_name ()">gtk_drag_source_set_icon_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-unset" title="gtk_drag_source_unset ()">gtk_drag_source_unset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-target-list" title="gtk_drag_source_set_target_list ()">gtk_drag_source_set_target_list</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="returnvalue">GtkTargetList</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-get-target-list" title="gtk_drag_source_get_target_list ()">gtk_drag_source_get_target_list</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-add-text-targets" title="gtk_drag_source_add_text_targets ()">gtk_drag_source_add_text_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-add-image-targets" title="gtk_drag_source_add_image_targets ()">gtk_drag_source_add_image_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-add-uri-targets" title="gtk_drag_source_add_uri_targets ()">gtk_drag_source_add_uri_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gtk2-Drag-and-Drop.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="gtk2-Drag-and-Drop.html#GtkDestDefaults" title="enum GtkDestDefaults">GtkDestDefaults</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="gtk2-Drag-and-Drop.html#GtkTargetFlags" title="enum GtkTargetFlags">GtkTargetFlags</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gtk2-Drag-and-Drop.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="gtk2-Drag-and-Drop.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="gtk2-Drag-and-Drop.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gtk-drag-dest-set"></a><h3>gtk_drag_dest_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_set (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                   <em class="parameter"><code><a class="link" href="gtk2-Drag-and-Drop.html#GtkDestDefaults" title="enum GtkDestDefaults"><span class="type">GtkDestDefaults</span></a> flags</code></em>,
                   <em class="parameter"><code>const <a class="link" href="gtk2-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> *targets</code></em>,
                   <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_targets</code></em>,
                   <em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragAction"><span class="type">GdkDragAction</span></a> actions</code></em>);</pre>
<p>Sets a widget as a potential drop destination, and adds default behaviors.</p>
<p>The default behaviors listed in <em class="parameter"><code>flags</code></em>
 have an effect similar
to installing default handlers for the widget's drag-and-drop signals
(<span class="type">“drag-motion”</span>, <span class="type">“drag-drop”</span>, ...). They all exist
for convenience. When passing <a class="link" href="gtk2-Drag-and-Drop.html#GTK-DEST-DEFAULT-ALL:CAPS"><span class="type">GTK_DEST_DEFAULT_ALL</span></a> for instance it is
sufficient to connect to the widget's <a class="link" href="GtkWidget.html#GtkWidget-drag-data-received" title="The “drag-data-received” signal"><span class="type">“drag-data-received”</span></a>
signal to get primitive, but consistent drag-and-drop support.</p>
<p>Things become more complicated when you try to preview the dragged data,
as described in the documentation for <span class="type">“drag-motion”</span>. The default
behaviors described by <em class="parameter"><code>flags</code></em>
 make some assumptions, that can conflict
with your own signal handlers. For instance <a class="link" href="gtk2-Drag-and-Drop.html#GTK-DEST-DEFAULT-DROP:CAPS"><span class="type">GTK_DEST_DEFAULT_DROP</span></a> causes
invokations of <a href="../html/gdk2-Drag-and-Drop.html#gdk-drag-status"><code class="function">gdk_drag_status()</code></a> in the context of <span class="type">“drag-motion”</span>,
and invokations of <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()"><code class="function">gtk_drag_finish()</code></a> in <span class="type">“drag-data-received”</span>.
Especially the later is dramatic, when your own <span class="type">“drag-motion”</span>
handler calls <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-get-data" title="gtk_drag_get_data ()"><code class="function">gtk_drag_get_data()</code></a> to inspect the dragged data.</p>
<p>There's no way to set a default action here, you can use the
<span class="type">“drag-motion”</span> callback for that. Here's an example which selects
the action to use depending on whether the control key is pressed or not:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
<span class="function">drag_motion</span> <span class="gtkdoc opt">(</span>GtkWidget <span class="gtkdoc opt">*</span>widget<span class="gtkdoc opt">,</span>
             GdkDragContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">,</span>
             gint x<span class="gtkdoc opt">,</span>
             gint y<span class="gtkdoc opt">,</span>
             guint time<span class="gtkdoc opt">)</span>
<span class="gtkdoc opt">{</span>
  GdkModifierType mask<span class="gtkdoc opt">;</span>

  <span class="function"><a href="../html/gdk2-Windows.html#gdk-window-get-pointer">gdk_window_get_pointer</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">),</span>
                          NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">, &amp;</span>mask<span class="gtkdoc opt">);</span>
  <span class="keyword">if</span> <span class="gtkdoc opt">(</span>mask <span class="gtkdoc opt">&amp;</span> GDK_CONTROL_MASK<span class="gtkdoc opt">)</span>
    <span class="function"><a href="../html/gdk2-Drag-and-Drop.html#gdk-drag-status">gdk_drag_status</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">,</span> GDK_ACTION_COPY<span class="gtkdoc opt">,</span> time<span class="gtkdoc opt">);</span>
  <span class="keyword">else</span>
    <span class="function"><a href="../html/gdk2-Drag-and-Drop.html#gdk-drag-status">gdk_drag_status</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">,</span> GDK_ACTION_MOVE<span class="gtkdoc opt">,</span> time<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="gtk-drag-dest-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>which types of default drag behavior to use</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>a pointer to an array of <a class="link" href="gtk2-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a>s
indicating the drop types that this <em class="parameter"><code>widget</code></em>
will accept, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
Later you can access the list with <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-get-target-list" title="gtk_drag_dest_get_target_list ()"><code class="function">gtk_drag_dest_get_target_list()</code></a>
and <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-find-target" title="gtk_drag_dest_find_target ()"><code class="function">gtk_drag_dest_find_target()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_targets]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_targets</p></td>
<td class="parameter_description"><p>the number of entries in <em class="parameter"><code>targets</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actions</p></td>
<td class="parameter_description"><p>a bitmask of possible actions for a drop onto this <em class="parameter"><code>widget</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-set-proxy"></a><h3>gtk_drag_dest_set_proxy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_set_proxy (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code><a href="../html/gdk2-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *proxy_window</code></em>,
                         <em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragProtocol"><span class="type">GdkDragProtocol</span></a> protocol</code></em>,
                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> use_coordinates</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-unset"></a><h3>gtk_drag_dest_unset ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_unset (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-find-target"></a><h3>gtk_drag_dest_find_target ()</h3>
<pre class="programlisting"><a href="../html/gdk2-Properties-and-Atoms.html#GdkAtom"><span class="returnvalue">GdkAtom</span></a>
gtk_drag_dest_find_target (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                           <em class="parameter"><code><a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a> *target_list</code></em>);</pre>
<div class="refsect3">
<a name="gtk-drag-dest-find-target.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>drag destination widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>target_list</p></td>
<td class="parameter_description"><p>list of droppable targets, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to use
gtk_drag_dest_get_target_list (<em class="parameter"><code>widget</code></em>
).
Looks for a match between the supported targets of <em class="parameter"><code>context</code></em>
and the
<em class="parameter"><code>dest_target_list</code></em>
, returning the first matching target, otherwise
returning <a href="../html/gdk2-Properties-and-Atoms.html#GDK-NONE:CAPS"><code class="literal">GDK_NONE</code></a>. <em class="parameter"><code>dest_target_list</code></em>
should usually be the return
value from <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-get-target-list" title="gtk_drag_dest_get_target_list ()"><code class="function">gtk_drag_dest_get_target_list()</code></a>, but some widgets may
have different valid targets for different parts of the widget; in
that case, they will have to implement a drag_motion handler that
passes the correct target list to this function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-dest-find-target.returns"></a><h4>Returns</h4>
<p>first target that the source offers
and the dest can accept, or <a href="../html/gdk2-Properties-and-Atoms.html#GDK-NONE:CAPS"><code class="literal">GDK_NONE</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-get-target-list"></a><h3>gtk_drag_dest_get_target_list ()</h3>
<pre class="programlisting"><a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="returnvalue">GtkTargetList</span></a> *
gtk_drag_dest_get_target_list (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the list of targets this widget can accept from
drag-and-drop.</p>
<div class="refsect3">
<a name="gtk-drag-dest-get-target-list.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-dest-get-target-list.returns"></a><h4>Returns</h4>
<p>the <a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-set-target-list"></a><h3>gtk_drag_dest_set_target_list ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_set_target_list (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a> *target_list</code></em>);</pre>
<p>Sets the target types that this widget can accept from drag-and-drop.
The widget must first be made into a drag destination with
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set" title="gtk_drag_dest_set ()"><code class="function">gtk_drag_dest_set()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-dest-set-target-list.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag destination</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>target_list</p></td>
<td class="parameter_description"><p>list of droppable targets, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for none. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-add-text-targets"></a><h3>gtk_drag_dest_add_text_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_add_text_targets (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Add the text targets supported by <span class="type">GtkSelection</span> to
the target list of the drag destination. The targets
are added with <em class="parameter"><code>info</code></em>
 = 0. If you need another value, 
use <a class="link" href="gtk2-Selections.html#gtk-target-list-add-text-targets" title="gtk_target_list_add_text_targets ()"><code class="function">gtk_target_list_add_text_targets()</code></a> and
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set-target-list" title="gtk_drag_dest_set_target_list ()"><code class="function">gtk_drag_dest_set_target_list()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-dest-add-text-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag destination</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-add-image-targets"></a><h3>gtk_drag_dest_add_image_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_add_image_targets (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Add the image targets supported by <span class="type">GtkSelection</span> to
the target list of the drag destination. The targets
are added with <em class="parameter"><code>info</code></em>
 = 0. If you need another value, 
use <a class="link" href="gtk2-Selections.html#gtk-target-list-add-image-targets" title="gtk_target_list_add_image_targets ()"><code class="function">gtk_target_list_add_image_targets()</code></a> and
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set-target-list" title="gtk_drag_dest_set_target_list ()"><code class="function">gtk_drag_dest_set_target_list()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-dest-add-image-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag destination</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-add-uri-targets"></a><h3>gtk_drag_dest_add_uri_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_add_uri_targets (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Add the URI targets supported by <span class="type">GtkSelection</span> to
the target list of the drag destination. The targets
are added with <em class="parameter"><code>info</code></em>
 = 0. If you need another value, 
use <a class="link" href="gtk2-Selections.html#gtk-target-list-add-uri-targets" title="gtk_target_list_add_uri_targets ()"><code class="function">gtk_target_list_add_uri_targets()</code></a> and
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-dest-set-target-list" title="gtk_drag_dest_set_target_list ()"><code class="function">gtk_drag_dest_set_target_list()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-dest-add-uri-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag destination</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-set-track-motion"></a><h3>gtk_drag_dest_set_track_motion ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_dest_set_track_motion (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> track_motion</code></em>);</pre>
<p>Tells the widget to emit ::drag-motion and ::drag-leave
events regardless of the targets and the <a class="link" href="gtk2-Drag-and-Drop.html#GTK-DEST-DEFAULT-MOTION:CAPS"><code class="literal">GTK_DEST_DEFAULT_MOTION</code></a>
flag. </p>
<p>This may be used when a widget wants to do generic
actions regardless of the targets that the source offers.</p>
<div class="refsect3">
<a name="gtk-drag-dest-set-track-motion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag destination</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>track_motion</p></td>
<td class="parameter_description"><p>whether to accept all targets</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-10.html#api-index-2.10">2.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-dest-get-track-motion"></a><h3>gtk_drag_dest_get_track_motion ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gtk_drag_dest_get_track_motion (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns whether the widget has been configured to always
emit ::drag-motion signals.</p>
<div class="refsect3">
<a name="gtk-drag-dest-get-track-motion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag destination</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-dest-get-track-motion.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the widget always emits ::drag-motion events</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-10.html#api-index-2.10">2.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-finish"></a><h3>gtk_drag_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_finish (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                 <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> success</code></em>,
                 <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> del</code></em>,
                 <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> time_</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-get-data"></a><h3>gtk_drag_get_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_get_data (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                   <em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                   <em class="parameter"><code><a href="../html/gdk2-Properties-and-Atoms.html#GdkAtom"><span class="type">GdkAtom</span></a> target</code></em>,
                   <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> time_</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-get-source-widget"></a><h3>gtk_drag_get_source_widget ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
gtk_drag_get_source_widget (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>);</pre>
<p>Determines the source widget for a drag.</p>
<div class="refsect3">
<a name="gtk-drag-get-source-widget.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>a (destination side) drag context</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-get-source-widget.returns"></a><h4>Returns</h4>
<p>if the drag is occurring
within a single application, a pointer to the source widget.
Otherwise, <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-highlight"></a><h3>gtk_drag_highlight ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_highlight (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-unhighlight"></a><h3>gtk_drag_unhighlight ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_unhighlight (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-begin"></a><h3>gtk_drag_begin ()</h3>
<pre class="programlisting"><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="returnvalue">GdkDragContext</span></a> *
gtk_drag_begin (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                <em class="parameter"><code><a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a> *targets</code></em>,
                <em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragAction"><span class="type">GdkDragAction</span></a> actions</code></em>,
                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> button</code></em>,
                <em class="parameter"><code><a href="../html/gdk2-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> *event</code></em>);</pre>
<p>Initiates a drag on the source side. The function
only needs to be used when the application is
starting drags itself, and is not needed when
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set" title="gtk_drag_source_set ()"><code class="function">gtk_drag_source_set()</code></a> is used.</p>
<p>The <em class="parameter"><code>event</code></em>
 is used to retrieve the timestamp that will be used internally to
grab the pointer.  If <em class="parameter"><code>event</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, then GDK_CURRENT_TIME will be used.
However, you should try to pass a real event in all cases, since that can be
used by GTK+ to get information about the start position of the drag, for
example if the <em class="parameter"><code>event</code></em>
 is a GDK_MOTION_NOTIFY.</p>
<p>Generally there are three cases when you want to start a drag by hand by calling
this function:</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>During a button-press-event handler, if you want to start a drag immediately
when the user presses the mouse button.  Pass the <em class="parameter"><code>event</code></em>
 that you have in your
button-press-event handler.</p></li>
<li class="listitem"><p>During a motion-notify-event handler, if you want to start a drag when the mouse
moves past a certain threshold distance after a button-press.  Pass the <em class="parameter"><code>event</code></em>
 that you
have in your motion-notify-event handler.</p></li>
<li class="listitem"><p>During a timeout handler, if you want to start a drag after the mouse
button is held down for some time.  Try to save the last event that you got
from the mouse, using <a href="../html/gdk2-Events.html#gdk-event-copy"><code class="function">gdk_event_copy()</code></a>, and pass it to this function
(remember to free the event with <a href="../html/gdk2-Events.html#gdk-event-free"><code class="function">gdk_event_free()</code></a> when you are done).  If you
can really not pass a real event, pass <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> instead.</p></li>
</ol></div>
<div class="refsect3">
<a name="gtk-drag-begin.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the source widget.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>The targets (data formats) in which the
source can provide the data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actions</p></td>
<td class="parameter_description"><p>A bitmask of the allowed drag actions for this drag.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button</p></td>
<td class="parameter_description"><p>The button the user clicked to start the drag.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event that triggered the start of the drag.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-begin.returns"></a><h4>Returns</h4>
<p>the context for this drag. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-icon-widget"></a><h3>gtk_drag_set_icon_widget ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_icon_widget (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                          <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_x</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_y</code></em>);</pre>
<p>Changes the icon for a widget to a given widget. GTK+
will not destroy the icon, so if you don't want
it to persist, you should connect to the "drag-end" 
signal and destroy it yourself.</p>
<div class="refsect3">
<a name="gtk-drag-set-icon-widget.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context for a drag. (This must be called
with a  context for the source side of a drag)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a toplevel window to use as an icon.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_x</p></td>
<td class="parameter_description"><p>the X offset within <em class="parameter"><code>widget</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_y</p></td>
<td class="parameter_description"><p>the Y offset within <em class="parameter"><code>widget</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-icon-pixmap"></a><h3>gtk_drag_set_icon_pixmap ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_icon_pixmap (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                          <em class="parameter"><code><a href="../html/gdk2-Colormaps-and-Colors.html#GdkColormap"><span class="type">GdkColormap</span></a> *colormap</code></em>,
                          <em class="parameter"><code><a href="../html/gdk2-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a> *pixmap</code></em>,
                          <em class="parameter"><code><a href="../html/gdk2-Bitmaps-and-Pixmaps.html#GdkBitmap"><span class="type">GdkBitmap</span></a> *mask</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_x</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_y</code></em>);</pre>
<p>Sets <em class="parameter"><code>pixmap</code></em>
 as the icon for a given drag. GTK+ retains
references for the arguments, and will release them when
they are no longer needed. In general, <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-set-icon-pixbuf" title="gtk_drag_set_icon_pixbuf ()"><code class="function">gtk_drag_set_icon_pixbuf()</code></a>
will be more convenient to use.</p>
<div class="refsect3">
<a name="gtk-drag-set-icon-pixmap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context for a drag. (This must be called
with a  context for the source side of a drag)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>colormap</p></td>
<td class="parameter_description"><p>the colormap of the icon </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixmap</p></td>
<td class="parameter_description"><p>the image data for the icon </p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mask</p></td>
<td class="parameter_description"><p>the transparency mask for the icon or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for none. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>hot_x</p></td>
<td class="parameter_description"><p>the X offset within <em class="parameter"><code>pixmap</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_y</p></td>
<td class="parameter_description"><p>the Y offset within <em class="parameter"><code>pixmap</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-icon-pixbuf"></a><h3>gtk_drag_set_icon_pixbuf ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_icon_pixbuf (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                          <em class="parameter"><code><a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_x</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_y</code></em>);</pre>
<p>Sets <em class="parameter"><code>pixbuf</code></em>
 as the icon for a given drag.</p>
<div class="refsect3">
<a name="gtk-drag-set-icon-pixbuf.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context for a drag. (This must be called
with a  context for the source side of a drag)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>the <a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> to use as the drag icon.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_x</p></td>
<td class="parameter_description"><p>the X offset within <em class="parameter"><code>widget</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_y</p></td>
<td class="parameter_description"><p>the Y offset within <em class="parameter"><code>widget</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-icon-stock"></a><h3>gtk_drag_set_icon_stock ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_icon_stock (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                         <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stock_id</code></em>,
                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_x</code></em>,
                         <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_y</code></em>);</pre>
<p>Sets the icon for a given drag from a stock ID.</p>
<div class="refsect3">
<a name="gtk-drag-set-icon-stock.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context for a drag. (This must be called
with a  context for the source side of a drag)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stock_id</p></td>
<td class="parameter_description"><p>the ID of the stock icon to use for the drag.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_x</p></td>
<td class="parameter_description"><p>the X offset within the icon of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_y</p></td>
<td class="parameter_description"><p>the Y offset within the icon of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-icon-name"></a><h3>gtk_drag_set_icon_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_icon_name (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>,
                        <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>,
                        <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_x</code></em>,
                        <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_y</code></em>);</pre>
<p>Sets the icon for a given drag from a named themed icon. See
the docs for <a class="link" href="GtkIconTheme.html" title="GtkIconTheme"><span class="type">GtkIconTheme</span></a> for more details. Note that the
size of the icon depends on the icon theme (the icon is
loaded at the symbolic size <a class="link" href="gtk2-Themeable-Stock-Images.html#GTK-ICON-SIZE-DND:CAPS"><span class="type">GTK_ICON_SIZE_DND</span></a>), thus 
<em class="parameter"><code>hot_x</code></em>
 and <em class="parameter"><code>hot_y</code></em>
 have to be used with care.</p>
<div class="refsect3">
<a name="gtk-drag-set-icon-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context for a drag. (This must be called
with a context for the source side of a drag)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>icon_name</p></td>
<td class="parameter_description"><p>name of icon to use</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_x</p></td>
<td class="parameter_description"><p>the X offset of the hotspot within the icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_y</p></td>
<td class="parameter_description"><p>the Y offset of the hotspot within the icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-icon-default"></a><h3>gtk_drag_set_icon_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_icon_default (<em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> *context</code></em>);</pre>
<p>Sets the icon for a particular drag to the default
icon.</p>
<div class="refsect3">
<a name="gtk-drag-set-icon-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context for a drag. (This must be called
with a  context for the source side of a drag)</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-set-default-icon"></a><h3>gtk_drag_set_default_icon ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_set_default_icon (<em class="parameter"><code><a href="../html/gdk2-Colormaps-and-Colors.html#GdkColormap"><span class="type">GdkColormap</span></a> *colormap</code></em>,
                           <em class="parameter"><code><a href="../html/gdk2-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a> *pixmap</code></em>,
                           <em class="parameter"><code><a href="../html/gdk2-Bitmaps-and-Pixmaps.html#GdkBitmap"><span class="type">GdkBitmap</span></a> *mask</code></em>,
                           <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_x</code></em>,
                           <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hot_y</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_drag_set_default_icon</code> is deprecated and should not be used in newly-written code.</p>
<p>Change the default drag icon via the stock system by 
    changing the stock pixbuf for <a class="link" href="gtk2-Stock-Items.html#GTK-STOCK-DND:CAPS" title="GTK_STOCK_DND"><span class="type">GTK_STOCK_DND</span></a> instead.</p>
</div>
<p>Changes the default drag icon. GTK+ retains references for the
arguments, and will release them when they are no longer needed.</p>
<div class="refsect3">
<a name="gtk-drag-set-default-icon.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>colormap</p></td>
<td class="parameter_description"><p>the colormap of the icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixmap</p></td>
<td class="parameter_description"><p>the image data for the icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mask</p></td>
<td class="parameter_description"><p>the transparency mask for an image, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>hot_x</p></td>
<td class="parameter_description"><p>The X offset within <em class="parameter"><code>widget</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hot_y</p></td>
<td class="parameter_description"><p>The Y offset within <em class="parameter"><code>widget</code></em>
of the hotspot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-check-threshold"></a><h3>gtk_drag_check_threshold ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gtk_drag_check_threshold (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> start_x</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> start_y</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> current_x</code></em>,
                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> current_y</code></em>);</pre>
<p>Checks to see if a mouse drag starting at (<em class="parameter"><code>start_x</code></em>
, <em class="parameter"><code>start_y</code></em>
) and ending
at (<em class="parameter"><code>current_x</code></em>
, <em class="parameter"><code>current_y</code></em>
) has passed the GTK+ drag threshold, and thus
should trigger the beginning of a drag-and-drop operation.</p>
<div class="refsect3">
<a name="gtk-drag-check-threshold.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_x</p></td>
<td class="parameter_description"><p>X coordinate of start of drag</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_y</p></td>
<td class="parameter_description"><p>Y coordinate of start of drag</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>current_x</p></td>
<td class="parameter_description"><p>current X coordinate</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>current_y</p></td>
<td class="parameter_description"><p>current Y coordinate</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-check-threshold.returns"></a><h4>Returns</h4>
<p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the drag threshold has been passed.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-set"></a><h3>gtk_drag_source_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_set (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                     <em class="parameter"><code><a href="../html/gdk2-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a> start_button_mask</code></em>,
                     <em class="parameter"><code>const <a class="link" href="gtk2-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> *targets</code></em>,
                     <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_targets</code></em>,
                     <em class="parameter"><code><a href="../html/gdk2-Drag-and-Drop.html#GdkDragAction"><span class="type">GdkDragAction</span></a> actions</code></em>);</pre>
<p>Sets up a widget so that GTK+ will start a drag operation when the user
clicks and drags on the widget. The widget must have a window.</p>
<div class="refsect3">
<a name="gtk-drag-source-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_button_mask</p></td>
<td class="parameter_description"><p>the bitmask of buttons that can start the drag</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>the table of targets that the drag will support,
may be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_targets]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_targets</p></td>
<td class="parameter_description"><p>the number of items in <em class="parameter"><code>targets</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actions</p></td>
<td class="parameter_description"><p>the bitmask of possible actions for a drag from this widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-set-icon"></a><h3>gtk_drag_source_set_icon ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_set_icon (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><a href="../html/gdk2-Colormaps-and-Colors.html#GdkColormap"><span class="type">GdkColormap</span></a> *colormap</code></em>,
                          <em class="parameter"><code><a href="../html/gdk2-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a> *pixmap</code></em>,
                          <em class="parameter"><code><a href="../html/gdk2-Bitmaps-and-Pixmaps.html#GdkBitmap"><span class="type">GdkBitmap</span></a> *mask</code></em>);</pre>
<p>Sets the icon that will be used for drags from a particular widget
from a pixmap/mask. GTK+ retains references for the arguments, and
will release them when they are no longer needed.
Use <a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-icon-pixbuf" title="gtk_drag_source_set_icon_pixbuf ()"><code class="function">gtk_drag_source_set_icon_pixbuf()</code></a> instead.</p>
<div class="refsect3">
<a name="gtk-drag-source-set-icon.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>colormap</p></td>
<td class="parameter_description"><p>the colormap of the icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixmap</p></td>
<td class="parameter_description"><p>the image data for the icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mask</p></td>
<td class="parameter_description"><p>the transparency mask for an image. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-set-icon-pixbuf"></a><h3>gtk_drag_source_set_icon_pixbuf ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_set_icon_pixbuf (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                 <em class="parameter"><code><a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Sets the icon that will be used for drags from a particular widget
from a <a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a>. GTK+ retains a reference for <em class="parameter"><code>pixbuf</code></em>
 and will 
release it when it is no longer needed.</p>
<div class="refsect3">
<a name="gtk-drag-source-set-icon-pixbuf.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>the <a href="../gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> for the drag icon</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-set-icon-stock"></a><h3>gtk_drag_source_set_icon_stock ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_set_icon_stock (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stock_id</code></em>);</pre>
<p>Sets the icon that will be used for drags from a particular source
to a stock icon.</p>
<div class="refsect3">
<a name="gtk-drag-source-set-icon-stock.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stock_id</p></td>
<td class="parameter_description"><p>the ID of the stock icon to use</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-set-icon-name"></a><h3>gtk_drag_source_set_icon_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_set_icon_name (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>);</pre>
<p>Sets the icon that will be used for drags from a particular source
to a themed icon. See the docs for <a class="link" href="GtkIconTheme.html" title="GtkIconTheme"><span class="type">GtkIconTheme</span></a> for more details.</p>
<div class="refsect3">
<a name="gtk-drag-source-set-icon-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>icon_name</p></td>
<td class="parameter_description"><p>name of icon to use</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-unset"></a><h3>gtk_drag_source_unset ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_unset (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-set-target-list"></a><h3>gtk_drag_source_set_target_list ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_set_target_list (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                 <em class="parameter"><code><a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a> *target_list</code></em>);</pre>
<p>Changes the target types that this widget offers for drag-and-drop.
The widget must first be made into a drag source with
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set" title="gtk_drag_source_set ()"><code class="function">gtk_drag_source_set()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-source-set-target-list.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's a drag source</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>target_list</p></td>
<td class="parameter_description"><p>list of draggable targets, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for none. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-4.html#api-index-2.4">2.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-get-target-list"></a><h3>gtk_drag_source_get_target_list ()</h3>
<pre class="programlisting"><a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="returnvalue">GtkTargetList</span></a> *
gtk_drag_source_get_target_list (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the list of targets this widget can provide for
drag-and-drop.</p>
<div class="refsect3">
<a name="gtk-drag-source-get-target-list.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-drag-source-get-target-list.returns"></a><h4>Returns</h4>
<p>the <a class="link" href="gtk2-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-4.html#api-index-2.4">2.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-add-text-targets"></a><h3>gtk_drag_source_add_text_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_add_text_targets (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Add the text targets supported by <span class="type">GtkSelection</span> to
the target list of the drag source.  The targets
are added with <em class="parameter"><code>info</code></em>
 = 0. If you need another value, 
use <a class="link" href="gtk2-Selections.html#gtk-target-list-add-text-targets" title="gtk_target_list_add_text_targets ()"><code class="function">gtk_target_list_add_text_targets()</code></a> and
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-target-list" title="gtk_drag_source_set_target_list ()"><code class="function">gtk_drag_source_set_target_list()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-source-add-text-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's is a drag source</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-add-image-targets"></a><h3>gtk_drag_source_add_image_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_add_image_targets (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Add the writable image targets supported by <span class="type">GtkSelection</span> to
the target list of the drag source. The targets
are added with <em class="parameter"><code>info</code></em>
 = 0. If you need another value, 
use <a class="link" href="gtk2-Selections.html#gtk-target-list-add-image-targets" title="gtk_target_list_add_image_targets ()"><code class="function">gtk_target_list_add_image_targets()</code></a> and
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-target-list" title="gtk_drag_source_set_target_list ()"><code class="function">gtk_drag_source_set_target_list()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-source-add-image-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's is a drag source</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-drag-source-add-uri-targets"></a><h3>gtk_drag_source_add_uri_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_drag_source_add_uri_targets (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Add the URI targets supported by <span class="type">GtkSelection</span> to
the target list of the drag source.  The targets
are added with <em class="parameter"><code>info</code></em>
 = 0. If you need another value, 
use <a class="link" href="gtk2-Selections.html#gtk-target-list-add-uri-targets" title="gtk_target_list_add_uri_targets ()"><code class="function">gtk_target_list_add_uri_targets()</code></a> and
<a class="link" href="gtk2-Drag-and-Drop.html#gtk-drag-source-set-target-list" title="gtk_drag_source_set_target_list ()"><code class="function">gtk_drag_source_set_target_list()</code></a>.</p>
<div class="refsect3">
<a name="gtk-drag-source-add-uri-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that's is a drag source</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p>
</div>
</div>
<div class="refsect1">
<a name="gtk2-Drag-and-Drop.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkDestDefaults"></a><h3>enum GtkDestDefaults</h3>
<div class="refsect3">
<a name="GtkDestDefaults.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-DEST-DEFAULT-MOTION:CAPS"></a>GTK_DEST_DEFAULT_MOTION</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-DEST-DEFAULT-HIGHLIGHT:CAPS"></a>GTK_DEST_DEFAULT_HIGHLIGHT</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-DEST-DEFAULT-DROP:CAPS"></a>GTK_DEST_DEFAULT_DROP</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-DEST-DEFAULT-ALL:CAPS"></a>GTK_DEST_DEFAULT_ALL</p></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkTargetFlags"></a><h3>enum GtkTargetFlags</h3>
<div class="refsect3">
<a name="GtkTargetFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-TARGET-SAME-APP:CAPS"></a>GTK_TARGET_SAME_APP</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-TARGET-SAME-WIDGET:CAPS"></a>GTK_TARGET_SAME_WIDGET</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-TARGET-OTHER-APP:CAPS"></a>GTK_TARGET_OTHER_APP</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-TARGET-OTHER-WIDGET:CAPS"></a>GTK_TARGET_OTHER_WIDGET</p></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.26.1</div>
</body>
</html>