<?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="gdk4-Cursors">
<refmeta>
<refentrytitle role="top_of_page" id="gdk4-Cursors.top_of_page">Cursors</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GDK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Cursors</refname>
<refpurpose>Named and texture cursors</refpurpose>
</refnamediv>

<refsect1 id="gdk4-Cursors.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"><link linkend="GdkCursor"><returnvalue>GdkCursor</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-cursor-new-from-texture">gdk_cursor_new_from_texture</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkCursor"><returnvalue>GdkCursor</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-cursor-new-from-name">gdk_cursor_new_from_name</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkCursor"><returnvalue>GdkCursor</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-cursor-get-fallback">gdk_cursor_get_fallback</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-cursor-get-name">gdk_cursor_get_name</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkTexture"><returnvalue>GdkTexture</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gdk-cursor-get-texture">gdk_cursor_get_texture</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="int"><returnvalue>int</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-cursor-get-hotspot-x">gdk_cursor_get_hotspot_x</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="int"><returnvalue>int</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-cursor-get-hotspot-y">gdk_cursor_get_hotspot_y</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="gdk4-Cursors.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="GdkCursor"><type>GdkCursor</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkCursor--fallback">fallback</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="int"><type>int</type></link></entry><entry role="property_name"><link linkend="GdkCursor--hotspot-x">hotspot-x</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="int"><type>int</type></link></entry><entry role="property_name"><link linkend="GdkCursor--hotspot-y">hotspot-y</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="GdkCursor--name">name</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="GdkTexture"><type>GdkTexture</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkCursor--texture">texture</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="GdkCursor"/><refsect1 id="gdk4-Cursors.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="GdkCursor-struct">GdkCursor</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="gdk4-Cursors.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GdkCursor
</screen>
</refsect1>

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

<refsect1 id="gdk4-Cursors.description" role="desc">
<title role="desc.title">Description</title>
<para>These functions are used to create and destroy cursors. Cursors
are immutable objects, so once you created them, there is no way
to modify them later. Create a new cursor, when you want to change
something about it.</para>
<para>Cursors by themselves are not very interesting, they must be
bound to a window for users to see them. This is done with
<link linkend="gdk-surface-set-cursor"><function>gdk_surface_set_cursor()</function></link> or <link linkend="gdk-surface-set-device-cursor"><function>gdk_surface_set_device_cursor()</function></link>.
Applications will typically use higher-level GTK+ functions such
as <link linkend="gtk-widget-set-cursor"><function>gtk_widget_set_cursor()</function></link> instead.</para>
<para>Cursors are not bound to a given <link linkend="GdkDisplay"><type>GdkDisplay</type></link>, so they can be shared.
However, the appearance of cursors may vary when used on different
platforms.</para>
<para>There are multiple ways to create cursors. The platform's own cursors
can be created with <link linkend="gdk-cursor-new-from-name"><function>gdk_cursor_new_from_name()</function></link>. That function lists
the commonly available names that are shared with the CSS specification.
Other names may be available, depending on the platform in use.
Another option to create a cursor is to use <link linkend="gdk-cursor-new-from-texture"><function>gdk_cursor_new_from_texture()</function></link>
and provide an image to use for the cursor.</para>
<para>To ease work with unsupported cursors, a fallback cursor can be provided.
If a <link linkend="GdkSurface"><type>GdkSurface</type></link> cannot use a cursor because of the reasons mentioned above,
it will try the fallback cursor. Of course, fallback cursors can themselves
have fallback cursors again, so it is possible to provide a chain of
progressively easier to support cursors. If none of the provided cursors
can be supported, the default cursor will be the ultimate fallback.</para>

</refsect1>
<refsect1 id="gdk4-Cursors.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gdk-cursor-new-from-texture" role="function">
<title>gdk_cursor_new_from_texture&#160;()</title>
<indexterm zone="gdk-cursor-new-from-texture"><primary>gdk_cursor_new_from_texture</primary></indexterm>
<programlisting language="C"><link linkend="GdkCursor"><returnvalue>GdkCursor</returnvalue></link>&#160;*
gdk_cursor_new_from_texture (<parameter><link linkend="GdkTexture"><type>GdkTexture</type></link> *texture</parameter>,
                             <parameter><link linkend="int"><type>int</type></link> hotspot_x</parameter>,
                             <parameter><link linkend="int"><type>int</type></link> hotspot_y</parameter>,
                             <parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *fallback</parameter>);</programlisting>
