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>ClutterDragAction: Clutter Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Clutter Reference Manual">
<link rel="up" href="ch04.html" title="Actions">
<link rel="prev" href="ClutterClickAction.html" title="ClutterClickAction">
<link rel="next" href="ClutterDropAction.html" title="ClutterDropAction">
<meta name="generator" content="GTK-Doc V1.25.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="#ClutterDragAction.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#ClutterDragAction.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#ClutterDragAction.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                  <a href="#ClutterDragAction.signals" class="shortcut">Signals</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="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ClutterClickAction.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ClutterDropAction.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ClutterDragAction"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ClutterDragAction.top_of_page"></a>ClutterDragAction</span></h2>
<p>ClutterDragAction — Action enabling dragging on actors</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ClutterDragAction.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">
<a class="link" href="ClutterAction.html" title="ClutterAction"><span class="returnvalue">ClutterAction</span></a> *
</td>
<td class="function_name">
<a class="link" href="ClutterDragAction.html#clutter-drag-action-new" title="clutter_drag_action_new ()">clutter_drag_action_new</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="ClutterDragAction.html#clutter-drag-action-set-drag-threshold" title="clutter_drag_action_set_drag_threshold ()">clutter_drag_action_set_drag_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="ClutterDragAction.html#clutter-drag-action-get-drag-threshold" title="clutter_drag_action_get_drag_threshold ()">clutter_drag_action_get_drag_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="ClutterDragAction.html#clutter-drag-action-set-drag-handle" title="clutter_drag_action_set_drag_handle ()">clutter_drag_action_set_drag_handle</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *
</td>
<td class="function_name">
<a class="link" href="ClutterDragAction.html#clutter-drag-action-get-drag-handle" title="clutter_drag_action_get_drag_handle ()">clutter_drag_action_get_drag_handle</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="ClutterDragAction.html#clutter-drag-action-set-drag-axis" title="clutter_drag_action_set_drag_axis ()">clutter_drag_action_set_drag_axis</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterDragAction.html#ClutterDragAxis" title="enum ClutterDragAxis"><span class="returnvalue">ClutterDragAxis</span></a>
</td>
<td class="function_name">
<a class="link" href="ClutterDragAction.html#clutter-drag-action-get-drag-axis" title="clutter_drag_action_get_drag_axis ()">clutter_drag_action_get_drag_axis</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="ClutterDragAction.html#clutter-drag-action-set-drag-area" title="clutter_drag_action_set_drag_area ()">clutter_drag_action_set_drag_area</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ClutterDragAction.html#clutter-drag-action-get-drag-area" title="clutter_drag_action_get_drag_area ()">clutter_drag_action_get_drag_area</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="ClutterDragAction.html#clutter-drag-action-get-press-coords" title="clutter_drag_action_get_press_coords ()">clutter_drag_action_get_press_coords</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="ClutterDragAction.html#clutter-drag-action-get-motion-coords" title="clutter_drag_action_get_motion_coords ()">clutter_drag_action_get_motion_coords</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type">
<a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a> *</td>
<td class="property_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction--drag-area" title="The “drag-area” property">drag-area</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction--drag-area-set" title="The “drag-area-set” property">drag-area-set</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a class="link" href="ClutterDragAction.html#ClutterDragAxis" title="enum ClutterDragAxis"><span class="type">ClutterDragAxis</span></a></td>
<td class="property_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction--drag-axis" title="The “drag-axis” property">drag-axis</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *</td>
<td class="property_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction--drag-handle" title="The “drag-handle” property">drag-handle</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction--x-drag-threshold" title="The “x-drag-threshold” property">x-drag-threshold</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction--y-drag-threshold" title="The “y-drag-threshold” property">y-drag-threshold</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signals_return">
<col width="300px" class="signals_name">
<col width="200px" class="signals_flags">
</colgroup>
<tbody>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal">drag-begin</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-end" title="The “drag-end” signal">drag-end</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-motion" title="The “drag-motion” signal">drag-motion</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-progress" title="The “drag-progress” signal">drag-progress</a></td>
<td class="signal_flags">Run Last</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.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">struct</td>
<td class="function_name"><a class="link" href="ClutterDragAction.html#ClutterDragAction-struct" title="struct ClutterDragAction">ClutterDragAction</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="ClutterDragAction.html#ClutterDragActionClass" title="struct ClutterDragActionClass">ClutterDragActionClass</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="ClutterDragAction.html#ClutterDragAxis" title="enum ClutterDragAxis">ClutterDragAxis</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GInitiallyUnowned
        <span class="lineart">╰──</span> <a class="link" href="ClutterActorMeta.html" title="ClutterActorMeta">ClutterActorMeta</a>
            <span class="lineart">╰──</span> <a class="link" href="ClutterAction.html" title="ClutterAction">ClutterAction</a>
                <span class="lineart">╰──</span> ClutterDragAction
