<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="GdkDevice">
<refmeta>
<refentrytitle role="top_of_page" id="GdkDevice.top_of_page">GdkDevice</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GDK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GdkDevice</refname>
<refpurpose>Object representing an input device</refpurpose>
</refnamediv>

<refsect1 id="GdkDevice.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-name">gdk_device_get_name</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-vendor-id">gdk_device_get_vendor_id</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-product-id">gdk_device_get_product_id</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkInputSource"><returnvalue>GdkInputSource</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-source">gdk_device_get_source</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkDisplay"><returnvalue>GdkDisplay</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-display">gdk_device_get_display</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-has-cursor">gdk_device_get_has_cursor</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkSeat"><returnvalue>GdkSeat</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-seat">gdk_device_get_seat</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-num-touches">gdk_device_get_num_touches</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkDeviceTool"><returnvalue>GdkDeviceTool</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-device-tool">gdk_device_get_device_tool</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-caps-lock-state">gdk_device_get_caps_lock_state</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoDirection"><returnvalue>PangoDirection</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-direction">gdk_device_get_direction</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkModifierType"><returnvalue>GdkModifierType</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-modifier-state">gdk_device_get_modifier_state</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-num-lock-state">gdk_device_get_num_lock_state</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-get-scroll-lock-state">gdk_device_get_scroll_lock_state</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-has-bidi-layouts">gdk_device_has_bidi_layouts</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

<row><entry role="function_type"><link linkend="GdkSurface"><returnvalue>GdkSurface</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-device-get-surface-at-position">gdk_device_get_surface_at_position</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

<row><entry role="function_type"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-tool-get-serial">gdk_device_tool_get_serial</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkDeviceToolType"><returnvalue>GdkDeviceToolType</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-tool-get-tool-type">gdk_device_tool_get_tool_type</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-tool-get-hardware-id">gdk_device_tool_get_hardware_id</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkAxisFlags"><returnvalue>GdkAxisFlags</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-device-tool-get-axes">gdk_device_tool_get_axes</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkDevice.properties" role="properties">
<title role="properties.title">Properties</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="300px"/>
<colspec colname="properties_flags" colwidth="200px"/>
<tbody>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkDevice--caps-lock-state">caps-lock-state</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="PangoDirection"><type>PangoDirection</type></link></entry><entry role="property_name"><link linkend="GdkDevice--direction">direction</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="GdkDisplay"><type>GdkDisplay</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkDevice--display">display</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkDevice--has-bidi-layouts">has-bidi-layouts</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkDevice--has-cursor">has-cursor</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="GdkModifierType"><type>GdkModifierType</type></link></entry><entry role="property_name"><link linkend="GdkDevice--modifier-state">modifier-state</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="guint"><type>guint</type></link></entry><entry role="property_name"><link linkend="GdkDevice--n-axes">n-axes</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="char"><type>char</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkDevice--name">name</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkDevice--num-lock-state">num-lock-state</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="guint"><type>guint</type></link></entry><entry role="property_name"><link linkend="GdkDevice--num-touches">num-touches</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="char"><type>char</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkDevice--product-id">product-id</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkDevice--scroll-lock-state">scroll-lock-state</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="GdkSeat"><type>GdkSeat</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkDevice--seat">seat</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GdkInputSource"><type>GdkInputSource</type></link></entry><entry role="property_name"><link linkend="GdkDevice--source">source</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkDevice--tool">tool</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="char"><type>char</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkDevice--vendor-id">vendor-id</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="GdkAxisFlags"><type>GdkAxisFlags</type></link></entry><entry role="property_name"><link linkend="GdkDeviceTool--axes">axes</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="guint64"><type>guint64</type></link></entry><entry role="property_name"><link linkend="GdkDeviceTool--hardware-id">hardware-id</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="guint64"><type>guint64</type></link></entry><entry role="property_name"><link linkend="GdkDeviceTool--serial">serial</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="GdkDeviceToolType"><type>GdkDeviceToolType</type></link></entry><entry role="property_name"><link linkend="GdkDeviceTool--tool-type">tool-type</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkDevice.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signal_proto_type" colwidth="150px"/>
<colspec colname="signal_proto_name" colwidth="300px"/>
<colspec colname="signal_proto_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GdkDevice-changed">changed</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GdkDevice-tool-changed">tool-changed</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="GdkDeviceTool"/><refsect1 id="GdkDevice.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GdkDevice-struct">GdkDevice</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkInputSource">GdkInputSource</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkAxisUse">GdkAxisUse</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkAxisFlags">GdkAxisFlags</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GdkDeviceTool-struct">GdkDeviceTool</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkDeviceToolType">GdkDeviceToolType</link></entry></row>


<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="GdkTimeCoord">GdkTimeCoord</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkDevice.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9500;&#9472;&#9472;</phrase> GdkDevice
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GdkDeviceTool
</screen>
</refsect1>
<refsect1 id="GdkDevice.derived-interfaces" role="derived_interfaces">
<title role="derived_interfaces.title">Known Derived Interfaces</title>
<para>
GdkDevice is required by
 <link linkend="GdkDevicePad">GdkDevicePad</link>.</para>