<para>Creates a new cursor from a <link linkend="GdkTexture"><type>GdkTexture</type></link>.</para>
<refsect3 id="gdk-cursor-new-from-texture.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>texture</para></entry>
<entry role="parameter_description"><para>the texture providing the pixel data</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hotspot_x</para></entry>
<entry role="parameter_description"><para>the horizontal offset of the “hotspot” of the cursor</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hotspot_y</para></entry>
<entry role="parameter_description"><para>the vertical offset of the “hotspot” of the cursor</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>fallback</para></entry>
<entry role="parameter_description"><para><link linkend="NULL:CAPS"><literal>NULL</literal></link> or the <link linkend="GdkCursor"><type>GdkCursor</type></link> to fall back to when
this one cannot be supported. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-new-from-texture.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GdkCursor"><type>GdkCursor</type></link>.</para>
</refsect3></refsect2>
<refsect2 id="gdk-cursor-new-from-name" role="function">
<title>gdk_cursor_new_from_name&#160;()</title>
<indexterm zone="gdk-cursor-new-from-name"><primary>gdk_cursor_new_from_name</primary></indexterm>
<programlisting language="C"><link linkend="GdkCursor"><returnvalue>GdkCursor</returnvalue></link>&#160;*
gdk_cursor_new_from_name (<parameter>const <link linkend="char"><type>char</type></link> *name</parameter>,
                          <parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *fallback</parameter>);</programlisting>
<para>Creates a new cursor by looking up <parameter>name</parameter>
 in the current cursor
theme.</para>
<para>A recommended set of cursor names that will work across different
platforms can be found in the CSS specification:</para>
<itemizedlist>
<listitem><para>"none"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="default_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "default"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="help_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "help"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="pointer_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "pointer"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="context_menu_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "context-menu"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="progress_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "progress"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="wait_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "wait"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="cell_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "cell"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="crosshair_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "crosshair"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="text_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "text"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="vertical_text_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "vertical-text"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="alias_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "alias"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="copy_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "copy"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="no_drop_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "no-drop"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="move_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "move"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="not_allowed_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "not-allowed"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="grab_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "grab"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="grabbing_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "grabbing"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="all_scroll_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "all-scroll"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="col_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "col-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="row_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "row-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="n_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "n-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="e_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "e-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="s_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "s-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="w_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "w-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="ne_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "ne-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="nw_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "nw-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="sw_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "sw-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="se_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "se-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="ew_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "ew-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="ns_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "ns-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="nesw_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "nesw-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="nwse_resize_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "nwse-resize"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="zoom_in_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "zoom-in"</para></listitem>
<listitem><para><inlinemediaobject><imageobject><imagedata fileref="zoom_out_cursor.png"></imagedata></imageobject><textobject><phrase></phrase></textobject></inlinemediaobject> "zoom-out"</para></listitem>
</itemizedlist>
<refsect3 id="gdk-cursor-new-from-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>fallback</para></entry>
<entry role="parameter_description"><para><link linkend="NULL:CAPS"><literal>NULL</literal></link> or the <link linkend="GdkCursor"><type>GdkCursor</type></link> to fall back to when
this one cannot be supported. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>name</para></entry>
<entry role="parameter_description"><para>the name of the cursor</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-new-from-name.returns" role="returns">
<title>Returns</title>
<para>a new <link linkend="GdkCursor"><type>GdkCursor</type></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if there is no
cursor with the given name. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-cursor-get-fallback" role="function">
<title>gdk_cursor_get_fallback&#160;()</title>
<indexterm zone="gdk-cursor-get-fallback"><primary>gdk_cursor_get_fallback</primary></indexterm>
<programlisting language="C"><link linkend="GdkCursor"><returnvalue>GdkCursor</returnvalue></link>&#160;*
gdk_cursor_get_fallback (<parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *cursor</parameter>);</programlisting>
<para>Returns the fallback for this <parameter>cursor</parameter>
. The fallback will be used if this
cursor is not available on a given <link linkend="GdkDisplay"><type>GdkDisplay</type></link>.</para>
<para>For named cursors, this can happen when using nonstandard names or when
using an incomplete cursor theme.
For textured cursors, this can happen when the texture is too large or
when the <link linkend="GdkDisplay"><type>GdkDisplay</type></link> it is used on does not support textured cursors.</para>
<refsect3 id="gdk-cursor-get-fallback.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>cursor</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkCursor"><type>GdkCursor</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-get-fallback.returns" role="returns">
<title>Returns</title>
<para>the fallback of the cursor or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to use
the default cursor as fallback. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-cursor-get-name" role="function">
<title>gdk_cursor_get_name&#160;()</title>
<indexterm zone="gdk-cursor-get-name"><primary>gdk_cursor_get_name</primary></indexterm>
<programlisting language="C">const <link linkend="char"><returnvalue>char</returnvalue></link>&#160;*
gdk_cursor_get_name (<parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *cursor</parameter>);</programlisting>
<para>Returns the name of the cursor. If the cursor is not a named cursor, <link linkend="NULL:CAPS"><literal>NULL</literal></link>
will be returned and the GdkCursor::texture property will be set.</para>
<refsect3 id="gdk-cursor-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>cursor</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkCursor"><type>GdkCursor</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-get-name.returns" role="returns">
<title>Returns</title>
<para>the name of the cursor or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if it is not
a named cursor. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-cursor-get-texture" role="function">
<title>gdk_cursor_get_texture&#160;()</title>
<indexterm zone="gdk-cursor-get-texture"><primary>gdk_cursor_get_texture</primary></indexterm>
<programlisting language="C"><link linkend="GdkTexture"><returnvalue>GdkTexture</returnvalue></link>&#160;*
gdk_cursor_get_texture (<parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *cursor</parameter>);</programlisting>
<para>Returns the texture for the cursor. If the cursor is a named cursor, <link linkend="NULL:CAPS"><literal>NULL</literal></link>
will be returned and the GdkCursor::name property will be set.</para>
<refsect3 id="gdk-cursor-get-texture.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>cursor</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkCursor"><type>GdkCursor</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-get-texture.returns" role="returns">
<title>Returns</title>
<para>the texture for cursor or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if it is a
named cursor. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gdk-cursor-get-hotspot-x" role="function">
<title>gdk_cursor_get_hotspot_x&#160;()</title>
<indexterm zone="gdk-cursor-get-hotspot-x"><primary>gdk_cursor_get_hotspot_x</primary></indexterm>
<programlisting language="C"><link linkend="int"><returnvalue>int</returnvalue></link>
gdk_cursor_get_hotspot_x (<parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *cursor</parameter>);</programlisting>
<para>Returns the horizontal offset of the hotspot. The hotspot indicates the
pixel that will be directly above the cursor.</para>
<refsect3 id="gdk-cursor-get-hotspot-x.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>cursor</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkCursor"><type>GdkCursor</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-get-hotspot-x.returns" role="returns">
<title>Returns</title>
<para> the horizontal offset of the hotspot or 0 for named cursors</para>
</refsect3></refsect2>
<refsect2 id="gdk-cursor-get-hotspot-y" role="function">
<title>gdk_cursor_get_hotspot_y&#160;()</title>
<indexterm zone="gdk-cursor-get-hotspot-y"><primary>gdk_cursor_get_hotspot_y</primary></indexterm>
<programlisting language="C"><link linkend="int"><returnvalue>int</returnvalue></link>
gdk_cursor_get_hotspot_y (<parameter><link linkend="GdkCursor"><type>GdkCursor</type></link> *cursor</parameter>);</programlisting>
<para>Returns the vertical offset of the hotspot. The hotspot indicates the
pixel that will be directly above the cursor.</para>
<refsect3 id="gdk-cursor-get-hotspot-y.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>cursor</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkCursor"><type>GdkCursor</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-cursor-get-hotspot-y.returns" role="returns">
<title>Returns</title>
<para> the vertical offset of the hotspot or 0 for named cursors</para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="gdk4-Cursors.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GdkCursor-struct" role="struct">
<title>GdkCursor</title>
<indexterm zone="GdkCursor-struct"><primary>GdkCursor</primary></indexterm>
<programlisting language="C">typedef struct _GdkCursor GdkCursor;</programlisting>
<para>A <link linkend="GdkCursor"><type>GdkCursor</type></link> represents a cursor. Its contents are private.</para>
<para>Cursors are immutable objects, so they can not change after
they have been constructed.</para>
</refsect2>