</pre>
</div>
<div class="refsect1">
<a name="ClutterDragAction.description"></a><h2>Description</h2>
<p><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> is a sub-class of <a class="link" href="ClutterAction.html" title="ClutterAction"><span class="type">ClutterAction</span></a> that implements
all the necessary logic for dragging actors.</p>
<p>The simplest usage of <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> consists in adding it to
a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> and setting it as reactive; for instance, the following
code:</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</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="ClutterActor.html#clutter-actor-add-action">clutter_actor_add_action</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">actor</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="ClutterDragAction.html#clutter-drag-action-new">clutter_drag_action_new</a></span><span class="normal"> </span><span class="symbol">());</span>
<span class="function"><a href="ClutterActor.html#clutter-actor-set-reactive">clutter_actor_set_reactive</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">actor</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>will automatically result in the actor moving to follow the pointer
whenever the pointer's button is pressed over the actor and moved
across the stage.</p>
<p>The <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> will signal the begin and the end of a dragging
through the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> and <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-end" title="The “drag-end” signal"><span class="type">“drag-end”</span></a>
signals, respectively. Each pointer motion during a drag will also result
in the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-motion" title="The “drag-motion” signal"><span class="type">“drag-motion”</span></a> signal to be emitted.</p>
<p>It is also possible to set another <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> as the dragged actor
by calling <a class="link" href="ClutterDragAction.html#clutter-drag-action-set-drag-handle" title="clutter_drag_action_set_drag_handle ()"><code class="function">clutter_drag_action_set_drag_handle()</code></a> from within a handle
of the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> signal. The drag handle must be
parented and exist between the emission of <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a>
and <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-end" title="The “drag-end” signal"><span class="type">“drag-end”</span></a>.</p>
<p>The <a class="ulink" href="https://git.gnome.org/browse/clutter/tree/examples/drag-action.c?h=clutter-1.18" target="_top">drag-action example</a>
allows dragging the rectangle around the stage using a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a>.
When pressing the <code class="literal">Shift</code> key the actor that is being dragged will be a
separate rectangle, and when the drag ends, the original rectangle will be
animated to the final drop coordinates.</p>
<p><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> is available since Clutter 1.4</p>
</div>
<div class="refsect1">
<a name="ClutterDragAction.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="clutter-drag-action-new"></a><h3>clutter_drag_action_new ()</h3>
<pre class="programlisting"><a class="link" href="ClutterAction.html" title="ClutterAction"><span class="returnvalue">ClutterAction</span></a> *
clutter_drag_action_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Creates a new <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> instance</p>
<div class="refsect3">
<a name="clutter-drag-action-new.returns"></a><h4>Returns</h4>
<p> the newly created <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-set-drag-threshold"></a><h3>clutter_drag_action_set_drag_threshold ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_set_drag_threshold
                               (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> x_threshold</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> y_threshold</code></em>);</pre>
<p>Sets the horizontal and vertical drag thresholds that must be
cleared by the pointer before <em class="parameter"><code>action</code></em>
 can begin the dragging.</p>
<p>If <em class="parameter"><code>x_threshold</code></em>
 or <em class="parameter"><code>y_threshold</code></em>
 are set to -1 then the default