</refsect1>

<refsect1 id="GdkDevice.includes"><title>Includes</title><synopsis>#include &lt;gdk/gdk.h&gt;
</synopsis></refsect1>

<refsect1 id="GdkDevice.description" role="desc">
<title role="desc.title">Description</title>
<para>The <link linkend="GdkDevice"><type>GdkDevice</type></link> object represents a single input device, such
as a keyboard, a mouse, a touchpad, etc.</para>
<para>See the <link linkend="GdkSeat"><type>GdkSeat</type></link> documentation for more information about the
various kinds of devices, and their relationships.</para>

</refsect1>
<refsect1 id="GdkDevice.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gdk-device-get-name" role="function">
<title>gdk_device_get_name&#160;()</title>
<indexterm zone="gdk-device-get-name"><primary>gdk_device_get_name</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
gdk_device_get_name (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Determines the name of the device, suitable
for showing in a user interface.</para>
<refsect3 id="gdk-device-get-name.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-name.returns" role="returns">
<title>Returns</title>
<para> a name</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-vendor-id" role="function">
<title>gdk_device_get_vendor_id&#160;()</title>
<indexterm zone="gdk-device-get-vendor-id"><primary>gdk_device_get_vendor_id</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
gdk_device_get_vendor_id (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Returns the vendor ID of this device, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if this information couldn't
be obtained. This ID is retrieved from the device, and is thus constant for
it.</para>
<para>This function, together with <link linkend="gdk-device-get-product-id"><function>gdk_device_get_product_id()</function></link>, can be used to eg.
compose <link linkend="GSettings"><type>GSettings</type></link> paths to store settings for this device.</para>
<informalexample><programlisting role="example"><![CDATA[
 static GSettings *
 get_device_settings (GdkDevice *device)
 {
   const char *vendor, *product;
   GSettings *settings;
   GdkDevice *device;
   char *path;

   vendor = gdk_device_get_vendor_id (device);
   product = gdk_device_get_product_id (device);

   path = g_strdup_printf ("/org/example/app/devices/%s:%s/", vendor, product);
   settings = g_settings_new_with_path (DEVICE_SCHEMA, path);
   g_free (path);

   return settings;
 }
]]></programlisting></informalexample>
<para></para>
<refsect3 id="gdk-device-get-vendor-id.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a physical <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-vendor-id.returns" role="returns">
<title>Returns</title>
<para>the vendor ID, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-product-id" role="function">
<title>gdk_device_get_product_id&#160;()</title>
<indexterm zone="gdk-device-get-product-id"><primary>gdk_device_get_product_id</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
gdk_device_get_product_id (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Returns the product ID of this device, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if this information couldn't
be obtained. This ID is retrieved from the device, and is thus constant for
it. See <link linkend="gdk-device-get-vendor-id"><function>gdk_device_get_vendor_id()</function></link> for more information.</para>
<refsect3 id="gdk-device-get-product-id.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a physical <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-product-id.returns" role="returns">
<title>Returns</title>
<para>the product ID, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-source" role="function">
<title>gdk_device_get_source&#160;()</title>
<indexterm zone="gdk-device-get-source"><primary>gdk_device_get_source</primary></indexterm>
<programlisting language="C"><link linkend="GdkInputSource"><returnvalue>GdkInputSource</returnvalue></link>
gdk_device_get_source (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Determines the type of the device.</para>
<refsect3 id="gdk-device-get-source.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-source.returns" role="returns">
<title>Returns</title>
<para> a <link linkend="GdkInputSource"><type>GdkInputSource</type></link></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-display" role="function">
<title>gdk_device_get_display&#160;()</title>
<indexterm zone="gdk-device-get-display"><primary>gdk_device_get_display</primary></indexterm>
<programlisting language="C"><link linkend="GdkDisplay"><returnvalue>GdkDisplay</returnvalue></link>&#160;*
gdk_device_get_display (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Returns the <link linkend="GdkDisplay"><type>GdkDisplay</type></link> to which <parameter>device</parameter>
 pertains.</para>
<refsect3 id="gdk-device-get-display.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-display.returns" role="returns">
<title>Returns</title>
<para>a <link linkend="GdkDisplay"><type>GdkDisplay</type></link>. This memory is owned
by GTK, and must not be freed or unreffed. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-has-cursor" role="function">
<title>gdk_device_get_has_cursor&#160;()</title>
<indexterm zone="gdk-device-get-has-cursor"><primary>gdk_device_get_has_cursor</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_device_get_has_cursor (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Determines whether the pointer follows device motion.
This is not meaningful for keyboard devices, which
don't have a pointer.</para>
<refsect3 id="gdk-device-get-has-cursor.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-has-cursor.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the pointer follows device motion</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-seat" role="function">
<title>gdk_device_get_seat&#160;()</title>
<indexterm zone="gdk-device-get-seat"><primary>gdk_device_get_seat</primary></indexterm>
<programlisting language="C"><link linkend="GdkSeat"><returnvalue>GdkSeat</returnvalue></link>&#160;*
gdk_device_get_seat (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Returns the <link linkend="GdkSeat"><type>GdkSeat</type></link> the device belongs to.</para>
<refsect3 id="gdk-device-get-seat.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>A <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-seat.returns" role="returns">
<title>Returns</title>
<para>a <link linkend="GdkSeat"><type>GdkSeat</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-num-touches" role="function">
<title>gdk_device_get_num_touches&#160;()</title>
<indexterm zone="gdk-device-get-num-touches"><primary>gdk_device_get_num_touches</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
gdk_device_get_num_touches (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Retrieves the number of touch points associated to <parameter>device</parameter>
.</para>
<refsect3 id="gdk-device-get-num-touches.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-num-touches.returns" role="returns">
<title>Returns</title>
<para> the number of touch points</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-device-tool" role="function">
<title>gdk_device_get_device_tool&#160;()</title>
<indexterm zone="gdk-device-get-device-tool"><primary>gdk_device_get_device_tool</primary></indexterm>
<programlisting language="C"><link linkend="GdkDeviceTool"><returnvalue>GdkDeviceTool</returnvalue></link>&#160;*
gdk_device_get_device_tool (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Retrieves the <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> associated to <parameter>device</parameter>
.</para>
<refsect3 id="gdk-device-get-device-tool.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-device-tool.returns" role="returns">
<title>Returns</title>
<para>the <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-caps-lock-state" role="function">
<title>gdk_device_get_caps_lock_state&#160;()</title>
<indexterm zone="gdk-device-get-caps-lock-state"><primary>gdk_device_get_caps_lock_state</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_device_get_caps_lock_state (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Retrieves whether the Caps Lock modifier of the
keyboard is locked, if <parameter>device</parameter>
 is a keyboard device.</para>
<refsect3 id="gdk-device-get-caps-lock-state.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-caps-lock-state.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if Caps Lock is on for <parameter>device</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-direction" role="function">
<title>gdk_device_get_direction&#160;()</title>
<indexterm zone="gdk-device-get-direction"><primary>gdk_device_get_direction</primary></indexterm>
<programlisting language="C"><link linkend="PangoDirection"><returnvalue>PangoDirection</returnvalue></link>
gdk_device_get_direction (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Returns the direction of effective layout of the keyboard,
if <parameter>device</parameter>
 is a keyboard device.</para>
<para>The direction of a layout is the direction of the majority
of its symbols. See <link linkend="pango-unichar-direction"><function>pango_unichar_direction()</function></link>.</para>
<refsect3 id="gdk-device-get-direction.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-direction.returns" role="returns">
<title>Returns</title>
<para> <link linkend="PANGO-DIRECTION-LTR:CAPS"><literal>PANGO_DIRECTION_LTR</literal></link> or <link linkend="PANGO-DIRECTION-RTL:CAPS"><literal>PANGO_DIRECTION_RTL</literal></link>
if it can determine the direction. <link linkend="PANGO-DIRECTION-NEUTRAL:CAPS"><literal>PANGO_DIRECTION_NEUTRAL</literal></link>
otherwise</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-modifier-state" role="function">
<title>gdk_device_get_modifier_state&#160;()</title>
<indexterm zone="gdk-device-get-modifier-state"><primary>gdk_device_get_modifier_state</primary></indexterm>
<programlisting language="C"><link linkend="GdkModifierType"><returnvalue>GdkModifierType</returnvalue></link>
gdk_device_get_modifier_state (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Retrieves the current modifier state of the keyboard,
if <parameter>device</parameter>
 is a keyboard device.</para>
<refsect3 id="gdk-device-get-modifier-state.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-modifier-state.returns" role="returns">
<title>Returns</title>
<para> the current modifier state</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-num-lock-state" role="function">
<title>gdk_device_get_num_lock_state&#160;()</title>
<indexterm zone="gdk-device-get-num-lock-state"><primary>gdk_device_get_num_lock_state</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_device_get_num_lock_state (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Retrieves whether the Num Lock modifier of the
keyboard is locked, if <parameter>device</parameter>
 is a keyboard device.</para>
<refsect3 id="gdk-device-get-num-lock-state.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-num-lock-state.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if Num Lock is on for <parameter>device</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-scroll-lock-state" role="function">
<title>gdk_device_get_scroll_lock_state&#160;()</title>
<indexterm zone="gdk-device-get-scroll-lock-state"><primary>gdk_device_get_scroll_lock_state</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_device_get_scroll_lock_state (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Retrieves whether the Scroll Lock modifier of the
keyboard is locked, if <parameter>device</parameter>
 is a keyboard device.</para>
<refsect3 id="gdk-device-get-scroll-lock-state.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-scroll-lock-state.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if Scroll Lock is on for <parameter>device</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-has-bidi-layouts" role="function">
<title>gdk_device_has_bidi_layouts&#160;()</title>
<indexterm zone="gdk-device-has-bidi-layouts"><primary>gdk_device_has_bidi_layouts</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_device_has_bidi_layouts (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>);</programlisting>
<para>Determines if keyboard layouts for both right-to-left and
left-to-right languages are in use on the keyboard, if
<parameter>device</parameter>
 is a keyboard device.</para>
<refsect3 id="gdk-device-has-bidi-layouts.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDevice"><type>GdkDevice</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-has-bidi-layouts.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if there are layouts with both directions,
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-get-surface-at-position" role="function">
<title>gdk_device_get_surface_at_position&#160;()</title>
<indexterm zone="gdk-device-get-surface-at-position"><primary>gdk_device_get_surface_at_position</primary></indexterm>
<programlisting language="C"><link linkend="GdkSurface"><returnvalue>GdkSurface</returnvalue></link>&#160;*
gdk_device_get_surface_at_position (<parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>,
                                    <parameter><link linkend="double"><type>double</type></link> *win_x</parameter>,
                                    <parameter><link linkend="double"><type>double</type></link> *win_y</parameter>);</programlisting>
<para>Obtains the surface underneath <parameter>device</parameter>
, returning the location of the device in <parameter>win_x</parameter>
 and <parameter>win_y</parameter>
 in
double precision. Returns <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the surface tree under <parameter>device</parameter>
 is not known to GDK (for example,
belongs to another application).</para>
<refsect3 id="gdk-device-get-surface-at-position.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>pointer <link linkend="GdkDevice"><type>GdkDevice</type></link> to query info to.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>win_x</para></entry>
<entry role="parameter_description"><para>return location for the X coordinate of the device location,
relative to the surface origin, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>win_y</para></entry>
<entry role="parameter_description"><para>return location for the Y coordinate of the device location,
relative to the surface origin, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-get-surface-at-position.returns" role="returns">
<title>Returns</title>
<para>the <link linkend="GdkSurface"><type>GdkSurface</type></link> under the
device position, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>][<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-device-tool-get-serial" role="function">
<title>gdk_device_tool_get_serial&#160;()</title>
<indexterm zone="gdk-device-tool-get-serial"><primary>gdk_device_tool_get_serial</primary></indexterm>
<programlisting language="C"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
gdk_device_tool_get_serial (<parameter><link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> *tool</parameter>);</programlisting>
<para>Gets the serial of this tool, this value can be used to identify a
physical tool (eg. a tablet pen) across program executions.</para>
<refsect3 id="gdk-device-tool-get-serial.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>tool</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-tool-get-serial.returns" role="returns">
<title>Returns</title>
<para> The serial ID for this tool</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-tool-get-tool-type" role="function">
<title>gdk_device_tool_get_tool_type&#160;()</title>
<indexterm zone="gdk-device-tool-get-tool-type"><primary>gdk_device_tool_get_tool_type</primary></indexterm>
<programlisting language="C"><link linkend="GdkDeviceToolType"><returnvalue>GdkDeviceToolType</returnvalue></link>
gdk_device_tool_get_tool_type (<parameter><link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> *tool</parameter>);</programlisting>
<para>Gets the <link linkend="GdkDeviceToolType"><type>GdkDeviceToolType</type></link> of the tool.</para>
<refsect3 id="gdk-device-tool-get-tool-type.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>tool</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-tool-get-tool-type.returns" role="returns">
<title>Returns</title>
<para> The physical type for this tool. This can be used to figure out what
sort of pen is being used, such as an airbrush or a pencil.</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-tool-get-hardware-id" role="function">
<title>gdk_device_tool_get_hardware_id&#160;()</title>
<indexterm zone="gdk-device-tool-get-hardware-id"><primary>gdk_device_tool_get_hardware_id</primary></indexterm>
<programlisting language="C"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
gdk_device_tool_get_hardware_id (<parameter><link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> *tool</parameter>);</programlisting>
<para>Gets the hardware ID of this tool, or 0 if it's not known. When
non-zero, the identificator is unique for the given tool model,
meaning that two identical tools will share the same <parameter>hardware_id</parameter>
,
but will have different serial numbers (see <link linkend="gdk-device-tool-get-serial"><function>gdk_device_tool_get_serial()</function></link>).</para>
<para>This is a more concrete (and device specific) method to identify
a <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> than <link linkend="gdk-device-tool-get-tool-type"><function>gdk_device_tool_get_tool_type()</function></link>, as a tablet
may support multiple devices with the same <link linkend="GdkDeviceToolType"><type>GdkDeviceToolType</type></link>,
but having different hardware identificators.</para>
<refsect3 id="gdk-device-tool-get-hardware-id.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>tool</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-tool-get-hardware-id.returns" role="returns">
<title>Returns</title>
<para> The hardware identificator of this tool.</para>
</refsect3></refsect2>
<refsect2 id="gdk-device-tool-get-axes" role="function">
<title>gdk_device_tool_get_axes&#160;()</title>
<indexterm zone="gdk-device-tool-get-axes"><primary>gdk_device_tool_get_axes</primary></indexterm>
<programlisting language="C"><link linkend="GdkAxisFlags"><returnvalue>GdkAxisFlags</returnvalue></link>
gdk_device_tool_get_axes (<parameter><link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> *tool</parameter>);</programlisting>
<para>Gets the axes of the tool.</para>
<refsect3 id="gdk-device-tool-get-axes.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>tool</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-device-tool-get-axes.returns" role="returns">
<title>Returns</title>
<para> the axes of <parameter>tool</parameter>
</para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GdkDevice.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GdkDevice-struct" role="struct">
<title>GdkDevice</title>
<indexterm zone="GdkDevice-struct"><primary>GdkDevice</primary></indexterm>
<programlisting language="C">typedef struct _GdkDevice GdkDevice;</programlisting>
<para>The GdkDevice struct contains only private fields and
should not be accessed directly.</para>
</refsect2>
<refsect2 id="GdkInputSource" role="enum">
<title>enum GdkInputSource</title>
<indexterm zone="GdkInputSource"><primary>GdkInputSource</primary></indexterm>
<para>An enumeration describing the type of an input device in general terms.</para>
<refsect3 id="GdkInputSource.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-MOUSE:CAPS">GDK_SOURCE_MOUSE</para></entry>
<entry role="enum_member_description"><para>the device is a mouse. (This will be reported for the core
pointer, even if it is something else, such as a trackball.)</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-PEN:CAPS">GDK_SOURCE_PEN</para></entry>
<entry role="enum_member_description"><para>the device is a stylus of a graphics tablet or similar device.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-KEYBOARD:CAPS">GDK_SOURCE_KEYBOARD</para></entry>
<entry role="enum_member_description"><para>the device is a keyboard.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-TOUCHSCREEN:CAPS">GDK_SOURCE_TOUCHSCREEN</para></entry>
<entry role="enum_member_description"><para>the device is a direct-input touch device, such
as a touchscreen or tablet</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-TOUCHPAD:CAPS">GDK_SOURCE_TOUCHPAD</para></entry>
<entry role="enum_member_description"><para>the device is an indirect touch device, such
as a touchpad</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-TRACKPOINT:CAPS">GDK_SOURCE_TRACKPOINT</para></entry>
<entry role="enum_member_description"><para>the device is a trackpoint</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SOURCE-TABLET-PAD:CAPS">GDK_SOURCE_TABLET_PAD</para></entry>
<entry role="enum_member_description"><para>the device is a "pad", a collection of buttons,
rings and strips found in drawing tablets</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GdkAxisUse" role="enum">
<title>enum GdkAxisUse</title>
<indexterm zone="GdkAxisUse"><primary>GdkAxisUse</primary></indexterm>
<para>An enumeration describing the way in which a device
axis (valuator) maps onto the predefined valuator
types that GTK understands.</para>
<para>Note that the X and Y axes are not really needed; pointer devices
report their location via the x/y members of events regardless. Whether
X and Y are present as axes depends on the GDK backend.</para>
<refsect3 id="GdkAxisUse.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-IGNORE:CAPS">GDK_AXIS_IGNORE</para></entry>
<entry role="enum_member_description"><para>the axis is ignored.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-X:CAPS">GDK_AXIS_X</para></entry>
<entry role="enum_member_description"><para>the axis is used as the x axis.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-Y:CAPS">GDK_AXIS_Y</para></entry>
<entry role="enum_member_description"><para>the axis is used as the y axis.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-DELTA-X:CAPS">GDK_AXIS_DELTA_X</para></entry>
<entry role="enum_member_description"><para>the axis is used as the scroll x delta</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-DELTA-Y:CAPS">GDK_AXIS_DELTA_Y</para></entry>
<entry role="enum_member_description"><para>the axis is used as the scroll y delta</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-PRESSURE:CAPS">GDK_AXIS_PRESSURE</para></entry>
<entry role="enum_member_description"><para>the axis is used for pressure information.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-XTILT:CAPS">GDK_AXIS_XTILT</para></entry>
<entry role="enum_member_description"><para>the axis is used for x tilt information.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-YTILT:CAPS">GDK_AXIS_YTILT</para></entry>
<entry role="enum_member_description"><para>the axis is used for y tilt information.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-WHEEL:CAPS">GDK_AXIS_WHEEL</para></entry>
<entry role="enum_member_description"><para>the axis is used for wheel information.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-DISTANCE:CAPS">GDK_AXIS_DISTANCE</para></entry>
<entry role="enum_member_description"><para>the axis is used for pen/tablet distance information</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-ROTATION:CAPS">GDK_AXIS_ROTATION</para></entry>
<entry role="enum_member_description"><para>the axis is used for pen rotation information</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-SLIDER:CAPS">GDK_AXIS_SLIDER</para></entry>
<entry role="enum_member_description"><para>the axis is used for pen slider information</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-LAST:CAPS">GDK_AXIS_LAST</para></entry>
<entry role="enum_member_description"><para>a constant equal to the numerically highest axis value.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GdkAxisFlags" role="enum">
<title>enum GdkAxisFlags</title>
<indexterm zone="GdkAxisFlags"><primary>GdkAxisFlags</primary></indexterm>
<para>Flags describing the current capabilities of a device/tool.</para>
<refsect3 id="GdkAxisFlags.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-X:CAPS">GDK_AXIS_FLAG_X</para></entry>
<entry role="enum_member_description"><para>X axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-Y:CAPS">GDK_AXIS_FLAG_Y</para></entry>
<entry role="enum_member_description"><para>Y axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-DELTA-X:CAPS">GDK_AXIS_FLAG_DELTA_X</para></entry>
<entry role="enum_member_description"><para>Scroll X delta axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-DELTA-Y:CAPS">GDK_AXIS_FLAG_DELTA_Y</para></entry>
<entry role="enum_member_description"><para>Scroll Y delta axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-PRESSURE:CAPS">GDK_AXIS_FLAG_PRESSURE</para></entry>
<entry role="enum_member_description"><para>Pressure axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-XTILT:CAPS">GDK_AXIS_FLAG_XTILT</para></entry>
<entry role="enum_member_description"><para>X tilt axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-YTILT:CAPS">GDK_AXIS_FLAG_YTILT</para></entry>
<entry role="enum_member_description"><para>Y tilt axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-WHEEL:CAPS">GDK_AXIS_FLAG_WHEEL</para></entry>
<entry role="enum_member_description"><para>Wheel axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-DISTANCE:CAPS">GDK_AXIS_FLAG_DISTANCE</para></entry>
<entry role="enum_member_description"><para>Distance axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-ROTATION:CAPS">GDK_AXIS_FLAG_ROTATION</para></entry>
<entry role="enum_member_description"><para>Z-axis rotation is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-AXIS-FLAG-SLIDER:CAPS">GDK_AXIS_FLAG_SLIDER</para></entry>
<entry role="enum_member_description"><para>Slider axis is present</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GdkDeviceTool-struct" role="struct">
<title>GdkDeviceTool</title>
<indexterm zone="GdkDeviceTool-struct"><primary>GdkDeviceTool</primary></indexterm>
<programlisting language="C">typedef struct _GdkDeviceTool GdkDeviceTool;</programlisting>
</refsect2>
<refsect2 id="GdkDeviceToolType" role="enum">
<title>enum GdkDeviceToolType</title>
<indexterm zone="GdkDeviceToolType"><primary>GdkDeviceToolType</primary></indexterm>
<para>Indicates the specific type of tool being used being a tablet. Such as an
airbrush, pencil, etc.</para>
<refsect3 id="GdkDeviceToolType.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-UNKNOWN:CAPS">GDK_DEVICE_TOOL_TYPE_UNKNOWN</para></entry>
<entry role="enum_member_description"><para>Tool is of an unknown type.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-PEN:CAPS">GDK_DEVICE_TOOL_TYPE_PEN</para></entry>
<entry role="enum_member_description"><para>Tool is a standard tablet stylus.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-ERASER:CAPS">GDK_DEVICE_TOOL_TYPE_ERASER</para></entry>
<entry role="enum_member_description"><para>Tool is standard tablet eraser.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-BRUSH:CAPS">GDK_DEVICE_TOOL_TYPE_BRUSH</para></entry>
<entry role="enum_member_description"><para>Tool is a brush stylus.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-PENCIL:CAPS">GDK_DEVICE_TOOL_TYPE_PENCIL</para></entry>
<entry role="enum_member_description"><para>Tool is a pencil stylus.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-AIRBRUSH:CAPS">GDK_DEVICE_TOOL_TYPE_AIRBRUSH</para></entry>
<entry role="enum_member_description"><para>Tool is an airbrush stylus.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-MOUSE:CAPS">GDK_DEVICE_TOOL_TYPE_MOUSE</para></entry>
<entry role="enum_member_description"><para>Tool is a mouse.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-DEVICE-TOOL-TYPE-LENS:CAPS">GDK_DEVICE_TOOL_TYPE_LENS</para></entry>
<entry role="enum_member_description"><para>Tool is a lens cursor.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GdkTimeCoord" role="struct">
<title>struct GdkTimeCoord</title>
<indexterm zone="GdkTimeCoord"><primary>GdkTimeCoord</primary></indexterm>
<programlisting language="C">struct GdkTimeCoord {
  guint32 time;
  GdkAxisFlags flags;
  double axes[GDK_AXIS_LAST];
};
</programlisting>
<para>A <link linkend="GdkTimeCoord"><type>GdkTimeCoord</type></link> stores a single event in a motion history.</para>
<refsect3 id="GdkTimeCoord.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint32"><type>guint32</type></link>&#160;<structfield id="GdkTimeCoord.time">time</structfield>;</para></entry>
<entry role="struct_member_description"><para>The timestamp for this event.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="GdkAxisFlags"><type>GdkAxisFlags</type></link>&#160;<structfield id="GdkTimeCoord.flags">flags</structfield>;</para></entry>
<entry role="struct_member_description"><para>Flags indicating what axes are present</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="double"><type>double</type></link>&#160;<structfield id="GdkTimeCoord.axes">axes</structfield>[GDK_AXIS_LAST];</para></entry>
<entry role="struct_member_description"><para>axis values</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>

</refsect1>
<refsect1 id="GdkDevice.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GdkDevice--caps-lock-state" role="property"><title>The <literal>“caps-lock-state”</literal> property</title>
<indexterm zone="GdkDevice--caps-lock-state"><primary>GdkDevice:caps-lock-state</primary></indexterm>
<programlisting>  “caps-lock-state”          <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the keyboard caps lock is on.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkDevice--direction" role="property"><title>The <literal>“direction”</literal> property</title>
<indexterm zone="GdkDevice--direction"><primary>GdkDevice:direction</primary></indexterm>
<programlisting>  “direction”                <link linkend="PangoDirection"><type>PangoDirection</type></link></programlisting>
<para>The direction of the current layout of the keyboard.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
<para>Default value: PANGO_DIRECTION_NEUTRAL</para>
</refsect2>
<refsect2 id="GdkDevice--display" role="property"><title>The <literal>“display”</literal> property</title>
<indexterm zone="GdkDevice--display"><primary>GdkDevice:display</primary></indexterm>
<programlisting>  “display”                  <link linkend="GdkDisplay"><type>GdkDisplay</type></link>&#160;*</programlisting>
<para>The <link linkend="GdkDisplay"><type>GdkDisplay</type></link> the <link linkend="GdkDevice"><type>GdkDevice</type></link> pertains to.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
</refsect2>
<refsect2 id="GdkDevice--has-bidi-layouts" role="property"><title>The <literal>“has-bidi-layouts”</literal> property</title>
<indexterm zone="GdkDevice--has-bidi-layouts"><primary>GdkDevice:has-bidi-layouts</primary></indexterm>
<programlisting>  “has-bidi-layouts”         <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the keyboard has bidi layouts.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkDevice--has-cursor" role="property"><title>The <literal>“has-cursor”</literal> property</title>
<indexterm zone="GdkDevice--has-cursor"><primary>GdkDevice:has-cursor</primary></indexterm>
<programlisting>  “has-cursor”               <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the device is represented by a cursor on the screen.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkDevice--modifier-state" role="property"><title>The <literal>“modifier-state”</literal> property</title>
<indexterm zone="GdkDevice--modifier-state"><primary>GdkDevice:modifier-state</primary></indexterm>
<programlisting>  “modifier-state”           <link linkend="GdkModifierType"><type>GdkModifierType</type></link></programlisting>
<para>The modifier state of the keyboard.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
</refsect2>
<refsect2 id="GdkDevice--n-axes" role="property"><title>The <literal>“n-axes”</literal> property</title>
<indexterm zone="GdkDevice--n-axes"><primary>GdkDevice:n-axes</primary></indexterm>
<programlisting>  “n-axes”                   <link linkend="guint"><type>guint</type></link></programlisting>
<para>Number of axes in the device.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GdkDevice--name" role="property"><title>The <literal>“name”</literal> property</title>
<indexterm zone="GdkDevice--name"><primary>GdkDevice:name</primary></indexterm>
<programlisting>  “name”                     <link linkend="char"><type>char</type></link>&#160;*</programlisting>
<para>The device name.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: NULL</para>
</refsect2>
<refsect2 id="GdkDevice--num-lock-state" role="property"><title>The <literal>“num-lock-state”</literal> property</title>
<indexterm zone="GdkDevice--num-lock-state"><primary>GdkDevice:num-lock-state</primary></indexterm>
<programlisting>  “num-lock-state”           <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the keyboard num lock is on.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkDevice--num-touches" role="property"><title>The <literal>“num-touches”</literal> property</title>
<indexterm zone="GdkDevice--num-touches"><primary>GdkDevice:num-touches</primary></indexterm>
<programlisting>  “num-touches”              <link linkend="guint"><type>guint</type></link></programlisting>
<para>The maximal number of concurrent touches on a touch device.
Will be 0 if the device is not a touch device or if the number
of touches is unknown.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GdkDevice--product-id" role="property"><title>The <literal>“product-id”</literal> property</title>
<indexterm zone="GdkDevice--product-id"><primary>GdkDevice:product-id</primary></indexterm>
<programlisting>  “product-id”               <link linkend="char"><type>char</type></link>&#160;*</programlisting>
<para>Product ID of this device, see <link linkend="gdk-device-get-product-id"><function>gdk_device_get_product_id()</function></link>.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: NULL</para>
</refsect2>
<refsect2 id="GdkDevice--scroll-lock-state" role="property"><title>The <literal>“scroll-lock-state”</literal> property</title>
<indexterm zone="GdkDevice--scroll-lock-state"><primary>GdkDevice:scroll-lock-state</primary></indexterm>
<programlisting>  “scroll-lock-state”        <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the keyboard scroll lock is on.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkDevice--seat" role="property"><title>The <literal>“seat”</literal> property</title>
<indexterm zone="GdkDevice--seat"><primary>GdkDevice:seat</primary></indexterm>
<programlisting>  “seat”                     <link linkend="GdkSeat"><type>GdkSeat</type></link>&#160;*</programlisting>
<para><link linkend="GdkSeat"><type>GdkSeat</type></link> of this device.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write</para>
</refsect2>
<refsect2 id="GdkDevice--source" role="property"><title>The <literal>“source”</literal> property</title>
<indexterm zone="GdkDevice--source"><primary>GdkDevice:source</primary></indexterm>
<programlisting>  “source”                   <link linkend="GdkInputSource"><type>GdkInputSource</type></link></programlisting>
<para>Source type for the device.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: GDK_SOURCE_MOUSE</para>
</refsect2>
<refsect2 id="GdkDevice--tool" role="property"><title>The <literal>“tool”</literal> property</title>
<indexterm zone="GdkDevice--tool"><primary>GdkDevice:tool</primary></indexterm>
<programlisting>  “tool”                     <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link>&#160;*</programlisting>
<para>The tool that is currently used with this device.</para><para>Owner: GdkDevice</para>
<para>Flags: Read</para>
</refsect2>
<refsect2 id="GdkDevice--vendor-id" role="property"><title>The <literal>“vendor-id”</literal> property</title>
<indexterm zone="GdkDevice--vendor-id"><primary>GdkDevice:vendor-id</primary></indexterm>
<programlisting>  “vendor-id”                <link linkend="char"><type>char</type></link>&#160;*</programlisting>
<para>Vendor ID of this device, see <link linkend="gdk-device-get-vendor-id"><function>gdk_device_get_vendor_id()</function></link>.</para>
<para>Owner: GdkDevice</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: NULL</para>
</refsect2>
<refsect2 id="GdkDeviceTool--axes" role="property"><title>The <literal>“axes”</literal> property</title>
<indexterm zone="GdkDeviceTool--axes"><primary>GdkDeviceTool:axes</primary></indexterm>
<programlisting>  “axes”                     <link linkend="GdkAxisFlags"><type>GdkAxisFlags</type></link></programlisting>
<para>Tool axes.</para><para>Owner: GdkDeviceTool</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
</refsect2>
<refsect2 id="GdkDeviceTool--hardware-id" role="property"><title>The <literal>“hardware-id”</literal> property</title>
<indexterm zone="GdkDeviceTool--hardware-id"><primary>GdkDeviceTool:hardware-id</primary></indexterm>
<programlisting>  “hardware-id”              <link linkend="guint64"><type>guint64</type></link></programlisting>
<para>Hardware ID.</para><para>Owner: GdkDeviceTool</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GdkDeviceTool--serial" role="property"><title>The <literal>“serial”</literal> property</title>
<indexterm zone="GdkDeviceTool--serial"><primary>GdkDeviceTool:serial</primary></indexterm>
<programlisting>  “serial”                   <link linkend="guint64"><type>guint64</type></link></programlisting>
<para>Serial number.</para><para>Owner: GdkDeviceTool</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GdkDeviceTool--tool-type" role="property"><title>The <literal>“tool-type”</literal> property</title>
<indexterm zone="GdkDeviceTool--tool-type"><primary>GdkDeviceTool:tool-type</primary></indexterm>
<programlisting>  “tool-type”                <link linkend="GdkDeviceToolType"><type>GdkDeviceToolType</type></link></programlisting>
<para>Tool type.</para><para>Owner: GdkDeviceTool</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: GDK_DEVICE_TOOL_TYPE_UNKNOWN</para>
</refsect2>

</refsect1>
<refsect1 id="GdkDevice.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="GdkDevice-changed" role="signal"><title>The <literal>“changed”</literal> signal</title>
<indexterm zone="GdkDevice-changed"><primary>GdkDevice::changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GdkDevice"><type>GdkDevice</type></link> *device,
               <link linkend="gpointer"><type>gpointer</type></link>   user_data)</programlisting>
<para>The ::changed signal is emitted either when the <link linkend="GdkDevice"><type>GdkDevice</type></link>
has changed the number of either axes or keys. For example
on X11 this will normally happen when the physical device
routing events through the logical device changes (for
example, user switches from the USB mouse to a tablet); in
that case the logical device will change to reflect the axes
and keys on the new physical device.</para>
<refsect3 id="GdkDevice-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkDevice"><type>GdkDevice</type></link> that changed.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2><refsect2 id="GdkDevice-tool-changed" role="signal"><title>The <literal>“tool-changed”</literal> signal</title>
<indexterm zone="GdkDevice-tool-changed"><primary>GdkDevice::tool-changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GdkDevice"><type>GdkDevice</type></link>     *device,
               <link linkend="GdkDeviceTool"><type>GdkDeviceTool</type></link> *tool,
               <link linkend="gpointer"><type>gpointer</type></link>       user_data)</programlisting>
<para>The ::tool-changed signal is emitted on pen/eraser
<link linkend="GdkDevices"><type>GdkDevices</type></link> whenever tools enter or leave proximity.</para>
<refsect3 id="GdkDevice-tool-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkDevice"><type>GdkDevice</type></link> that changed.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>tool</para></entry>
<entry role="parameter_description"><para>The new current tool</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2>
</refsect1>
<refsect1 id="GdkDevice.see-also">
<title>See Also</title>
<para><link linkend="GdkSeat"><type>GdkSeat</type></link></para>

</refsect1>

</refentry>
