gtk3/docs/reference/gtk/html/GtkGestureMultiPress.html
2022-11-23 15:09:27 +00:00

398 lines
20 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkGestureMultiPress: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="Gestures.html" title="Gestures and event handling">
<link rel="prev" href="GtkGestureLongPress.html" title="GtkGestureLongPress">
<link rel="next" href="GtkGesturePan.html" title="GtkGesturePan">
<meta name="generator" content="GTK-Doc V1.33.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="#GtkGestureMultiPress.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#GtkGestureMultiPress.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
<a href="#GtkGestureMultiPress.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="Gestures.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GtkGestureLongPress.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GtkGesturePan.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GtkGestureMultiPress"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GtkGestureMultiPress.top_of_page"></a>GtkGestureMultiPress</span></h2>
<p>GtkGestureMultiPress — Multipress gesture</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GtkGestureMultiPress.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GtkGesture.html" title="GtkGesture"><span class="returnvalue">GtkGesture</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkGestureMultiPress.html#gtk-gesture-multi-press-new" title="gtk_gesture_multi_press_new ()">gtk_gesture_multi_press_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="GtkGestureMultiPress.html#gtk-gesture-multi-press-set-area" title="gtk_gesture_multi_press_set_area ()">gtk_gesture_multi_press_set_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="GtkGestureMultiPress.html#gtk-gesture-multi-press-get-area" title="gtk_gesture_multi_press_get_area ()">gtk_gesture_multi_press_get_area</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signal_proto_type">
<col width="300px" class="signal_proto_name">
<col width="200px" class="signal_proto_flags">
</colgroup>
<tbody>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkGestureMultiPress.html#GtkGestureMultiPress-pressed" title="The “pressed” signal">pressed</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="GtkGestureMultiPress.html#GtkGestureMultiPress-released" title="The “released” signal">released</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="GtkGestureMultiPress.html#GtkGestureMultiPress-stopped" title="The “stopped” signal">stopped</a></td>
<td class="signal_flags">Run Last</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GtkGestureMultiPress.html#GtkGestureMultiPress-struct" title="GtkGestureMultiPress">GtkGestureMultiPress</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> GObject
<span class="lineart">╰──</span> <a class="link" href="GtkEventController.html" title="GtkEventController">GtkEventController</a>
<span class="lineart">╰──</span> <a class="link" href="GtkGesture.html" title="GtkGesture">GtkGesture</a>
<span class="lineart">╰──</span> <a class="link" href="GtkGestureSingle.html" title="GtkGestureSingle">GtkGestureSingle</a>
<span class="lineart">╰──</span> GtkGestureMultiPress
</pre>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.description"></a><h2>Description</h2>
<p><a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a> is a <a class="link" href="GtkGesture.html" title="GtkGesture"><span class="type">GtkGesture</span></a> implementation able to recognize
multiple clicks on a nearby zone, which can be listened for through the
<a class="link" href="GtkGestureMultiPress.html#GtkGestureMultiPress-pressed" title="The “pressed” signal"><span class="type">“pressed”</span></a> signal. Whenever time or distance between
clicks exceed the GTK+ defaults, <a class="link" href="GtkGestureMultiPress.html#GtkGestureMultiPress-stopped" title="The “stopped” signal"><span class="type">“stopped”</span></a> is emitted,
and the click counter is reset.</p>
<p>Callers may also restrict the area that is considered valid for a &gt;1
touch/button press through <a class="link" href="GtkGestureMultiPress.html#gtk-gesture-multi-press-set-area" title="gtk_gesture_multi_press_set_area ()"><code class="function">gtk_gesture_multi_press_set_area()</code></a>, so any
click happening outside that area is considered to be a first click of
its own.</p>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gtk-gesture-multi-press-new"></a><h3>gtk_gesture_multi_press_new ()</h3>
<pre class="programlisting"><a class="link" href="GtkGesture.html" title="GtkGesture"><span class="returnvalue">GtkGesture</span></a> *
gtk_gesture_multi_press_new (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns a newly created <a class="link" href="GtkGesture.html" title="GtkGesture"><span class="type">GtkGesture</span></a> that recognizes single and multiple
presses.</p>
<div class="refsect3">
<a name="gtk-gesture-multi-press-new.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-gesture-multi-press-new.returns"></a><h4>Returns</h4>
<p> a newly created <a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-gesture-multi-press-set-area"></a><h3>gtk_gesture_multi_press_set_area ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_gesture_multi_press_set_area (<em class="parameter"><code><a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a> *gesture</code></em>,
<em class="parameter"><code>const <span class="type">GdkRectangle</span> *rect</code></em>);</pre>
<p>If <em class="parameter"><code>rect</code></em>
is non-<code class="literal">NULL</code>, the press area will be checked to be
confined within the rectangle, otherwise the button count
will be reset so the press is seen as being the first one.
If <em class="parameter"><code>rect</code></em>
is <code class="literal">NULL</code>, the area will be reset to an unrestricted
state.</p>
<p>Note: The rectangle is only used to determine whether any
non-first click falls within the expected area. This is not
akin to an input shape.</p>
<div class="refsect3">
<a name="gtk-gesture-multi-press-set-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>gesture</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>rect</p></td>
<td class="parameter_description"><p>rectangle to receive coordinates on. </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-3-14.html#api-index-3.14">3.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-gesture-multi-press-get-area"></a><h3>gtk_gesture_multi_press_get_area ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_gesture_multi_press_get_area (<em class="parameter"><code><a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a> *gesture</code></em>,
<em class="parameter"><code><span class="type">GdkRectangle</span> *rect</code></em>);</pre>
<p>If an area was set through <a class="link" href="GtkGestureMultiPress.html#gtk-gesture-multi-press-set-area" title="gtk_gesture_multi_press_set_area ()"><code class="function">gtk_gesture_multi_press_set_area()</code></a>,
this function will return <code class="literal">TRUE</code> and fill in <em class="parameter"><code>rect</code></em>
with the
press area. See <a class="link" href="GtkGestureMultiPress.html#gtk-gesture-multi-press-set-area" title="gtk_gesture_multi_press_set_area ()"><code class="function">gtk_gesture_multi_press_set_area()</code></a> for more
details on what the press area represents.</p>
<div class="refsect3">
<a name="gtk-gesture-multi-press-get-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>gesture</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>rect</p></td>
<td class="parameter_description"><p>return location for the press area. </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>
<div class="refsect3">
<a name="gtk-gesture-multi-press-get-area.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>rect</code></em>
was filled with the press area</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkGestureMultiPress-struct"></a><h3>GtkGestureMultiPress</h3>
<pre class="programlisting">typedef struct _GtkGestureMultiPress GtkGestureMultiPress;</pre>
</div>
</div>
<div class="refsect1">
<a name="GtkGestureMultiPress.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GtkGestureMultiPress-pressed"></a><h3>The <code class="literal">“pressed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a> *gesture,
<span class="type">int</span> n_press,
<span class="type">double</span> x,
<span class="type">double</span> y,
<span class="type">gpointer</span> user_data)</pre>
<p>This signal is emitted whenever a button or touch press happens.</p>
<div class="refsect3">
<a name="GtkGestureMultiPress-pressed.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>gesture</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_press</p></td>
<td class="parameter_description"><p>how many touch/button presses happened with this one</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>The X coordinate, in widget allocation coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>The Y coordinate, in widget allocation coordinates</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="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkGestureMultiPress-released"></a><h3>The <code class="literal">“released”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a> *gesture,
<span class="type">int</span> n_press,
<span class="type">double</span> x,
<span class="type">double</span> y,
<span class="type">gpointer</span> user_data)</pre>
<p>This signal is emitted when a button or touch is released. <em class="parameter"><code>n_press</code></em>
will report the number of press that is paired to this event, note
that <a class="link" href="GtkGestureMultiPress.html#GtkGestureMultiPress-stopped" title="The “stopped” signal"><span class="type">“stopped”</span></a> may have been emitted between the
press and its release, <em class="parameter"><code>n_press</code></em>
will only start over at the next press.</p>
<div class="refsect3">
<a name="GtkGestureMultiPress-released.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>gesture</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_press</p></td>
<td class="parameter_description"><p>number of press that is paired with this release</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>The X coordinate, in widget allocation coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>The Y coordinate, in widget allocation coordinates</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="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkGestureMultiPress-stopped"></a><h3>The <code class="literal">“stopped”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkGestureMultiPress.html" title="GtkGestureMultiPress"><span class="type">GtkGestureMultiPress</span></a> *gesture,
<span class="type">gpointer</span> user_data)</pre>
<p>This signal is emitted whenever any time/distance threshold has
been exceeded.</p>
<div class="refsect3">
<a name="GtkGestureMultiPress-stopped.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>gesture</p></td>
<td class="parameter_description"><p>the object which received the signal</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="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>