drag threshold stored in the <a class="link" href="ClutterSettings.html#ClutterSettings--dnd-drag-threshold" title="The “dnd-drag-threshold” property"><span class="type">“dnd-drag-threshold”</span></a>
property of <a class="link" href="ClutterSettings.html" title="ClutterSettings"><span class="type">ClutterSettings</span></a> will be used.</p>
<div class="refsect3">
<a name="clutter-drag-action-set-drag-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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x_threshold</p></td>
<td class="parameter_description"><p>a distance on the horizontal axis, in pixels, or
-1 to use the default drag threshold from <a class="link" href="ClutterSettings.html" title="ClutterSettings"><span class="type">ClutterSettings</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y_threshold</p></td>
<td class="parameter_description"><p>a distance on the vertical axis, in pixels, or
-1 to use the default drag threshold from <a class="link" href="ClutterSettings.html" title="ClutterSettings"><span class="type">ClutterSettings</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-get-drag-threshold"></a><h3>clutter_drag_action_get_drag_threshold ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_get_drag_threshold
                               (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                <em class="parameter"><code><span class="type">guint</span> *x_threshold</code></em>,
                                <em class="parameter"><code><span class="type">guint</span> *y_threshold</code></em>);</pre>
<p>Retrieves the values set by <a class="link" href="ClutterDragAction.html#clutter-drag-action-set-drag-threshold" title="clutter_drag_action_set_drag_threshold ()"><code class="function">clutter_drag_action_set_drag_threshold()</code></a>.</p>
<p>If the <a class="link" href="ClutterDragAction.html#ClutterDragAction--x-drag-threshold" title="The “x-drag-threshold” property"><span class="type">“x-drag-threshold”</span></a> property or the
<a class="link" href="ClutterDragAction.html#ClutterDragAction--y-drag-threshold" title="The “y-drag-threshold” property"><span class="type">“y-drag-threshold”</span></a> property have been set to -1 then
this function will return the default drag threshold value as stored
by the <a class="link" href="ClutterSettings.html#ClutterSettings--dnd-drag-threshold" title="The “dnd-drag-threshold” property"><span class="type">“dnd-drag-threshold”</span></a> property of <a class="link" href="ClutterSettings.html" title="ClutterSettings"><span class="type">ClutterSettings</span></a>.</p>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x_threshold</p></td>
<td class="parameter_description"><p> return location for the horizontal drag
threshold value, in pixels. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>y_threshold</p></td>
<td class="parameter_description"><p> return location for the vertical drag
threshold value, in pixels. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-set-drag-handle"></a><h3>clutter_drag_action_set_drag_handle ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_set_drag_handle (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                     <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *handle</code></em>);</pre>
<p>Sets the actor to be used as the drag handle.</p>
<div class="refsect3">
<a name="clutter-drag-action-set-drag-handle.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>handle</p></td>
<td class="parameter_description"><p> a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>, or <code class="literal">NULL</code> to unset. </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="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-get-drag-handle"></a><h3>clutter_drag_action_get_drag_handle ()</h3>
<pre class="programlisting"><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *
clutter_drag_action_get_drag_handle (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>);</pre>
<p>Retrieves the drag handle set by <a class="link" href="ClutterDragAction.html#clutter-drag-action-set-drag-handle" title="clutter_drag_action_set_drag_handle ()"><code class="function">clutter_drag_action_set_drag_handle()</code></a></p>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-handle.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-handle.returns"></a><h4>Returns</h4>
<p> a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>, used as the drag
handle, or <code class="literal">NULL</code> if none was set. </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="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-set-drag-axis"></a><h3>clutter_drag_action_set_drag_axis ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_set_drag_axis (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                   <em class="parameter"><code><a class="link" href="ClutterDragAction.html#ClutterDragAxis" title="enum ClutterDragAxis"><span class="type">ClutterDragAxis</span></a> axis</code></em>);</pre>
<p>Restricts the dragging action to a specific axis</p>
<div class="refsect3">
<a name="clutter-drag-action-set-drag-axis.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>axis</p></td>
<td class="parameter_description"><p>the axis to constraint the dragging to</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-get-drag-axis"></a><h3>clutter_drag_action_get_drag_axis ()</h3>
<pre class="programlisting"><a class="link" href="ClutterDragAction.html#ClutterDragAxis" title="enum ClutterDragAxis"><span class="returnvalue">ClutterDragAxis</span></a>
clutter_drag_action_get_drag_axis (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>);</pre>
<p>Retrieves the axis constraint set by <a class="link" href="ClutterDragAction.html#clutter-drag-action-set-drag-axis" title="clutter_drag_action_set_drag_axis ()"><code class="function">clutter_drag_action_set_drag_axis()</code></a></p>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-axis.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-axis.returns"></a><h4>Returns</h4>
<p> the axis constraint</p>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-set-drag-area"></a><h3>clutter_drag_action_set_drag_area ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_set_drag_area (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                   <em class="parameter"><code>const <a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a> *drag_area</code></em>);</pre>
<p>Sets <em class="parameter"><code>drag_area</code></em>
 to constrain the dragging of the actor associated
