<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ClutterInputDevice: Clutter Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Clutter Reference Manual">
<link rel="up" href="ch10.html" title="General purpose API">
<link rel="prev" href="clutter-Base-geometric-types.html" title="Base geometric types">
<link rel="next" href="clutter-General.html" title="General">
<meta name="generator" content="GTK-Doc V1.23.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="#ClutterInputDevice.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#ClutterInputDevice.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#ClutterInputDevice.properties" class="shortcut">Properties</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="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="clutter-Base-geometric-types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="clutter-General.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ClutterInputDevice"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ClutterInputDevice.top_of_page"></a>ClutterInputDevice</span></h2>
<p>ClutterInputDevice — An input device managed by Clutter</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ClutterInputDevice.functions"></a><h2>Functions</h2>
<div class="informaltable"><table 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">gint</span>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-device-id" title="clutter_input_device_get_device_id ()">clutter_input_device_get_device_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterInputDevice.html#ClutterInputDeviceType" title="enum ClutterInputDeviceType"><span class="returnvalue">ClutterInputDeviceType</span></a>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-device-type" title="clutter_input_device_get_device_type ()">clutter_input_device_get_device_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-device-name" title="clutter_input_device_get_device_name ()">clutter_input_device_get_device_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterInputDevice.html#ClutterInputMode" title="enum ClutterInputMode"><span class="returnvalue">ClutterInputMode</span></a>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-device-mode" title="clutter_input_device_get_device_mode ()">clutter_input_device_get_device_mode</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="ClutterInputDevice.html#clutter-input-device-get-has-cursor" title="clutter_input_device_get_has_cursor ()">clutter_input_device_get_has_cursor</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="ClutterInputDevice.html#clutter-input-device-set-enabled" title="clutter_input_device_set_enabled ()">clutter_input_device_set_enabled</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="ClutterInputDevice.html#clutter-input-device-get-enabled" title="clutter_input_device_get_enabled ()">clutter_input_device_get_enabled</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="returnvalue">ClutterInputDevice</span></a> *
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-associated-device" title="clutter_input_device_get_associated_device ()">clutter_input_device_get_associated_device</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GList</span> *
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-slave-devices" title="clutter_input_device_get_slave_devices ()">clutter_input_device_get_slave_devices</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="clutter-Events.html#ClutterModifierType" title="enum ClutterModifierType"><span class="returnvalue">ClutterModifierType</span></a>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-modifier-state" title="clutter_input_device_get_modifier_state ()">clutter_input_device_get_modifier_state</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="ClutterInputDevice.html#clutter-input-device-keycode-to-evdev" title="clutter_input_device_keycode_to_evdev ()">clutter_input_device_keycode_to_evdev</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-vendor-id" title="clutter_input_device_get_vendor_id ()">clutter_input_device_get_vendor_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-product-id" title="clutter_input_device_get_product_id ()">clutter_input_device_get_product_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guint</span>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-n-keys" title="clutter_input_device_get_n_keys ()">clutter_input_device_get_n_keys</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="ClutterInputDevice.html#clutter-input-device-set-key" title="clutter_input_device_set_key ()">clutter_input_device_set_key</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="ClutterInputDevice.html#clutter-input-device-get-key" title="clutter_input_device_get_key ()">clutter_input_device_get_key</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guint</span>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-n-axes" title="clutter_input_device_get_n_axes ()">clutter_input_device_get_n_axes</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterInputDevice.html#ClutterInputAxis" title="enum ClutterInputAxis"><span class="returnvalue">ClutterInputAxis</span></a>
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-axis" title="clutter_input_device_get_axis ()">clutter_input_device_get_axis</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="ClutterInputDevice.html#clutter-input-device-get-axis-value" title="clutter_input_device_get_axis_value ()">clutter_input_device_get_axis_value</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="ClutterInputDevice.html#clutter-input-device-get-coords" title="clutter_input_device_get_coords ()">clutter_input_device_get_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="ClutterInputDevice.html#clutter-input-device-get-device-coords" title="clutter_input_device_get_device_coords ()">clutter_input_device_get_device_coords</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="ClutterInputDevice.html#clutter-input-device-get-pointer-actor" title="clutter_input_device_get_pointer_actor ()">clutter_input_device_get_pointer_actor</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ClutterStage.html" title="ClutterStage"><span class="returnvalue">ClutterStage</span></a> *
</td>
<td class="function_name">
<a class="link" href="ClutterInputDevice.html#clutter-input-device-get-pointer-stage" title="clutter_input_device_get_pointer_stage ()">clutter_input_device_get_pointer_stage</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="ClutterInputDevice.html#clutter-input-device-grab" title="clutter_input_device_grab ()">clutter_input_device_grab</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="ClutterInputDevice.html#clutter-input-device-ungrab" title="clutter_input_device_ungrab ()">clutter_input_device_ungrab</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="ClutterInputDevice.html#clutter-input-device-get-grabbed-actor" title="clutter_input_device_get_grabbed_actor ()">clutter_input_device_get_grabbed_actor</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="ClutterInputDevice.html#clutter-input-device-sequence-grab" title="clutter_input_device_sequence_grab ()">clutter_input_device_sequence_grab</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="ClutterInputDevice.html#clutter-input-device-sequence-ungrab" title="clutter_input_device_sequence_ungrab ()">clutter_input_device_sequence_ungrab</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="ClutterInputDevice.html#clutter-input-device-sequence-get-grabbed-actor" title="clutter_input_device_sequence_get_grabbed_actor ()">clutter_input_device_sequence_get_grabbed_actor</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="ClutterInputDevice.html#clutter-input-device-update-from-event" title="clutter_input_device_update_from_event ()">clutter_input_device_update_from_event</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.properties"></a><h2>Properties</h2>
<div class="informaltable"><table 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="ClutterBackend.html" title="ClutterBackend"><span class="type">ClutterBackend</span></a> *</td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--backend" title="The “backend” property">backend</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="ClutterDeviceManager.html" title="ClutterDeviceManager"><span class="type">ClutterDeviceManager</span></a> *</td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--device-manager" title="The “device-manager” property">device-manager</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><a class="link" href="ClutterInputDevice.html#ClutterInputMode" title="enum ClutterInputMode"><span class="type">ClutterInputMode</span></a></td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--device-mode" title="The “device-mode” property">device-mode</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><a class="link" href="ClutterInputDevice.html#ClutterInputDeviceType" title="enum ClutterInputDeviceType"><span class="type">ClutterInputDeviceType</span></a></td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--device-type" title="The “device-type” property">device-type</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--enabled" title="The “enabled” property">enabled</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="ClutterInputDevice.html#ClutterInputDevice--has-cursor" title="The “has-cursor” property">has-cursor</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--id" title="The “id” property">id</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">guint</span></td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--n-axes" title="The “n-axes” property">n-axes</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<span class="type">gchar</span> *</td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--name" title="The “name” property">name</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<span class="type">gchar</span> *</td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--product-id" title="The “product-id” property">product-id</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<span class="type">gchar</span> *</td>
<td class="property_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice--vendor-id" title="The “vendor-id” property">vendor-id</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table 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="ClutterInputDevice.html#ClutterInputDeviceType" title="enum ClutterInputDeviceType">ClutterInputDeviceType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="ClutterInputDevice.html#ClutterInputAxis" title="enum ClutterInputAxis">ClutterInputAxis</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="ClutterInputDevice.html#ClutterInputMode" title="enum ClutterInputMode">ClutterInputMode</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="ClutterInputDevice.html#ClutterInputDevice-struct" title="ClutterInputDevice">ClutterInputDevice</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> ClutterInputDevice
</pre>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.description"></a><h2>Description</h2>
<p><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> represents an input device known to Clutter.</p>
<p>The <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> class holds the state of the device, but
its contents are usually defined by the Clutter backend in use.</p>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="clutter-input-device-get-device-id"></a><h3>clutter_input_device_get_device_id ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
clutter_input_device_get_device_id (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the unique identifier of <em class="parameter"><code>device</code></em>
</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.2.6"></a><h4>Returns</h4>
<p> the identifier of the device</p>
</div>
<p class="since">Since: <a class="link" href="ix07.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-device-type"></a><h3>clutter_input_device_get_device_type ()</h3>
<pre class="programlisting"><a class="link" href="ClutterInputDevice.html#ClutterInputDeviceType" title="enum ClutterInputDeviceType"><span class="returnvalue">ClutterInputDeviceType</span></a>
clutter_input_device_get_device_type (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the type of <em class="parameter"><code>device</code></em>
</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.3.6"></a><h4>Returns</h4>
<p> the type of the device</p>
</div>
<p class="since">Since: <a class="link" href="ix07.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-device-name"></a><h3>clutter_input_device_get_device_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
clutter_input_device_get_device_name (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the name of the <em class="parameter"><code>device</code></em>
</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.4.6"></a><h4>Returns</h4>
<p> the name of the device, or <code class="literal">NULL</code>. The returned string
is owned by the <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> and should never be modified
or freed</p>
</div>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-device-mode"></a><h3>clutter_input_device_get_device_mode ()</h3>
<pre class="programlisting"><a class="link" href="ClutterInputDevice.html#ClutterInputMode" title="enum ClutterInputMode"><span class="returnvalue">ClutterInputMode</span></a>
clutter_input_device_get_device_mode (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the <a class="link" href="ClutterInputDevice.html#ClutterInputMode" title="enum ClutterInputMode"><span class="type">ClutterInputMode</span></a> of <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.5.6"></a><h4>Returns</h4>
<p> the device mode</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-has-cursor"></a><h3>clutter_input_device_get_has_cursor ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_input_device_get_has_cursor (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves whether <em class="parameter"><code>device</code></em>
 has a pointer that follows the
device motion.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.6.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.6.6"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the device has a cursor</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-set-enabled"></a><h3>clutter_input_device_set_enabled ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_set_enabled (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                  <em class="parameter"><code><span class="type">gboolean</span> enabled</code></em>);</pre>
<p>Enables or disables a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a>.</p>
<p>Only devices with a <a class="link" href="ClutterInputDevice.html#ClutterInputDevice--device-mode" title="The “device-mode” property"><span class="type">“device-mode”</span></a> property set
to <a class="link" href="ClutterInputDevice.html#CLUTTER-INPUT-MODE-SLAVE:CAPS"><code class="literal">CLUTTER_INPUT_MODE_SLAVE</code></a> or <a class="link" href="ClutterInputDevice.html#CLUTTER-INPUT-MODE-FLOATING:CAPS"><code class="literal">CLUTTER_INPUT_MODE_FLOATING</code></a> can
be disabled.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.7.6"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>enabled</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to enable the <em class="parameter"><code>device</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-enabled"></a><h3>clutter_input_device_get_enabled ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_input_device_get_enabled (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves whether <em class="parameter"><code>device</code></em>
 is enabled.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.8.6"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the device is enabled</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-associated-device"></a><h3>clutter_input_device_get_associated_device ()</h3>
<pre class="programlisting"><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="returnvalue">ClutterInputDevice</span></a> *
clutter_input_device_get_associated_device
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves a pointer to the <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> that has been
associated to <em class="parameter"><code>device</code></em>
.</p>
<p>If the <a class="link" href="ClutterInputDevice.html#ClutterInputDevice--device-mode" title="The “device-mode” property"><span class="type">“device-mode”</span></a> property of <em class="parameter"><code>device</code></em>
 is
set to <a class="link" href="ClutterInputDevice.html#CLUTTER-INPUT-MODE-MASTER:CAPS"><code class="literal">CLUTTER_INPUT_MODE_MASTER</code></a>, this function will return
<code class="literal">NULL</code>.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.9.6"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.9.7"></a><h4>Returns</h4>
<p> a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a>, or <code class="literal">NULL</code>. </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="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-slave-devices"></a><h3>clutter_input_device_get_slave_devices ()</h3>
<pre class="programlisting"><span class="returnvalue">GList</span> *
clutter_input_device_get_slave_devices
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the slave devices attached to <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.10.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.10.6"></a><h4>Returns</h4>
<p> a
list of <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a>, or <code class="literal">NULL</code>. The contents of the list are
owned by the device. Use <code class="function">g_list_free()</code> when done. </p>
<p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Clutter.InputDevice]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-modifier-state"></a><h3>clutter_input_device_get_modifier_state ()</h3>
<pre class="programlisting"><a class="link" href="clutter-Events.html#ClutterModifierType" title="enum ClutterModifierType"><span class="returnvalue">ClutterModifierType</span></a>
clutter_input_device_get_modifier_state
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the current modifiers state of the device, as seen
by the last event Clutter processed.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.11.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.11.6"></a><h4>Returns</h4>
<p> the last known modifier state</p>
</div>
<p class="since">Since: <a class="link" href="ix15.html#api-index-1.16">1.16</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-keycode-to-evdev"></a><h3>clutter_input_device_keycode_to_evdev ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_input_device_keycode_to_evdev (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                       <em class="parameter"><code><span class="type">guint</span> hardware_keycode</code></em>,
                                       <em class="parameter"><code><span class="type">guint</span> *evdev_keycode</code></em>);</pre>
<p>Translates a hardware keycode from a <a class="link" href="clutter-Events.html#ClutterKeyEvent" title="struct ClutterKeyEvent"><span class="type">ClutterKeyEvent</span></a> to the
equivalent evdev keycode. Note that depending on the input backend
used by Clutter this function can fail if there is no obvious
mapping between the key codes. The hardware keycode can be taken
from the <a class="link" href="clutter-Events.html#ClutterKeyEvent.hardware-keycode"><span class="type">ClutterKeyEvent.hardware_keycode</span></a> member of <a class="link" href="clutter-Events.html#ClutterKeyEvent" title="struct ClutterKeyEvent"><span class="type">ClutterKeyEvent</span></a>.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.12.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>A <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>hardware_keycode</p></td>
<td class="parameter_description"><p>The hardware keycode from a <a class="link" href="clutter-Events.html#ClutterKeyEvent" title="struct ClutterKeyEvent"><span class="type">ClutterKeyEvent</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>evdev_keycode</p></td>
<td class="parameter_description"><p>The return location for the evdev keycode</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.12.6"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the conversion succeeded, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: <a class="link" href="ix12.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-vendor-id"></a><h3>clutter_input_device_get_vendor_id ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
clutter_input_device_get_vendor_id (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Gets the vendor ID of this device.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.13.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a slave <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.13.6"></a><h4>Returns</h4>
<p> the vendor ID</p>
</div>
<p class="since">Since: <a class="link" href="ix18.html#api-index-1.22">1.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-product-id"></a><h3>clutter_input_device_get_product_id ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
clutter_input_device_get_product_id (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Gets the product ID of this device.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.14.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a slave <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.14.6"></a><h4>Returns</h4>
<p> the product ID</p>
</div>
<p class="since">Since: <a class="link" href="ix18.html#api-index-1.22">1.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-n-keys"></a><h3>clutter_input_device_get_n_keys ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span>
clutter_input_device_get_n_keys (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the number of keys registered for <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.15.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.15.6"></a><h4>Returns</h4>
<p> the number of registered keys</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-set-key"></a><h3>clutter_input_device_set_key ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_set_key (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                              <em class="parameter"><code><span class="type">guint</span> index_</code></em>,
                              <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
                              <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterModifierType" title="enum ClutterModifierType"><span class="type">ClutterModifierType</span></a> modifiers</code></em>);</pre>
<p>Sets the keyval and modifiers at the given <em class="parameter"><code>index_</code></em>
 for <em class="parameter"><code>device</code></em>
.</p>
<p>Clutter will use the keyval and modifiers set when filling out
an event coming from the same input device.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.16.6"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>index_</p></td>
<td class="parameter_description"><p>the index of the key</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keyval</p></td>
<td class="parameter_description"><p>the keyval</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>modifiers</p></td>
<td class="parameter_description"><p>a bitmask of modifiers</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-key"></a><h3>clutter_input_device_get_key ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_input_device_get_key (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                              <em class="parameter"><code><span class="type">guint</span> index_</code></em>,
                              <em class="parameter"><code><span class="type">guint</span> *keyval</code></em>,
                              <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterModifierType" title="enum ClutterModifierType"><span class="type">ClutterModifierType</span></a> *modifiers</code></em>);</pre>
<p>Retrieves the key set using <a class="link" href="ClutterInputDevice.html#clutter-input-device-set-key" title="clutter_input_device_set_key ()"><code class="function">clutter_input_device_set_key()</code></a></p>
<div class="refsect3">
<a name="id-1.7.2.8.8.17.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>index_</p></td>
<td class="parameter_description"><p>the index of the key</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keyval</p></td>
<td class="parameter_description"><p> return location for the keyval at <em class="parameter"><code>index_</code></em>
. </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>modifiers</p></td>
<td class="parameter_description"><p> return location for the modifiers at <em class="parameter"><code>index_</code></em>
. </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="id-1.7.2.8.8.17.6"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if a key was set at the given index</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-n-axes"></a><h3>clutter_input_device_get_n_axes ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span>
clutter_input_device_get_n_axes (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the number of axes available on <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.18.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.18.6"></a><h4>Returns</h4>
<p> the number of axes on the device</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-axis"></a><h3>clutter_input_device_get_axis ()</h3>
<pre class="programlisting"><a class="link" href="ClutterInputDevice.html#ClutterInputAxis" title="enum ClutterInputAxis"><span class="returnvalue">ClutterInputAxis</span></a>
clutter_input_device_get_axis (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                               <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
<p>Retrieves the type of axis on <em class="parameter"><code>device</code></em>
 at the given index.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.19.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>index_</p></td>
<td class="parameter_description"><p>the index of the axis</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.19.6"></a><h4>Returns</h4>
<p> the axis type</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-axis-value"></a><h3>clutter_input_device_get_axis_value ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_input_device_get_axis_value (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                     <em class="parameter"><code><span class="type">gdouble</span> *axes</code></em>,
                                     <em class="parameter"><code><a class="link" href="ClutterInputDevice.html#ClutterInputAxis" title="enum ClutterInputAxis"><span class="type">ClutterInputAxis</span></a> axis</code></em>,
                                     <em class="parameter"><code><span class="type">gdouble</span> *value</code></em>);</pre>
<p>Extracts the value of the given <em class="parameter"><code>axis</code></em>
 of a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> from
an array of axis values.</p>
<p>An example of typical usage for this function is:</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</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterInputDevice</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">device </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="clutter-Events.html#clutter-event-get-device">clutter_event_get_device</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">event</span><span class="symbol">);</span>
<span class="usertype">gdouble</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">axes </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="clutter-Events.html#clutter-event-get-axes">clutter_event_get_axes</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">event</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">);</span>
<span class="usertype">gdouble</span><span class="normal"> pressure_value </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>

<span class="function"><a href="ClutterInputDevice.html#clutter-input-device-get-axis-value">clutter_input_device_get_axis_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">device</span><span class="symbol">,</span><span class="normal"> axes</span><span class="symbol">,</span>
<span class="normal">                                     <a href="ClutterInputDevice.html#CLUTTER-INPUT-AXIS-PRESSURE:CAPS">CLUTTER_INPUT_AXIS_PRESSURE</a></span><span class="symbol">,</span>
<span class="normal">                                     </span><span class="symbol">&amp;</span><span class="normal">pressure_value</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="id-1.7.2.8.8.20.8"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>axes</p></td>
<td class="parameter_description"><p> an array of axes values, typically
coming from <a class="link" href="clutter-Events.html#clutter-event-get-axes" title="clutter_event_get_axes ()"><code class="function">clutter_event_get_axes()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>axis</p></td>
<td class="parameter_description"><p>the axis to extract</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p> return location for the axis value. </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="id-1.7.2.8.8.20.9"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the value was set, and <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-coords"></a><h3>clutter_input_device_get_coords ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
clutter_input_device_get_coords (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                 <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a> *sequence</code></em>,
                                 <em class="parameter"><code><a class="link" href="clutter-Base-geometric-types.html#ClutterPoint" title="struct ClutterPoint"><span class="type">ClutterPoint</span></a> *point</code></em>);</pre>
<p>Retrieves the latest coordinates of a pointer or touch point of
<em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.21.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sequence</p></td>
<td class="parameter_description"><p> a <a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a>, or <code class="literal">NULL</code> if
the device is not touch-based. </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>point</p></td>
<td class="parameter_description"><p> return location for the pointer
or touch point. </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="id-1.7.2.8.8.21.6"></a><h4>Returns</h4>
<p> <code class="literal">FALSE</code> if the device's sequence hasn't been found,
and <code class="literal">TRUE</code> otherwise.</p>
</div>
<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="clutter-input-device-get-device-coords"></a><h3>clutter_input_device_get_device_coords ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_get_device_coords
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *x</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *y</code></em>);</pre>
<div class="warning">
<p><code class="literal">clutter_input_device_get_device_coords</code> has been deprecated since version 1.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="ClutterInputDevice.html#clutter-input-device-get-coords" title="clutter_input_device_get_coords ()"><code class="function">clutter_input_device_get_coords()</code></a> instead.</p>
</div>
<p>Retrieves the latest coordinates of the pointer of <em class="parameter"><code>device</code></em>
</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.22.7"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> of type <a class="link" href="ClutterInputDevice.html#CLUTTER-POINTER-DEVICE:CAPS"><code class="literal">CLUTTER_POINTER_DEVICE</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p> return location for the 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>y</p></td>
<td class="parameter_description"><p> return location for the 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="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-pointer-actor"></a><h3>clutter_input_device_get_pointer_actor ()</h3>
<pre class="programlisting"><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *
clutter_input_device_get_pointer_actor
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> underneath the pointer of <em class="parameter"><code>device</code></em>
</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.23.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> of type <a class="link" href="ClutterInputDevice.html#CLUTTER-POINTER-DEVICE:CAPS"><code class="literal">CLUTTER_POINTER_DEVICE</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.23.6"></a><h4>Returns</h4>
<p> a pointer to the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> or <code class="literal">NULL</code>. </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="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-pointer-stage"></a><h3>clutter_input_device_get_pointer_stage ()</h3>
<pre class="programlisting"><a class="link" href="ClutterStage.html" title="ClutterStage"><span class="returnvalue">ClutterStage</span></a> *
clutter_input_device_get_pointer_stage
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves the <a class="link" href="ClutterStage.html" title="ClutterStage"><span class="type">ClutterStage</span></a> underneath the pointer of <em class="parameter"><code>device</code></em>
</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.24.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> of type <a class="link" href="ClutterInputDevice.html#CLUTTER-POINTER-DEVICE:CAPS"><code class="literal">CLUTTER_POINTER_DEVICE</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.24.6"></a><h4>Returns</h4>
<p> a pointer to the <a class="link" href="ClutterStage.html" title="ClutterStage"><span class="type">ClutterStage</span></a> or <code class="literal">NULL</code>. </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="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-grab"></a><h3>clutter_input_device_grab ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_grab (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                           <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>);</pre>
<p>Acquires a grab on <em class="parameter"><code>actor</code></em>
 for the given <em class="parameter"><code>device</code></em>
.</p>
<p>Any event coming from <em class="parameter"><code>device</code></em>
 will be delivered to <em class="parameter"><code>actor</code></em>
, bypassing
the usual event delivery mechanism, until the grab is released by
calling <a class="link" href="ClutterInputDevice.html#clutter-input-device-ungrab" title="clutter_input_device_ungrab ()"><code class="function">clutter_input_device_ungrab()</code></a>.</p>
<p>The grab is client-side: even if the windowing system used by the Clutter
backend has the concept of "device grabs", Clutter will not use them.</p>
<p>Only <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> of types <a class="link" href="ClutterInputDevice.html#CLUTTER-POINTER-DEVICE:CAPS"><code class="literal">CLUTTER_POINTER_DEVICE</code></a> and
<a class="link" href="ClutterInputDevice.html#CLUTTER-KEYBOARD-DEVICE:CAPS"><code class="literal">CLUTTER_KEYBOARD_DEVICE</code></a> can hold a grab.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.25.8"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actor</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix12.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-ungrab"></a><h3>clutter_input_device_ungrab ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_ungrab (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Releases the grab on the <em class="parameter"><code>device</code></em>
, if one is in place.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.26.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix12.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-get-grabbed-actor"></a><h3>clutter_input_device_get_grabbed_actor ()</h3>
<pre class="programlisting"><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *
clutter_input_device_get_grabbed_actor
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>);</pre>
<p>Retrieves a pointer to the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> currently grabbing all
the events coming from <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.27.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.27.6"></a><h4>Returns</h4>
<p> a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>, or <code class="literal">NULL</code>. </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="ix12.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-sequence-grab"></a><h3>clutter_input_device_sequence_grab ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_sequence_grab (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                    <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a> *sequence</code></em>,
                                    <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>);</pre>
<p>Acquires a grab on <em class="parameter"><code>actor</code></em>
 for the given <em class="parameter"><code>device</code></em>
 and the given touch
<em class="parameter"><code>sequence</code></em>
.</p>
<p>Any touch event coming from <em class="parameter"><code>device</code></em>
 and from <em class="parameter"><code>sequence</code></em>
 will be
delivered to <em class="parameter"><code>actor</code></em>
, bypassing the usual event delivery mechanism,
until the grab is released by calling
<a class="link" href="ClutterInputDevice.html#clutter-input-device-sequence-ungrab" title="clutter_input_device_sequence_ungrab ()"><code class="function">clutter_input_device_sequence_ungrab()</code></a>.</p>
<p>The grab is client-side: even if the windowing system used by the Clutter
backend has the concept of "device grabs", Clutter will not use them.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.28.7"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sequence</p></td>
<td class="parameter_description"><p>a <a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>actor</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<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="clutter-input-device-sequence-ungrab"></a><h3>clutter_input_device_sequence_ungrab ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_sequence_ungrab (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                      <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a> *sequence</code></em>);</pre>
<p>Releases the grab on the <em class="parameter"><code>device</code></em>
 for the given <em class="parameter"><code>sequence</code></em>
, if one is
in place.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.29.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sequence</p></td>
<td class="parameter_description"><p>a <a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<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="clutter-input-device-sequence-get-grabbed-actor"></a><h3>clutter_input_device_sequence_get_grabbed_actor ()</h3>
<pre class="programlisting"><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *
clutter_input_device_sequence_get_grabbed_actor
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a> *sequence</code></em>);</pre>
<p>Retrieves a pointer to the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> currently grabbing the
touch events coming from <em class="parameter"><code>device</code></em>
 given the <em class="parameter"><code>sequence</code></em>
.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.30.5"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sequence</p></td>
<td class="parameter_description"><p>a <a class="link" href="clutter-Events.html#ClutterEventSequence" title="ClutterEventSequence"><span class="type">ClutterEventSequence</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.7.2.8.8.30.6"></a><h4>Returns</h4>
<p> a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>, or <code class="literal">NULL</code>. </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="ix13.html#api-index-1.12">1.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-input-device-update-from-event"></a><h3>clutter_input_device_update_from_event ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
clutter_input_device_update_from_event
                               (<em class="parameter"><code><a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a> *device</code></em>,
                                <em class="parameter"><code><a class="link" href="clutter-Events.html#ClutterEvent" title="ClutterEvent"><span class="type">ClutterEvent</span></a> *event</code></em>,
                                <em class="parameter"><code><span class="type">gboolean</span> update_stage</code></em>);</pre>
<p>Forcibly updates the state of the <em class="parameter"><code>device</code></em>
 using a <a class="link" href="clutter-Events.html#ClutterEvent" title="ClutterEvent"><span class="type">ClutterEvent</span></a></p>
<p>This function should never be used by applications: it is meant
for integration with embedding toolkits, like clutter-gtk</p>
<p>Embedding toolkits that disable the event collection inside Clutter
need to use this function to update the state of input devices depending
on a <a class="link" href="clutter-Events.html#ClutterEvent" title="ClutterEvent"><span class="type">ClutterEvent</span></a> that they are going to submit to the event handling code
in Clutter though <a class="link" href="clutter-General.html#clutter-do-event" title="clutter_do_event ()"><code class="function">clutter_do_event()</code></a>. Since the input devices hold the state
that is going to be used to fill in fields like the <a class="link" href="clutter-Events.html#ClutterButtonEvent" title="struct ClutterButtonEvent"><span class="type">ClutterButtonEvent</span></a>
click count, or to emit synthesized events like <a class="link" href="clutter-Events.html#CLUTTER-ENTER:CAPS"><code class="literal">CLUTTER_ENTER</code></a> and
<a class="link" href="clutter-Events.html#CLUTTER-LEAVE:CAPS"><code class="literal">CLUTTER_LEAVE</code></a>, it is necessary for embedding toolkits to also be
responsible of updating the input device state.</p>
<p>For instance, this might be the code to translate an embedding toolkit
native motion notification into a Clutter <a class="link" href="clutter-Events.html#ClutterMotionEvent" title="struct ClutterMotionEvent"><span class="type">ClutterMotionEvent</span></a> and ask
Clutter to process it:</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</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterEvent</span><span class="normal"> c_event</span><span class="symbol">;</span>

<span class="function">translate_native_event_to_clutter</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">native_event</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">c_event</span><span class="symbol">);</span>

<span class="function"><a href="clutter-General.html#clutter-do-event">clutter_do_event</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">c_event</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>Before letting <a class="link" href="clutter-General.html#clutter-do-event" title="clutter_do_event ()"><code class="function">clutter_do_event()</code></a> process the event, it is necessary to call
<a class="link" href="ClutterInputDevice.html#clutter-input-device-update-from-event" title="clutter_input_device_update_from_event ()"><code class="function">clutter_input_device_update_from_event()</code></a>:</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="usertype">ClutterEvent</span><span class="normal"> c_event</span><span class="symbol">;</span>
<span class="usertype">ClutterDeviceManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">;</span>
<span class="usertype">ClutterInputDevice</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">device</span><span class="symbol">;</span>

<span class="function">translate_native_event_to_clutter</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">native_event</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">c_event</span><span class="symbol">);</span>

<span class="comment">// get the device manager</span>
<span class="normal">manager </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterDeviceManager.html#clutter-device-manager-get-default">clutter_device_manager_get_default</a></span><span class="normal"> </span><span class="symbol">();</span>

<span class="comment">// use the default Core Pointer that Clutter backends register by default</span>
<span class="normal">device </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterDeviceManager.html#clutter-device-manager-get-core-device">clutter_device_manager_get_core_device</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">%</span><span class="normal"><a href="ClutterInputDevice.html#CLUTTER-POINTER-DEVICE:CAPS">CLUTTER_POINTER_DEVICE</a></span><span class="symbol">);</span>

<span class="comment">// update the state of the input device</span>
<span class="function"><a href="ClutterInputDevice.html#clutter-input-device-update-from-event">clutter_input_device_update_from_event</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">device</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">c_event</span><span class="symbol">,</span><span class="normal"> FALSE</span><span class="symbol">);</span>

<span class="function"><a href="clutter-General.html#clutter-do-event">clutter_do_event</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">c_event</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>The <em class="parameter"><code>update_stage</code></em>
 boolean argument should be used when the input device
enters and leaves a <a class="link" href="ClutterStage.html" title="ClutterStage"><span class="type">ClutterStage</span></a>; it will use the <a class="link" href="ClutterStage.html" title="ClutterStage"><span class="type">ClutterStage</span></a> field
of the passed <em class="parameter"><code>event</code></em>
 to update the stage associated to the input device.</p>
<div class="refsect3">
<a name="id-1.7.2.8.8.31.14"></a><h4>Parameters</h4>
<div class="informaltable"><table 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>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a <a class="link" href="clutter-Events.html#ClutterEvent" title="ClutterEvent"><span class="type">ClutterEvent</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>update_stage</p></td>
<td class="parameter_description"><p>whether to update the <a class="link" href="ClutterStage.html" title="ClutterStage"><span class="type">ClutterStage</span></a> of the <em class="parameter"><code>device</code></em>
using the stage of the event</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.2">1.2</a></p>
</div>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="ClutterInputDeviceType"></a><h3>enum ClutterInputDeviceType</h3>
<p>The types of input devices available.</p>
<p>The <a class="link" href="ClutterInputDevice.html#ClutterInputDeviceType" title="enum ClutterInputDeviceType"><span class="type">ClutterInputDeviceType</span></a> enumeration can be extended at later
date; not every platform supports every input device type.</p>
<div class="refsect3">
<a name="id-1.7.2.8.9.2.5"></a><h4>Members</h4>
<div class="informaltable"><table 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-POINTER-DEVICE:CAPS"></a>CLUTTER_POINTER_DEVICE</p></td>
<td class="enum_member_description">
<p>A pointer device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-KEYBOARD-DEVICE:CAPS"></a>CLUTTER_KEYBOARD_DEVICE</p></td>
<td class="enum_member_description">
<p>A keyboard device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-EXTENSION-DEVICE:CAPS"></a>CLUTTER_EXTENSION_DEVICE</p></td>
<td class="enum_member_description">
<p>A generic extension device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-JOYSTICK-DEVICE:CAPS"></a>CLUTTER_JOYSTICK_DEVICE</p></td>
<td class="enum_member_description">
<p>A joystick device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-TABLET-DEVICE:CAPS"></a>CLUTTER_TABLET_DEVICE</p></td>
<td class="enum_member_description">
<p>A tablet device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-TOUCHPAD-DEVICE:CAPS"></a>CLUTTER_TOUCHPAD_DEVICE</p></td>
<td class="enum_member_description">
<p>A touchpad device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-TOUCHSCREEN-DEVICE:CAPS"></a>CLUTTER_TOUCHSCREEN_DEVICE</p></td>
<td class="enum_member_description">
<p>A touch screen device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-PEN-DEVICE:CAPS"></a>CLUTTER_PEN_DEVICE</p></td>
<td class="enum_member_description">
<p>A pen device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-ERASER-DEVICE:CAPS"></a>CLUTTER_ERASER_DEVICE</p></td>
<td class="enum_member_description">
<p>An eraser device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-CURSOR-DEVICE:CAPS"></a>CLUTTER_CURSOR_DEVICE</p></td>
<td class="enum_member_description">
<p>A cursor device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-N-DEVICE-TYPES:CAPS"></a>CLUTTER_N_DEVICE_TYPES</p></td>
<td class="enum_member_description">
<p>The number of device types</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix07.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputAxis"></a><h3>enum ClutterInputAxis</h3>
<p>The type of axes Clutter recognizes on a <a class="link" href="ClutterInputDevice.html" title="ClutterInputDevice"><span class="type">ClutterInputDevice</span></a></p>
<div class="refsect3">
<a name="id-1.7.2.8.9.3.4"></a><h4>Members</h4>
<div class="informaltable"><table 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-INPUT-AXIS-IGNORE:CAPS"></a>CLUTTER_INPUT_AXIS_IGNORE</p></td>
<td class="enum_member_description">
<p>Unused axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-X:CAPS"></a>CLUTTER_INPUT_AXIS_X</p></td>
<td class="enum_member_description">
<p>The position on the X axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-Y:CAPS"></a>CLUTTER_INPUT_AXIS_Y</p></td>
<td class="enum_member_description">
<p>The position of the Y axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-PRESSURE:CAPS"></a>CLUTTER_INPUT_AXIS_PRESSURE</p></td>
<td class="enum_member_description">
<p>The pressure information</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-XTILT:CAPS"></a>CLUTTER_INPUT_AXIS_XTILT</p></td>
<td class="enum_member_description">
<p>The tilt on the X axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-YTILT:CAPS"></a>CLUTTER_INPUT_AXIS_YTILT</p></td>
<td class="enum_member_description">
<p>The tile on the Y axis</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-WHEEL:CAPS"></a>CLUTTER_INPUT_AXIS_WHEEL</p></td>
<td class="enum_member_description">
<p>A wheel</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-DISTANCE:CAPS"></a>CLUTTER_INPUT_AXIS_DISTANCE</p></td>
<td class="enum_member_description">
<p>Distance (Since 1.12)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-AXIS-LAST:CAPS"></a>CLUTTER_INPUT_AXIS_LAST</p></td>
<td class="enum_member_description">
<p>Last value of the enumeration; this value is
  useful when iterating over the enumeration values (Since 1.12)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputMode"></a><h3>enum ClutterInputMode</h3>
<p>The mode for input devices available.</p>
<div class="refsect3">
<a name="id-1.7.2.8.9.4.4"></a><h4>Members</h4>
<div class="informaltable"><table 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-INPUT-MODE-MASTER:CAPS"></a>CLUTTER_INPUT_MODE_MASTER</p></td>
<td class="enum_member_description">
<p>A master, virtual device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-MODE-SLAVE:CAPS"></a>CLUTTER_INPUT_MODE_SLAVE</p></td>
<td class="enum_member_description">
<p>A slave, physical device, attached to
  a master device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="CLUTTER-INPUT-MODE-FLOATING:CAPS"></a>CLUTTER_INPUT_MODE_FLOATING</p></td>
<td class="enum_member_description">
<p>A slave, physical device, not attached
  to a master device</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice-struct"></a><h3>ClutterInputDevice</h3>
<pre class="programlisting">typedef struct _ClutterInputDevice ClutterInputDevice;</pre>
<p>Generic representation of an input device. The actual contents of this
structure depend on the backend used.</p>
</div>
</div>
<div class="refsect1">
<a name="ClutterInputDevice.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="ClutterInputDevice--backend"></a><h3>The <code class="literal">“backend”</code> property</h3>
<pre class="programlisting">  “backend”                  <a class="link" href="ClutterBackend.html" title="ClutterBackend"><span class="type">ClutterBackend</span></a> *</pre>
<p>The <a class="link" href="ClutterBackend.html" title="ClutterBackend"><span class="type">ClutterBackend</span></a> that created the device.</p>
<p>Flags: Read / Write / Construct Only</p>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--device-manager"></a><h3>The <code class="literal">“device-manager”</code> property</h3>
<pre class="programlisting">  “device-manager”           <a class="link" href="ClutterDeviceManager.html" title="ClutterDeviceManager"><span class="type">ClutterDeviceManager</span></a> *</pre>
<p>The <a class="link" href="ClutterDeviceManager.html" title="ClutterDeviceManager"><span class="type">ClutterDeviceManager</span></a> instance which owns the device</p>
<p>Flags: Read / Write / Construct Only</p>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--device-mode"></a><h3>The <code class="literal">“device-mode”</code> property</h3>
<pre class="programlisting">  “device-mode”              <a class="link" href="ClutterInputDevice.html#ClutterInputMode" title="enum ClutterInputMode"><span class="type">ClutterInputMode</span></a></pre>
<p>The mode of the device.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: CLUTTER_INPUT_MODE_FLOATING</p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--device-type"></a><h3>The <code class="literal">“device-type”</code> property</h3>
<pre class="programlisting">  “device-type”              <a class="link" href="ClutterInputDevice.html#ClutterInputDeviceType" title="enum ClutterInputDeviceType"><span class="type">ClutterInputDeviceType</span></a></pre>
<p>The type of the device</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: CLUTTER_POINTER_DEVICE</p>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--enabled"></a><h3>The <code class="literal">“enabled”</code> property</h3>
<pre class="programlisting">  “enabled”                  <span class="type">gboolean</span></pre>
<p>Whether the device is enabled.</p>
<p>A device with the <a class="link" href="ClutterInputDevice.html#ClutterInputDevice--device-mode" title="The “device-mode” property"><span class="type">“device-mode”</span></a> property set
to <a class="link" href="ClutterInputDevice.html#CLUTTER-INPUT-MODE-MASTER:CAPS"><code class="literal">CLUTTER_INPUT_MODE_MASTER</code></a> cannot be disabled.</p>
<p>A device must be enabled in order to receive events from it.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--has-cursor"></a><h3>The <code class="literal">“has-cursor”</code> property</h3>
<pre class="programlisting">  “has-cursor”               <span class="type">gboolean</span></pre>
<p>Whether the device has an on screen cursor following its movement.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--id"></a><h3>The <code class="literal">“id”</code> property</h3>
<pre class="programlisting">  “id”                       <span class="type">gint</span></pre>
<p>The unique identifier of the device</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Allowed values: &gt;= -1</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--n-axes"></a><h3>The <code class="literal">“n-axes”</code> property</h3>
<pre class="programlisting">  “n-axes”                   <span class="type">guint</span></pre>
<p>The number of axes of the device.</p>
<p>Flags: Read</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--name"></a><h3>The <code class="literal">“name”</code> property</h3>
<pre class="programlisting">  “name”                     <span class="type">gchar</span> *</pre>
<p>The name of the device</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: NULL</p>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--product-id"></a><h3>The <code class="literal">“product-id”</code> property</h3>
<pre class="programlisting">  “product-id”               <span class="type">gchar</span> *</pre>
<p>Product ID of this device.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: NULL</p>
<p class="since">Since: <a class="link" href="ix18.html#api-index-1.22">1.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterInputDevice--vendor-id"></a><h3>The <code class="literal">“vendor-id”</code> property</h3>
<pre class="programlisting">  “vendor-id”                <span class="type">gchar</span> *</pre>
<p>Vendor ID of this device.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: NULL</p>
<p class="since">Since: <a class="link" href="ix18.html#api-index-1.22">1.22</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.23.1</div>
</body>
</html>