</refsect1>
<refsect1 id="gdk4-Cursors.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GdkCursor--fallback" role="property"><title>The <literal>“fallback”</literal> property</title>
<indexterm zone="GdkCursor--fallback"><primary>GdkCursor:fallback</primary></indexterm>
<programlisting>  “fallback”                 <link linkend="GdkCursor"><type>GdkCursor</type></link>&#160;*</programlisting>
<para>Cursor image to fall back to if this cursor cannot be displayed.</para><para>Owner: GdkCursor</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
</refsect2>
<refsect2 id="GdkCursor--hotspot-x" role="property"><title>The <literal>“hotspot-x”</literal> property</title>
<indexterm zone="GdkCursor--hotspot-x"><primary>GdkCursor:hotspot-x</primary></indexterm>
<programlisting>  “hotspot-x”                <link linkend="int"><type>int</type></link></programlisting>
<para>Horizontal offset of the cursor hotspot.</para><para>Owner: GdkCursor</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Allowed values: &gt;= 0</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GdkCursor--hotspot-y" role="property"><title>The <literal>“hotspot-y”</literal> property</title>
<indexterm zone="GdkCursor--hotspot-y"><primary>GdkCursor:hotspot-y</primary></indexterm>
<programlisting>  “hotspot-y”                <link linkend="int"><type>int</type></link></programlisting>
<para>Vertical offset of the cursor hotspot.</para><para>Owner: GdkCursor</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Allowed values: &gt;= 0</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GdkCursor--name" role="property"><title>The <literal>“name”</literal> property</title>
<indexterm zone="GdkCursor--name"><primary>GdkCursor:name</primary></indexterm>
<programlisting>  “name”                     <link linkend="char"><type>char</type></link>&#160;*</programlisting>
<para>Name of this cursor.</para><para>Owner: GdkCursor</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
<para>Default value: NULL</para>
</refsect2>
<refsect2 id="GdkCursor--texture" role="property"><title>The <literal>“texture”</literal> property</title>
<indexterm zone="GdkCursor--texture"><primary>GdkCursor:texture</primary></indexterm>
<programlisting>  “texture”                  <link linkend="GdkTexture"><type>GdkTexture</type></link>&#160;*</programlisting>
<para>The texture displayed by this cursor.</para><para>Owner: GdkCursor</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
</refsect2>

</refsect1>

</refentry>