with <em class="parameter"><code>action</code></em>
, so that it position is always within <em class="parameter"><code>drag_area</code></em>
, expressed
in parent's coordinates.
If <em class="parameter"><code>drag_area</code></em>
 is <code class="literal">NULL</code>, the actor is not constrained.</p>
<div class="refsect3">
<a name="clutter-drag-action-set-drag-area.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>drag_area</p></td>
<td class="parameter_description"><p> a <a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></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>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-get-drag-area"></a><h3>clutter_drag_action_get_drag_area ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_drag_action_get_drag_area (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                   <em class="parameter"><code><a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a> *drag_area</code></em>);</pre>
<p>Retrieves the "drag area" associated with <em class="parameter"><code>action</code></em>
, that
is a <a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a> that constrains the actor movements,
in parents coordinates.</p>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-area.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>drag_area</p></td>
<td class="parameter_description"><p> a <a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a> to be filled. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="clutter-drag-action-get-drag-area.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the actor is actually constrained (and thus
<em class="parameter"><code>drag_area</code></em>
is valid), <code class="literal">FALSE</code> otherwise</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-get-press-coords"></a><h3>clutter_drag_action_get_press_coords ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_get_press_coords (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                      <em class="parameter"><code><span class="type">gfloat</span> *press_x</code></em>,
                                      <em class="parameter"><code><span class="type">gfloat</span> *press_y</code></em>);</pre>
<p>Retrieves the coordinates, in stage space, of the press event
that started the dragging</p>
<div class="refsect3">
<a name="clutter-drag-action-get-press-coords.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>press_x</p></td>
<td class="parameter_description"><p> return location for the press event's X coordinate. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>press_y</p></td>
<td class="parameter_description"><p> return location for the press event's Y coordinate. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-drag-action-get-motion-coords"></a><h3>clutter_drag_action_get_motion_coords ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_drag_action_get_motion_coords (<em class="parameter"><code><a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action</code></em>,
                                       <em class="parameter"><code><span class="type">gfloat</span> *motion_x</code></em>,
                                       <em class="parameter"><code><span class="type">gfloat</span> *motion_y</code></em>);</pre>
