<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ <!ENTITY version SYSTEM "version.xml"> ]> <refentry id="cairo-Types"> <refmeta> <refentrytitle role="top_of_page" id="cairo-Types.top_of_page">Types</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo> CAIRO Library </refmiscinfo> </refmeta> <refnamediv> <refname>Types</refname> <refpurpose>Generic data types</refpurpose> </refnamediv> <refsynopsisdiv id="cairo-Types.synopsis" role="synopsis"> <title role="synopsis.title">Synopsis</title> <synopsis>typedef <link linkend="cairo-bool-t">cairo_bool_t</link>; <link linkend="cairo-user-data-key-t">cairo_user_data_key_t</link>; <link linkend="void"><returnvalue>void</returnvalue></link> (<link linkend="cairo-destroy-func-t">*cairo_destroy_func_t</link>) (<parameter><link linkend="void"><type>void</type></link> *data</parameter>); <link linkend="cairo-rectangle-int-t">cairo_rectangle_int_t</link>; </synopsis> </refsynopsisdiv> <refsect1 id="cairo-Types.description" role="desc"> <title role="desc.title">Description</title> <para> This section lists generic data types used in the cairo API. </para> </refsect1> <refsect1 id="cairo-Types.details" role="details"> <title role="details.title">Details</title> <refsect2 id="cairo-bool-t" role="typedef"> <title>cairo_bool_t</title> <indexterm zone="cairo-bool-t"><primary sortas="bool_t">cairo_bool_t</primary></indexterm> <programlisting>typedef int cairo_bool_t; </programlisting> <para> <link linkend="cairo-bool-t"><type>cairo_bool_t</type></link> is used for boolean values. Returns of type <link linkend="cairo-bool-t"><type>cairo_bool_t</type></link> will always be either 0 or 1, but testing against these values explicitly is not encouraged; just use the value as a boolean condition. </para> <para> <informalexample><programlisting> if (cairo_in_stroke (cr, x, y)) { /<!-- -->* do something *<!-- -->/ } </programlisting></informalexample> </para></refsect2> <refsect2 id="cairo-user-data-key-t" role="struct"> <title>cairo_user_data_key_t</title> <indexterm zone="cairo-user-data-key-t"><primary sortas="user_data_key_t">cairo_user_data_key_t</primary></indexterm> <programlisting>typedef struct { int unused; } cairo_user_data_key_t; </programlisting> <para> <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> is used for attaching user data to cairo data structures. The actual contents of the struct is never used, and there is no need to initialize the object; only the unique address of a <link linkend="cairo-data-key-t"><type>cairo_data_key_t</type></link> object is used. Typically, you would just use the address of a static <link linkend="cairo-data-key-t"><type>cairo_data_key_t</type></link> object. </para><variablelist role="struct"> <varlistentry><term><link linkend="int"><type>int</type></link> <structfield id="cairo-user-data-key-t.unused">unused</structfield>;</term> <listitem><simpara>not used; ignore. </simpara></listitem> </varlistentry> </variablelist></refsect2> <refsect2 id="cairo-destroy-func-t" role="function"> <title>cairo_destroy_func_t ()</title> <indexterm zone="cairo-destroy-func-t"><primary sortas="destroy_func_t">cairo_destroy_func_t</primary></indexterm> <programlisting><link linkend="void"><returnvalue>void</returnvalue></link> (*cairo_destroy_func_t) (<parameter><link linkend="void"><type>void</type></link> *data</parameter>);</programlisting> <para> <link linkend="cairo-destroy-func-t"><type>cairo_destroy_func_t</type></link> the type of function which is called when a data element is destroyed. It is passed the pointer to the data element and should free any memory and resources allocated for it. </para><variablelist role="params"> <varlistentry><term><parameter>data</parameter> :</term> <listitem><simpara>The data element being destroyed. </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2 id="cairo-rectangle-int-t" role="struct" condition="since:1.10"> <title>cairo_rectangle_int_t</title> <indexterm zone="cairo-rectangle-int-t" role="1.10"><primary sortas="rectangle_int_t">cairo_rectangle_int_t</primary></indexterm> <programlisting>typedef struct { int x, y; int width, height; } cairo_rectangle_int_t; </programlisting> <para> A data structure for holding a rectangle with integer coordinates. </para><variablelist role="struct"> <varlistentry><term><link linkend="int"><type>int</type></link> <structfield id="cairo-rectangle-int-t.x">x</structfield>;</term> <listitem><simpara>X coordinate of the left side of the rectangle </simpara></listitem> </varlistentry> <varlistentry><term><link linkend="int"><type>int</type></link> <structfield id="cairo-rectangle-int-t.y">y</structfield>;</term> <listitem><simpara>Y coordinate of the the top side of the rectangle </simpara></listitem> </varlistentry> <varlistentry><term><link linkend="int"><type>int</type></link> <structfield id="cairo-rectangle-int-t.width">width</structfield>;</term> <listitem><simpara>width of the rectangle </simpara></listitem> </varlistentry> <varlistentry><term><link linkend="int"><type>int</type></link> <structfield id="cairo-rectangle-int-t.height">height</structfield>;</term> <listitem><simpara>height of the rectangle </simpara></listitem> </varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> </refsect1> </refentry>