<p>Retrieves the coordinates, in stage space, of the latest motion
event during the dragging</p>
<div class="refsect3">
<a name="clutter-drag-action-get-motion-coords.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>action</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>motion_x</p></td>
<td class="parameter_description"><p> return location for the latest motion
event's X coordinate. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>motion_y</p></td>
<td class="parameter_description"><p> return location for the latest motion
event's Y coordinate. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="ClutterDragAction-struct"></a><h3>struct ClutterDragAction</h3>
<pre class="programlisting">struct ClutterDragAction;</pre>
<p>The <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> structure contains only
private data and should be accessed using the provided API</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragActionClass"></a><h3>struct ClutterDragActionClass</h3>
<pre class="programlisting">struct ClutterDragActionClass {
  void          (* drag_begin)          (ClutterDragAction   *action,
                                         ClutterActor        *actor,
                                         gfloat               event_x,
                                         gfloat               event_y,
                                         ClutterModifierType  modifiers);
  void          (* drag_motion)         (ClutterDragAction   *action,
                                         ClutterActor        *actor,
                                         gfloat               delta_x,
                                         gfloat               delta_y);
  void          (* drag_end)            (ClutterDragAction   *action,
                                         ClutterActor        *actor,
                                         gfloat               event_x,
                                         gfloat               event_y,
                                         ClutterModifierType  modifiers);
  gboolean      (* drag_progress)       (ClutterDragAction   *action,
                                         ClutterActor        *actor,
                                         gfloat               delta_x,
                                         gfloat               delta_y);
};
</pre>
<p>The <a class="link" href="ClutterDragAction.html#ClutterDragActionClass" title="struct ClutterDragActionClass"><span class="type">ClutterDragActionClass</span></a> structure contains
only private data</p>
<div class="refsect3">
<a name="ClutterDragActionClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="ClutterDragActionClass.drag-begin"></a>drag_begin</code></em> ()</p></td>
<td class="struct_member_description"><p>class handler of the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> signal</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="ClutterDragActionClass.drag-motion"></a>drag_motion</code></em> ()</p></td>
<td class="struct_member_description"><p>class handler of the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-motion" title="The “drag-motion” signal"><span class="type">“drag-motion”</span></a> signal</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="ClutterDragActionClass.drag-end"></a>drag_end</code></em> ()</p></td>
<td class="struct_member_description"><p>class handler of the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-end" title="The “drag-end” signal"><span class="type">“drag-end”</span></a> signal</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="ClutterDragActionClass.drag-progress"></a>drag_progress</code></em> ()</p></td>
<td class="struct_member_description"><p>class handler of the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-progress" title="The “drag-progress” signal"><span class="type">“drag-progress”</span></a> signal</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAxis"></a><h3>enum ClutterDragAxis</h3>
<p>The axis of the constraint that should be applied on the
dragging action</p>
<div class="refsect3">
<a name="ClutterDragAxis.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="CLUTTER-DRAG-AXIS-NONE:CAPS"></a>CLUTTER_DRAG_AXIS_NONE</p></td>
<td class="enum_member_description">
<p>No constraint</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-DRAG-X-AXIS:CAPS"></a>CLUTTER_DRAG_X_AXIS</p></td>
<td class="enum_member_description">
<p>Set a constraint on the X axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-DRAG-Y-AXIS:CAPS"></a>CLUTTER_DRAG_Y_AXIS</p></td>
<td class="enum_member_description">
<p>Set a constraint on the Y axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="ClutterDragAction--drag-area"></a><h3>The <code class="literal">“drag-area”</code> property</h3>
<pre class="programlisting">  “drag-area”                <a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a> *</pre>
<p>Constains the dragging action (or in particular, the resulting
actor position) to the specified <a class="link" href="clutter-Base-geometric-types.html#ClutterRect"><span class="type">ClutterRect</span></a>, in parent's
coordinates.</p>
<p>Flags: Read / Write</p>
<p class="since">Since: <a class="link" href="ix13.html#api-index-1.12">1.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction--drag-area-set"></a><h3>The <code class="literal">“drag-area-set”</code> property</h3>
<pre class="programlisting">  “drag-area-set”            <span class="type">gboolean</span></pre>
<p>Whether the <a class="link" href="ClutterDragAction.html#ClutterDragAction--drag-area" title="The “drag-area” property"><span class="type">“drag-area”</span></a> property has been set.</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="ix13.html#api-index-1.12">1.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction--drag-axis"></a><h3>The <code class="literal">“drag-axis”</code> property</h3>
<pre class="programlisting">  “drag-axis”                <a class="link" href="ClutterDragAction.html#ClutterDragAxis" title="enum ClutterDragAxis"><span class="type">ClutterDragAxis</span></a></pre>
<p>Constraints the dragging action to the specified axis</p>
<p>Flags: Read / Write</p>
<p>Default value: CLUTTER_DRAG_AXIS_NONE</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction--drag-handle"></a><h3>The <code class="literal">“drag-handle”</code> property</h3>
<pre class="programlisting">  “drag-handle”              <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *</pre>
<p>The <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> that is effectively being dragged</p>
<p>A <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> will, be default, use the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> that
has been attached to the action; it is possible to create a
separate <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> and use it instead.</p>
<p>Setting this property has no effect on the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> argument
passed to the <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> signals</p>
<p>Flags: Read / Write</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction--x-drag-threshold"></a><h3>The <code class="literal">“x-drag-threshold”</code> property</h3>
<pre class="programlisting">  “x-drag-threshold”         <span class="type">gint</span></pre>
<p>The horizontal threshold, in pixels, that the cursor must travel
in order to begin a drag action.</p>
<p>When set to a positive value, <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> will only emit
<a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> if the pointer has moved
horizontally at least of the given amount of pixels since
the button press event.</p>
<p>When set to -1, <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> will use the default threshold
stored in the <a class="link" href="ClutterSettings.html#ClutterSettings--dnd-drag-threshold" title="The “dnd-drag-threshold” property"><span class="type">“dnd-drag-threshold”</span></a> property of
<a class="link" href="ClutterSettings.html" title="ClutterSettings"><span class="type">ClutterSettings</span></a>.</p>
<p>When read, this property will always return a valid drag
threshold, either as set or the default one.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= -1</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction--y-drag-threshold"></a><h3>The <code class="literal">“y-drag-threshold”</code> property</h3>
<pre class="programlisting">  “y-drag-threshold”         <span class="type">gint</span></pre>
<p>The vertical threshold, in pixels, that the cursor must travel
in order to begin a drag action.</p>
<p>When set to a positive value, <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> will only emit
<a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> if the pointer has moved
vertically at least of the given amount of pixels since
the button press event.</p>
<p>When set to -1, <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> will use the value stored
in the <a class="link" href="ClutterSettings.html#ClutterSettings--dnd-drag-threshold" title="The “dnd-drag-threshold” property"><span class="type">“dnd-drag-threshold”</span></a> property of
<a class="link" href="ClutterSettings.html" title="ClutterSettings"><span class="type">ClutterSettings</span></a>.</p>
<p>When read, this property will always return a valid drag
threshold, either as set or the default one.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= -1</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
</div>
<div class="refsect1">
<a name="ClutterDragAction.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="ClutterDragAction-drag-begin"></a><h3>The <code class="literal">“drag-begin”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a>  *action,
               <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>       *actor,
               <span class="type">gfloat</span>              event_x,
               <span class="type">gfloat</span>              event_y,
               <a class="link" href="clutter-Events.html#ClutterModifierType" title="enum ClutterModifierType"><span class="type">ClutterModifierType</span></a> modifiers,
               <span class="type">gpointer</span>            user_data)</pre>
<p>The ::drag-begin signal is emitted when the <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a>
starts the dragging</p>
<p>The emission of this signal can be delayed by using the
<a class="link" href="ClutterDragAction.html#ClutterDragAction--x-drag-threshold" title="The “x-drag-threshold” property"><span class="type">“x-drag-threshold”</span></a> and
<a class="link" href="ClutterDragAction.html#ClutterDragAction--y-drag-threshold" title="The “y-drag-threshold” property"><span class="type">“y-drag-threshold”</span></a> properties</p>
<div class="refsect3">
<a name="ClutterDragAction-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>action</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actor</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> attached to the action</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event_x</p></td>
<td class="parameter_description"><p>the X coordinate (in stage space) of the press event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event_y</p></td>
<td class="parameter_description"><p>the Y coordinate (in stage space) of the press event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>modifiers</p></td>
<td class="parameter_description"><p>the modifiers of the press event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction-drag-end"></a><h3>The <code class="literal">“drag-end”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a>  *action,
               <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>       *actor,
               <span class="type">gfloat</span>              event_x,
               <span class="type">gfloat</span>              event_y,
               <a class="link" href="clutter-Events.html#ClutterModifierType" title="enum ClutterModifierType"><span class="type">ClutterModifierType</span></a> modifiers,
               <span class="type">gpointer</span>            user_data)</pre>
<p>The ::drag-end signal is emitted at the end of the dragging,
when the pointer button's is released</p>
<p>This signal is emitted if and only if the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a>
signal has been emitted first</p>
<div class="refsect3">
<a name="ClutterDragAction-drag-end.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>action</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actor</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> attached to the action</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event_x</p></td>
<td class="parameter_description"><p>the X coordinate (in stage space) of the release event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event_y</p></td>
<td class="parameter_description"><p>the Y coordinate (in stage space) of the release event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>modifiers</p></td>
<td class="parameter_description"><p>the modifiers of the release event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction-drag-motion"></a><h3>The <code class="literal">“drag-motion”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action,
               <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>      *actor,
               <span class="type">gfloat</span>             delta_x,
               <span class="type">gfloat</span>             delta_y,
               <span class="type">gpointer</span>           user_data)</pre>
<p>The ::drag-motion signal is emitted for each motion event after
the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> signal has been emitted.</p>
<p>The components of the distance between the press event and the
latest motion event are computed in the actor's coordinate space,
to take into account eventual transformations. If you want the
stage coordinates of the latest motion event you can use
<a class="link" href="ClutterDragAction.html#clutter-drag-action-get-motion-coords" title="clutter_drag_action_get_motion_coords ()"><code class="function">clutter_drag_action_get_motion_coords()</code></a>.</p>
<p>The default handler of the signal will call <a class="link" href="ClutterActor.html#clutter-actor-move-by" title="clutter_actor_move_by ()"><code class="function">clutter_actor_move_by()</code></a>
either on <em class="parameter"><code>actor</code></em>
 or, if set, of <a class="link" href="ClutterDragAction.html#ClutterDragAction--drag-handle" title="The “drag-handle” property"><span class="type">“drag-handle”</span></a> using
the <em class="parameter"><code>delta_x</code></em>
 and <em class="parameter"><code>delta_y</code></em>
 components of the dragging motion. If you
want to override the default behaviour, you can connect to the
<a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-progress" title="The “drag-progress” signal"><span class="type">“drag-progress”</span></a> signal and return <code class="literal">FALSE</code> from the
handler.</p>
<div class="refsect3">
<a name="ClutterDragAction-drag-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>action</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actor</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> attached to the action</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>delta_x</p></td>
<td class="parameter_description"><p>the X component of the distance between the press event
that began the dragging and the current position of the pointer,
as of the latest motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>delta_y</p></td>
<td class="parameter_description"><p>the Y component of the distance between the press event
that began the dragging and the current position of the pointer,
as of the latest motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="ix09.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterDragAction-drag-progress"></a><h3>The <code class="literal">“drag-progress”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> *action,
               <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>      *actor,
               <span class="type">gfloat</span>             delta_x,
               <span class="type">gfloat</span>             delta_y,
               <span class="type">gpointer</span>           user_data)</pre>
<p>The ::drag-progress signal is emitted for each motion event after
the <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a> signal has been emitted.</p>
<p>The components of the distance between the press event and the
latest motion event are computed in the actor's coordinate space,
to take into account eventual transformations. If you want the
stage coordinates of the latest motion event you can use
<a class="link" href="ClutterDragAction.html#clutter-drag-action-get-motion-coords" title="clutter_drag_action_get_motion_coords ()"><code class="function">clutter_drag_action_get_motion_coords()</code></a>.</p>
<p>The default handler will emit <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-motion" title="The “drag-motion” signal"><span class="type">“drag-motion”</span></a>,
if <a class="link" href="ClutterDragAction.html#ClutterDragAction-drag-progress" title="The “drag-progress” signal"><span class="type">“drag-progress”</span></a> emission returns <code class="literal">TRUE</code>.</p>
<div class="refsect3">
<a name="ClutterDragAction-drag-progress.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>action</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterDragAction.html" title="ClutterDragAction"><span class="type">ClutterDragAction</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actor</p></td>
<td class="parameter_description"><p>the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> attached to the action</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>delta_x</p></td>
<td class="parameter_description"><p>the X component of the distance between the press event
that began the dragging and the current position of the pointer,
as of the latest motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>delta_y</p></td>
<td class="parameter_description"><p>the Y component of the distance between the press event
that began the dragging and the current position of the pointer,
as of the latest motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ClutterDragAction-drag-progress.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the drag should continue, and <code class="literal">FALSE</code>
if it should be stopped.</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="ix13.html#api-index-1.12">1.12</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25.1</div>
</body>
</html>