Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • d198bc9
  • /
  • doc
  • /
  • usermanual
  • /
  • lua
  • /
  • lua_api.xml
Raw File Download
Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:b36d72f3e0d6a9b876c0900de4e7b284ef311ba2
directory badge Iframe embedding
swh:1:dir:851b8170c8d444360245274ca3eb21f4829c8cc5
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
lua_api.xml
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % darktable_dtd SYSTEM "../dtd/darktable.dtd">
  %darktable_dtd;
  ]>
  <article status="draft" id="lua_api"><title>Lua API</title>
  <indexterm>
  <primary>Lua API</primary>
  </indexterm>
  <para>This documentation is for the *development* version of darktable. for the stable version, please visit the user manual</para>
<para>To access the darktable specific functions you must load the darktable environment:</para>

<para><programlisting language="lua">darktable = require "darktable"</programlisting></para>

<para>All functions and data are accessed through the darktable module.</para>
<para>This documentation for API version 5.0.0-dev.</para>

<section status="final" id="darktable">
<title>darktable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>darktable</secondary>
</indexterm>
<para>The darktable library is the main entry point for all access to the darktable internals.</para>

<section status="final" id="darktable_print">
<title>darktable.print</title>
<indexterm>
<primary>Lua API</primary>
<secondary>print</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_print_message">message</link></emphasis> : string
)</synopsis>
<para>Will print a string to the darktable control log (the long overlayed window that appears over the main panel).</para>

<variablelist>
<varlistentry id="darktable_print_message"><term>message</term><listitem>
<synopsis>string</synopsis>
<para>The string to display which should be a single line.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_print_log">
<title>darktable.print_log</title>
<indexterm>
<primary>Lua API</primary>
<secondary>print_log</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_print_log_message">message</link></emphasis> : string
)</synopsis>
<para>This function will print its parameter if the Lua logdomain is activated. Start darktable with the "-d lua" command line option to enable the Lua logdomain.</para>

<variablelist>
<varlistentry id="darktable_print_log_message"><term>message</term><listitem>
<synopsis>string</synopsis>
<para>The string to display.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_print_error">
<title>darktable.print_error</title>
<indexterm>
<primary>Lua API</primary>
<secondary>print_error</secondary>
</indexterm>
<synopsis>function( 
)</synopsis>
<para>This function is similar to<link linkend="darktable_print_log">darktable.print_log</link> but adds an ERROR prefix for clarity.)
darktable.print_error:add_parameter("message","string",[[The string to display.</para>

<variablelist>
</variablelist>
</section>

<section status="final" id="darktable_register_event">
<title>darktable.register_event</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_event</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_event_event_type">event_type</link></emphasis> : string, 
	<emphasis><link linkend="darktable_register_event_callback">callback</link></emphasis> : function, 
	<emphasis><link linkend="darktable_register_event____">...</link></emphasis> : variable
)</synopsis>
<para>This function registers a callback to be called when a given event happens.</para>
<para>Events are documented <link linkend="events">in the event section.</link></para>

<variablelist>
<varlistentry id="darktable_register_event_event_type"><term>event_type</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event to register to.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_event_callback"><term>callback</term><listitem>
<synopsis>function</synopsis>
<para>The function to call on event. The signature of the function depends on the type of event.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_event____"><term>...</term><listitem>
<synopsis>variable</synopsis>
<para>Some events need extra parameters at registration time; these must be specified here.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_register_storage">
<title>darktable.register_storage</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_storage</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_storage_plugin_name">plugin_name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_register_storage_name">name</link></emphasis> : string, 
	[<emphasis><link linkend="darktable_register_storage_store">store</link></emphasis> : function], 
	[<emphasis><link linkend="darktable_register_storage_finalize">finalize</link></emphasis> : function], 
	[<emphasis><link linkend="darktable_register_storage_supported">supported</link></emphasis> : function], 
	[<emphasis><link linkend="darktable_register_storage_initialize">initialize</link></emphasis> : function], 
	[<emphasis><link linkend="darktable_register_storage_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>]
)</synopsis>
<para>This function will add a new storage implemented in Lua.</para>
<para>A storage is a module that is responsible for handling images once they have been generated during export. Examples of core storages include filesystem, e-mail, facebook...</para>

<variablelist>
<varlistentry id="darktable_register_storage_plugin_name"><term>plugin_name</term><listitem>
<synopsis>string</synopsis>
<para>A Unique name for the plugin.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>A human readable name for the plugin.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store"><term>[store]</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_storage_store_storage">storage</link></emphasis> : <link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link>, 
	<emphasis><link linkend="darktable_register_storage_store_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="darktable_register_storage_store_format">format</link></emphasis> : <link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link>, 
	<emphasis><link linkend="darktable_register_storage_store_filename">filename</link></emphasis> : string, 
	<emphasis><link linkend="darktable_register_storage_store_number">number</link></emphasis> : integer, 
	<emphasis><link linkend="darktable_register_storage_store_total">total</link></emphasis> : integer, 
	<emphasis><link linkend="darktable_register_storage_store_high_quality">high_quality</link></emphasis> : boolean, 
	<emphasis><link linkend="darktable_register_storage_store_extra_data">extra_data</link></emphasis> : table
)</synopsis>
<para>This function is called once for each exported image. Images can be exported in parallel but the calls to this function will be serialized.</para>

<variablelist>
<varlistentry id="darktable_register_storage_store_storage"><term>storage</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The storage object used for the export.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The exported image object.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_format"><term>format</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The format object used for the export.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_filename"><term>filename</term><listitem>
<synopsis>string</synopsis>
<para>The name of a temporary file where the processed image is stored.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_number"><term>number</term><listitem>
<synopsis>integer</synopsis>
<para>The number of the image out of the export series.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_total"><term>total</term><listitem>
<synopsis>integer</synopsis>
<para>The total number of images in the export series.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_high_quality"><term>high_quality</term><listitem>
<synopsis>boolean</synopsis>
<para>True if the export is high quality.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_store_extra_data"><term>extra_data</term><listitem>
<synopsis>table</synopsis>
<para>An empty Lua table to take extra data. This table is common to the initialize, store and finalize calls in an export series.</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_register_storage_finalize"><term>[finalize]</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_storage_finalize_storage">storage</link></emphasis> : <link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link>, 
	<emphasis><link linkend="darktable_register_storage_finalize_image_table">image_table</link></emphasis> : table, 
	<emphasis><link linkend="darktable_register_storage_finalize_extra_data">extra_data</link></emphasis> : table
)</synopsis>
<para>This function is called once all images are processed and all store calls are finished.</para>

<variablelist>
<varlistentry id="darktable_register_storage_finalize_storage"><term>storage</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The storage object used for the export.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_finalize_image_table"><term>image_table</term><listitem>
<synopsis>table</synopsis>
<para>A table keyed by the exported image objects and valued with the corresponding temporary export filename.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_finalize_extra_data"><term>extra_data</term><listitem>
<synopsis>table</synopsis>
<para>An empty Lua table to store extra data. This table is common to all calls to store and the call to finalize in a given export series.</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_register_storage_supported"><term>[supported]</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_storage_supported_storage">storage</link></emphasis> : <link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link>, 
	<emphasis><link linkend="darktable_register_storage_supported_format">format</link></emphasis> : <link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link>
) : boolean</synopsis>
<para>A function called to check if a given image format is supported by the Lua storage; this is used to build the dropdown format list for the GUI.</para>
<para>Note that the parameters in the format are the ones currently set in the GUI; the user might change them before export.</para>

<variablelist>
<varlistentry id="darktable_register_storage_supported_storage"><term>storage</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The storage object tested.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_supported_format"><term>format</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The format object to report about.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>boolean</synopsis>
<para>True if the corresponding format is supported.</para>

</listitem></varlistentry>


</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_register_storage_initialize"><term>[initialize]</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_storage_initialize_storage">storage</link></emphasis> : <link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link>, 
	<emphasis><link linkend="darktable_register_storage_initialize_format">format</link></emphasis> : <link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link>, 
	<emphasis><link linkend="darktable_register_storage_initialize_images">images</link></emphasis> : table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="darktable_register_storage_initialize_high_quality">high_quality</link></emphasis> : boolean, 
	<emphasis><link linkend="darktable_register_storage_initialize_extra_data">extra_data</link></emphasis> : table
) : table or nil</synopsis>
<para>A function called before storage happens</para>
<para>This function can change the list of exported functions</para>

<variablelist>
<varlistentry id="darktable_register_storage_initialize_storage"><term>storage</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The storage object tested.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_initialize_format"><term>format</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The format object to report about.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_initialize_images"><term>images</term><listitem>
<synopsis>table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>A table containing images to be exported.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_initialize_high_quality"><term>high_quality</term><listitem>
<synopsis>boolean</synopsis>
<para>True if the export is high quality.</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_storage_initialize_extra_data"><term>extra_data</term><listitem>
<synopsis>table</synopsis>
<para>An empty Lua table to take extra data. This table is common to the initialize, store and finalize calls in an export series.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>table or nil</synopsis>
<para>The modified table of images to export or nil</para>
<para>If nil (or nothing) is returned, the original list of images will be exported</para>
<para>If a table of images is returned, that table will be used instead. The table can be empty. The images parameter can be modified and returned</para>

</listitem></varlistentry>


</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_register_storage_widget"><term>[widget]</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>A widget to display in the export section of darktable's UI</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_register_lib">
<title>darktable.register_lib</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_lib</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_register_lib_plugin_name">plugin_name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_register_lib_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_register_lib_expandable">expandable</link></emphasis> : boolean, 
	<emphasis><link linkend="darktable_register_lib_resetable">resetable</link></emphasis> : boolean, 
	<emphasis><link linkend="darktable_register_lib_containers">containers</link></emphasis> : table of <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link> => [ <link linkend="types_dt_ui_container_t">types.dt_ui_container_t</link>, int ], 
	<emphasis><link linkend="darktable_register_lib_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>, 
	<emphasis><link linkend="darktable_register_lib_view_enter">view_enter</link></emphasis> : function, 
	<emphasis><link linkend="darktable_register_lib_view_leave">view_leave</link></emphasis> : function
)</synopsis>
<para>Register a new lib object. A lib is a graphical element of darktable's user interface</para>

<variablelist>
<varlistentry id="darktable_register_lib_plugin_name"><term>plugin_name</term><listitem>
<synopsis>string</synopsis>
<para>A unique name for your library</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>A user-visible name for your library</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_expandable"><term>expandable</term><listitem>
<synopsis>boolean</synopsis>
<para>whether this lib should be expandable or not</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_resetable"><term>resetable</term><listitem>
<synopsis>boolean</synopsis>
<para>whether this lib has a reset button or not</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_containers"><term>containers</term><listitem>
<synopsis>table of <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link> => [ <link linkend="types_dt_ui_container_t">types.dt_ui_container_t</link>, int ]</synopsis>
<para>A table associating to each view containing the lib the corresponding container and position</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget to display in the lib</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_view_enter"><term>view_enter</term><listitem>
<synopsis>self:function( 
	<emphasis><link linkend="darktable_register_lib_view_enter_old_view">old_view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>, 
	<emphasis><link linkend="darktable_register_lib_view_enter_new_view">new_view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>
)</synopsis>
<para>A callback called when a view displaying the lib is entered</para>

<variablelist>
<varlistentry id="darktable_register_lib_view_enter_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></synopsis>
<para>The lib on which the callback is called</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_view_enter_old_view"><term>old_view</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view that we are leaving</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_view_enter_new_view"><term>new_view</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view that we are entering</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_register_lib_view_leave"><term>view_leave</term><listitem>
<synopsis>self:function( 
	<emphasis><link linkend="darktable_register_lib_view_leave_old_view">old_view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>, 
	<emphasis><link linkend="darktable_register_lib_view_leave_new_view">new_view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>
)</synopsis>
<para>A callback called when leaving a view displaying the lib</para>

<variablelist>
<varlistentry id="darktable_register_lib_view_leave_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></synopsis>
<para>The lib on which the callback is called</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_view_leave_old_view"><term>old_view</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view that we are leaving</para>

</listitem></varlistentry>

<varlistentry id="darktable_register_lib_view_leave_new_view"><term>new_view</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view that we are entering</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_films">
<title>darktable.films</title>
<indexterm>
<primary>Lua API</primary>
<secondary>films</secondary>
</indexterm>
<para>A table containing all the film objects in the database.</para>

<section status="final" id="darktable_films__hash_">
<title>darktable.films.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>Each film has a numeric entry in the database.</para>

</section>

<section status="final" id="darktable_films_new">
<title>darktable.films.new</title>
<indexterm>
<primary>Lua API</primary>
<secondary>new</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_films_new_directory">directory</link></emphasis> : string
) : <link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>Creates a new empty film</para>
<para> see <link linkend="darktable_database_import">darktable.database.import</link> to import a directory with all its images and to add images to a film</para>

<variablelist>
<varlistentry id="darktable_films_new_directory"><term>directory</term><listitem>
<synopsis>string</synopsis>
<para>The directory that the new film will represent. The directory must exist</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>The newly created film, or the existing film if the directory is already imported</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" >
<title>darktable.films.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<para>see <link linkend="types_dt_lua_film_t_delete">types.dt_lua_film_t.delete</link></para>
</section>

</section>

<section status="final" id="darktable_new_format">
<title>darktable.new_format</title>
<indexterm>
<primary>Lua API</primary>
<secondary>new_format</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_new_format_type">type</link></emphasis> : string
) : <link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>Creates a new format object to export images</para>

<variablelist>
<varlistentry id="darktable_new_format_type"><term>type</term><listitem>
<synopsis>string</synopsis>
<para>The type of format object to create, one of : <itemizedlist>
<listitem><para>copy</para></listitem>
<listitem><para>exr</para></listitem>
<listitem><para>j2k</para></listitem>
<listitem><para>jpeg</para></listitem>
<listitem><para>pdf</para></listitem>
<listitem><para>pfm</para></listitem>
<listitem><para>png</para></listitem>
<listitem><para>ppm</para></listitem>
<listitem><para>tiff</para></listitem>
<listitem><para>webp</para></listitem>
</itemizedlist>
</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The newly created object. Exact type depends on the type passed</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_new_storage">
<title>darktable.new_storage</title>
<indexterm>
<primary>Lua API</primary>
<secondary>new_storage</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_new_storage_type">type</link></emphasis> : string
) : <link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>Creates a new storage object to export images</para>

<variablelist>
<varlistentry id="darktable_new_storage_type"><term>type</term><listitem>
<synopsis>string</synopsis>
<para>The type of storage object to create, one of : <itemizedlist>
<listitem><para>disk</para></listitem>
<listitem><para>email</para></listitem>
<listitem><para>facebook</para></listitem>
<listitem><para>flickr</para></listitem>
<listitem><para>gallery</para></listitem>
<listitem><para>latex</para></listitem>
<listitem><para>picasa</para></listitem>
</itemizedlist>
(Other, lua-defined, storage types may appear.)</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The newly created object. Exact type depends on the type passed</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_new_widget">
<title>darktable.new_widget</title>
<indexterm>
<primary>Lua API</primary>
<secondary>new_widget</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_new_widget_type">type</link></emphasis> : string, 
	<emphasis><link linkend="darktable_new_widget____">...</link></emphasis> : variable
) : <link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>Creates a new widget object to display in the UI</para>

<variablelist>
<varlistentry id="darktable_new_widget_type"><term>type</term><listitem>
<synopsis>string</synopsis>
<para>The type of storage object to create, one of : <itemizedlist>
<listitem><para>box</para></listitem>
<listitem><para>button</para></listitem>
<listitem><para>check_button</para></listitem>
<listitem><para>combobox</para></listitem>
<listitem><para>container</para></listitem>
<listitem><para>entry</para></listitem>
<listitem><para>file_chooser_button</para></listitem>
<listitem><para>label</para></listitem>
<listitem><para>section_label</para></listitem>
<listitem><para>separator</para></listitem>
<listitem><para>slider</para></listitem>
<listitem><para>stack</para></listitem>
<listitem><para>text_view</para></listitem>
</itemizedlist>
</para>

</listitem></varlistentry>

<varlistentry id="darktable_new_widget____"><term>...</term><listitem>
<synopsis>variable</synopsis>
<para>Extra parameters, exact value are documented with each type</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The newly created object. Exact type depends on the type passed</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gui">
<title>darktable.gui</title>
<indexterm>
<primary>Lua API</primary>
<secondary>gui</secondary>
</indexterm>
<para>This subtable contains function and data to manipulate the darktable user interface with Lua.</para>
<para>Most of these function won't do anything if the GUI is not enabled (i.e you are using the command line version darktable-cli instead of darktable).</para>

<section status="final" id="darktable_gui_action_images">
<title>darktable.gui.action_images</title>
<indexterm>
<primary>Lua API</primary>
<secondary>action_images</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>A table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link> on which the user expects UI actions to happen.</para>
<para>It is based on both the hovered image and the selection and is consistent with the way darktable works.</para>
<para>It is recommended to use this table to implement Lua actions rather than <link linkend="darktable_gui_hovered">darktable.gui.hovered</link> or <link linkend="darktable_gui_selection">darktable.gui.selection</link> to be consistant with darktable's GUI.</para>

</section>

<section status="final" id="darktable_gui_hovered">
<title>darktable.gui.hovered</title>
<indexterm>
<primary>Lua API</primary>
<secondary>hovered</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image under the cursor or nil if no image is hovered.</para>

</section>

<section status="final" id="darktable_gui_selection">
<title>darktable.gui.selection</title>
<indexterm>
<primary>Lua API</primary>
<secondary>selection</secondary>
</indexterm>
<synopsis>function( 
	[<emphasis><link linkend="darktable_gui_selection_selection">selection</link></emphasis> : table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>]
) : table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Allows to change the set of selected images.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_implicit_yield">implicit_yield</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="darktable_gui_selection_selection"><term>[selection]</term><listitem>
<synopsis>table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>A table of images which will define the selected images. If this parameter is not given the selection will be untouched. If an empty table is given the selection will be emptied.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>A table containing the selection as it was before the function was called.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gui_current_view">
<title>darktable.gui.current_view</title>
<indexterm>
<primary>Lua API</primary>
<secondary>current_view</secondary>
</indexterm>
<synopsis>function( 
	[<emphasis><link linkend="darktable_gui_current_view_view">view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>]
) : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>Allows to change the current view.</para>

<variablelist>
<varlistentry id="darktable_gui_current_view_view"><term>[view]</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view to switch to. If empty the current view is unchanged</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>the current view</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gui_create_job">
<title>darktable.gui.create_job</title>
<indexterm>
<primary>Lua API</primary>
<secondary>create_job</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_create_job_text">text</link></emphasis> : string, 
	[<emphasis><link linkend="darktable_gui_create_job_percentage">percentage</link></emphasis> : boolean], 
	[<emphasis><link linkend="darktable_gui_create_job_cancel_callback">cancel_callback</link></emphasis> : function]
) : <link linkend="types_dt_lua_backgroundjob_t">types.dt_lua_backgroundjob_t</link></synopsis>
<para>Create a new progress_bar displayed in <link linkend="darktable_gui_libs_backgroundjobs">darktable.gui.libs.backgroundjobs</link></para>

<variablelist>
<varlistentry id="darktable_gui_create_job_text"><term>text</term><listitem>
<synopsis>string</synopsis>
<para>The text to display in the job entry</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_create_job_percentage"><term>[percentage]</term><listitem>
<synopsis>boolean</synopsis>
<para>Should a progress bar be displayed</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_create_job_cancel_callback"><term>[cancel_callback]</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_create_job_cancel_callback_job">job</link></emphasis> : <link linkend="types_dt_lua_backgroundjob_t">types.dt_lua_backgroundjob_t</link>
)</synopsis>
<para>A function called when the cancel button for that job is pressed</para>
<para>note that the job won't be destroyed automatically. You need to set <link linkend="types_dt_lua_backgroundjob_t_valid">types.dt_lua_backgroundjob_t.valid</link> to false for that</para>

<variablelist>
<varlistentry id="darktable_gui_create_job_cancel_callback_job"><term>job</term><listitem>
<synopsis><link linkend="types_dt_lua_backgroundjob_t">types.dt_lua_backgroundjob_t</link></synopsis>
<para>The job who is being cancelled</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_backgroundjob_t">types.dt_lua_backgroundjob_t</link></synopsis>
<para>The newly created job object</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gui_views">
<title>darktable.gui.views</title>
<indexterm>
<primary>Lua API</primary>
<secondary>views</secondary>
</indexterm>
<para>The different views in darktable</para>

<section status="final" id="darktable_gui_views_map">
<title>darktable.gui.views.map</title>
<indexterm>
<primary>Lua API</primary>
<secondary>map</secondary>
</indexterm>
<para>The map view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_views_map_latitude">
<title>darktable.gui.views.map.latitude</title>
<indexterm>
<primary>Lua API</primary>
<secondary>latitude</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The latitude of the center of the map</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_views_map_longitude">
<title>darktable.gui.views.map.longitude</title>
<indexterm>
<primary>Lua API</primary>
<secondary>longitude</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The longitude of the center of the map</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_views_map_zoom">
<title>darktable.gui.views.map.zoom</title>
<indexterm>
<primary>Lua API</primary>
<secondary>zoom</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The current zoom level of the map</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="darktable_gui_views_darkroom">
<title>darktable.gui.views.darkroom</title>
<indexterm>
<primary>Lua API</primary>
<secondary>darkroom</secondary>
</indexterm>
<para>The darkroom view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_views_lighttable">
<title>darktable.gui.views.lighttable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lighttable</secondary>
</indexterm>
<para>The lighttable view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_views_tethering">
<title>darktable.gui.views.tethering</title>
<indexterm>
<primary>Lua API</primary>
<secondary>tethering</secondary>
</indexterm>
<para>The tethering view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_views_slideshow">
<title>darktable.gui.views.slideshow</title>
<indexterm>
<primary>Lua API</primary>
<secondary>slideshow</secondary>
</indexterm>
<para>The slideshow view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_views_print">
<title>darktable.gui.views.print</title>
<indexterm>
<primary>Lua API</primary>
<secondary>print</secondary>
</indexterm>
<para>The print view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="darktable_gui_libs">
<title>darktable.gui.libs</title>
<indexterm>
<primary>Lua API</primary>
<secondary>libs</secondary>
</indexterm>
<para>This table allows to reference all lib objects</para>
<para>lib are the graphical blocks within each view.</para>
<para>To quickly figure out what lib is what, you can use the following code which will make a given lib blink.</para>
<para></para>

<para><programlisting language="lua">local tested_module="global_toolbox"
dt.gui.libs[tested_module].visible=false
coroutine.yield("WAIT_MS",2000)
while true do
	dt.gui.libs[tested_module].visible = not dt.gui.libs[tested_module].visible
	coroutine.yield("WAIT_MS",2000)
end</programlisting></para>

<para></para>

<section status="final" id="darktable_gui_libs_snapshots">
<title>darktable.gui.libs.snapshots</title>
<indexterm>
<primary>Lua API</primary>
<secondary>snapshots</secondary>
</indexterm>
<para>The UI element that manipulates snapshots in darkroom</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_snapshots_ratio">
<title>darktable.gui.libs.snapshots.ratio</title>
<indexterm>
<primary>Lua API</primary>
<secondary>ratio</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The place in the screen where the line separating the snapshot is. Between 0 and 1</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_snapshots_direction">
<title>darktable.gui.libs.snapshots.direction</title>
<indexterm>
<primary>Lua API</primary>
<secondary>direction</secondary>
</indexterm>
<synopsis><link linkend="types_snapshot_direction_t">types.snapshot_direction_t</link></synopsis>
<para>The direction of the snapshot overlay</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_snapshots__hash_">
<title>darktable.gui.libs.snapshots.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_snapshot_t">types.dt_lua_snapshot_t</link></synopsis>
<para>The different snapshots for the image</para>

</section>

<section status="final" id="darktable_gui_libs_snapshots_selected">
<title>darktable.gui.libs.snapshots.selected</title>
<indexterm>
<primary>Lua API</primary>
<secondary>selected</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_snapshot_t">types.dt_lua_snapshot_t</link></synopsis>
<para>The currently selected snapshot</para>

</section>

<section status="final" id="darktable_gui_libs_snapshots_take_snapshot">
<title>darktable.gui.libs.snapshots.take_snapshot</title>
<indexterm>
<primary>Lua API</primary>
<secondary>take_snapshot</secondary>
</indexterm>
<synopsis>function( 
)</synopsis>
<para>Take a snapshot of the current image and add it to the UI</para>
<para>The snapshot file will be generated at the next redraw of the main window</para>

<variablelist>
</variablelist>
</section>

<section status="final" id="darktable_gui_libs_snapshots_max_snapshot">
<title>darktable.gui.libs.snapshots.max_snapshot</title>
<indexterm>
<primary>Lua API</primary>
<secondary>max_snapshot</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The maximum number of snapshots</para>

</section>

</section>

<section status="final" id="darktable_gui_libs_collect">
<title>darktable.gui.libs.collect</title>
<indexterm>
<primary>Lua API</primary>
<secondary>collect</secondary>
</indexterm>
<para>The collection UI element that allows to filter images by collection</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_collect_filter">
<title>darktable.gui.libs.collect.filter</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filter</secondary>
</indexterm>
<synopsis>function( 
	[<emphasis><link linkend="darktable_gui_libs_collect_filter_rules">rules</link></emphasis> : array of<link linkend="types_dt_lib_collect_params_rule_t">types.dt_lib_collect_params_rule_t</link>]
) : array of<link linkend="types_dt_lib_collect_params_rule_t">types.dt_lib_collect_params_rule_t</link></synopsis>
<para>Allows to get or change the list of visible images</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_implicit_yield">implicit_yield</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="darktable_gui_libs_collect_filter_rules"><term>[rules]</term><listitem>
<synopsis>array of<link linkend="types_dt_lib_collect_params_rule_t">types.dt_lib_collect_params_rule_t</link></synopsis>
<para>A table of rules describing the filter. These rules will be applied after this call</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>array of<link linkend="types_dt_lib_collect_params_rule_t">types.dt_lib_collect_params_rule_t</link></synopsis>
<para>The rules that were applied before this call.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gui_libs_collect_new_rule">
<title>darktable.gui.libs.collect.new_rule</title>
<indexterm>
<primary>Lua API</primary>
<secondary>new_rule</secondary>
</indexterm>
<synopsis>function( 
) : <link linkend="types_dt_lib_collect_params_rule_t">types.dt_lib_collect_params_rule_t</link></synopsis>
<para>Returns a newly created rule object</para>

<variablelist>
<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lib_collect_params_rule_t">types.dt_lib_collect_params_rule_t</link></synopsis>
<para>The newly created rule</para>

</listitem></varlistentry>


</variablelist>
</section>

</section>

<section status="final" id="darktable_gui_libs_import">
<title>darktable.gui.libs.import</title>
<indexterm>
<primary>Lua API</primary>
<secondary>import</secondary>
</indexterm>
<para>The buttons to start importing images</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_import_register_widget">
<title>darktable.gui.libs.import.register_widget</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_widget</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_import_register_widget_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>Add a widget in the option expander of the import dialog</para>

<variablelist>
<varlistentry id="darktable_gui_libs_import_register_widget_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget to add to the dialog. The reset callback of the widget will be called whenever the dialog is opened</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_gui_libs_styles">
<title>darktable.gui.libs.styles</title>
<indexterm>
<primary>Lua API</primary>
<secondary>styles</secondary>
</indexterm>
<para>The style selection menu</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_metadata_view">
<title>darktable.gui.libs.metadata_view</title>
<indexterm>
<primary>Lua API</primary>
<secondary>metadata_view</secondary>
</indexterm>
<para>The widget displaying metadata about the current image</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_metadata_view_register_info">
<title>darktable.gui.libs.metadata_view.register_info</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_info</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_metadata_view_register_info_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gui_libs_metadata_view_register_info_callback">callback</link></emphasis> : function
)</synopsis>
<para>Register a function providing extra info to display in the widget</para>

<variablelist>
<varlistentry id="darktable_gui_libs_metadata_view_register_info_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name displayed for the new information</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_metadata_view_register_info_callback"><term>callback</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_metadata_view_register_info_callback_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
) : string</synopsis>
<para>The function providing the info</para>

<variablelist>
<varlistentry id="darktable_gui_libs_metadata_view_register_info_callback_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to analyze</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>The extra information to display</para>

</listitem></varlistentry>


</variablelist>
</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_gui_libs_metadata">
<title>darktable.gui.libs.metadata</title>
<indexterm>
<primary>Lua API</primary>
<secondary>metadata</secondary>
</indexterm>
<para>The widget allowing modification of metadata fields on the current image</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_hinter">
<title>darktable.gui.libs.hinter</title>
<indexterm>
<primary>Lua API</primary>
<secondary>hinter</secondary>
</indexterm>
<para>The small line of text at the top of the UI showing the number of selected images</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_modulelist">
<title>darktable.gui.libs.modulelist</title>
<indexterm>
<primary>Lua API</primary>
<secondary>modulelist</secondary>
</indexterm>
<para>The window allowing to set modules as visible/hidden/favorite</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_filmstrip">
<title>darktable.gui.libs.filmstrip</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filmstrip</secondary>
</indexterm>
<para>The filmstrip at the bottom of some views</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_viewswitcher">
<title>darktable.gui.libs.viewswitcher</title>
<indexterm>
<primary>Lua API</primary>
<secondary>viewswitcher</secondary>
</indexterm>
<para>The labels allowing to switch view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_darktable_label">
<title>darktable.gui.libs.darktable_label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>darktable_label</secondary>
</indexterm>
<para>The darktable logo in the upper left corner</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_tagging">
<title>darktable.gui.libs.tagging</title>
<indexterm>
<primary>Lua API</primary>
<secondary>tagging</secondary>
</indexterm>
<para>The tag manipulation UI</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_geotagging">
<title>darktable.gui.libs.geotagging</title>
<indexterm>
<primary>Lua API</primary>
<secondary>geotagging</secondary>
</indexterm>
<para>The geotagging time synchronisation UI</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_recentcollect">
<title>darktable.gui.libs.recentcollect</title>
<indexterm>
<primary>Lua API</primary>
<secondary>recentcollect</secondary>
</indexterm>
<para>The recent collection UI element</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_global_toolbox">
<title>darktable.gui.libs.global_toolbox</title>
<indexterm>
<primary>Lua API</primary>
<secondary>global_toolbox</secondary>
</indexterm>
<para>The common tools to all view (settings, grouping...)</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_global_toolbox_grouping">
<title>darktable.gui.libs.global_toolbox.grouping</title>
<indexterm>
<primary>Lua API</primary>
<secondary>grouping</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>The current status of the image grouping option</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_global_toolbox_show_overlays">
<title>darktable.gui.libs.global_toolbox.show_overlays</title>
<indexterm>
<primary>Lua API</primary>
<secondary>show_overlays</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>the current status of the image overlays option</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="darktable_gui_libs_filter">
<title>darktable.gui.libs.filter</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filter</secondary>
</indexterm>
<para>The image-filter menus at the top of the UI</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_ratings">
<title>darktable.gui.libs.ratings</title>
<indexterm>
<primary>Lua API</primary>
<secondary>ratings</secondary>
</indexterm>
<para>The starts to set the rating of an image</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_select">
<title>darktable.gui.libs.select</title>
<indexterm>
<primary>Lua API</primary>
<secondary>select</secondary>
</indexterm>
<para>The buttons that allow to quickly change the selection</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_select_register_selection">
<title>darktable.gui.libs.select.register_selection</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_selection</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_select_register_selection_label">label</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gui_libs_select_register_selection_callback">callback</link></emphasis> : function, 
	[<emphasis><link linkend="darktable_gui_libs_select_register_selection_tooltip">tooltip</link></emphasis> : string]
)</synopsis>
<para>Add a new button and call a callback when it is clicked</para>

<variablelist>
<varlistentry id="darktable_gui_libs_select_register_selection_label"><term>label</term><listitem>
<synopsis>string</synopsis>
<para>The label to display on the button</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_select_register_selection_callback"><term>callback</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_select_register_selection_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gui_libs_select_register_selection_callback_images">images</link></emphasis> : table of<link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
) : table of<link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The function to call when the button is pressed</para>

<variablelist>
<varlistentry id="darktable_gui_libs_select_register_selection_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the button that was pressed</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_select_register_selection_callback_images"><term>images</term><listitem>
<synopsis>table of<link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The images in the current collection. This is the same content as<link linkend="darktable_collection">darktable.collection</link></para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>table of<link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The images to set the selection to</para>

</listitem></varlistentry>


</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_select_register_selection_tooltip"><term>[tooltip]</term><listitem>
<synopsis>string</synopsis>
<para>The tooltip to use on the new button</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_gui_libs_colorlabels">
<title>darktable.gui.libs.colorlabels</title>
<indexterm>
<primary>Lua API</primary>
<secondary>colorlabels</secondary>
</indexterm>
<para>The color buttons that allow to set labels on an image</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_lighttable_mode">
<title>darktable.gui.libs.lighttable_mode</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lighttable_mode</secondary>
</indexterm>
<para>The navigation and zoom level UI in lighttable</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_copy_history">
<title>darktable.gui.libs.copy_history</title>
<indexterm>
<primary>Lua API</primary>
<secondary>copy_history</secondary>
</indexterm>
<para>The UI element that manipulates history</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_image">
<title>darktable.gui.libs.image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>image</secondary>
</indexterm>
<para>The UI element that manipulates the current images</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="darktable_gui_libs_image_register_action">
<title>darktable.gui.libs.image.register_action</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_action</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_image_register_action_label">label</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gui_libs_image_register_action_callback">callback</link></emphasis> : function, 
	[<emphasis><link linkend="darktable_gui_libs_image_register_action_tooltip">tooltip</link></emphasis> : string]
)</synopsis>
<para>Add a new button and call a callback when it is clicked</para>

<variablelist>
<varlistentry id="darktable_gui_libs_image_register_action_label"><term>label</term><listitem>
<synopsis>string</synopsis>
<para>The label to display on the button</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_image_register_action_callback"><term>callback</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_gui_libs_image_register_action_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gui_libs_image_register_action_callback_images">images</link></emphasis> : table of<link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
)</synopsis>
<para>The function to call when the button is pressed</para>

<variablelist>
<varlistentry id="darktable_gui_libs_image_register_action_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the button that was pressed</para>

</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_image_register_action_callback_images"><term>images</term><listitem>
<synopsis>table of<link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The images to act on when the button was clicked</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_gui_libs_image_register_action_tooltip"><term>[tooltip]</term><listitem>
<synopsis>string</synopsis>
<para>The tooltip to use on the new button</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_gui_libs_modulegroups">
<title>darktable.gui.libs.modulegroups</title>
<indexterm>
<primary>Lua API</primary>
<secondary>modulegroups</secondary>
</indexterm>
<para>The icons describing the different iop groups</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_module_toolbox">
<title>darktable.gui.libs.module_toolbox</title>
<indexterm>
<primary>Lua API</primary>
<secondary>module_toolbox</secondary>
</indexterm>
<para>The tools on the bottom line of the UI (overexposure)</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_session">
<title>darktable.gui.libs.session</title>
<indexterm>
<primary>Lua API</primary>
<secondary>session</secondary>
</indexterm>
<para>The session UI when tethering</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_histogram">
<title>darktable.gui.libs.histogram</title>
<indexterm>
<primary>Lua API</primary>
<secondary>histogram</secondary>
</indexterm>
<para>The histogram widget</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_export">
<title>darktable.gui.libs.export</title>
<indexterm>
<primary>Lua API</primary>
<secondary>export</secondary>
</indexterm>
<para>The export menu</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_history">
<title>darktable.gui.libs.history</title>
<indexterm>
<primary>Lua API</primary>
<secondary>history</secondary>
</indexterm>
<para>The history manipulation menu</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_colorpicker">
<title>darktable.gui.libs.colorpicker</title>
<indexterm>
<primary>Lua API</primary>
<secondary>colorpicker</secondary>
</indexterm>
<para>The colorpicker menu</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_navigation">
<title>darktable.gui.libs.navigation</title>
<indexterm>
<primary>Lua API</primary>
<secondary>navigation</secondary>
</indexterm>
<para>The full image preview to allow navigation</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_masks">
<title>darktable.gui.libs.masks</title>
<indexterm>
<primary>Lua API</primary>
<secondary>masks</secondary>
</indexterm>
<para>The masks window</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_view_toolbox">
<title>darktable.gui.libs.view_toolbox</title>
<indexterm>
<primary>Lua API</primary>
<secondary>view_toolbox</secondary>
</indexterm>
<para></para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_live_view">
<title>darktable.gui.libs.live_view</title>
<indexterm>
<primary>Lua API</primary>
<secondary>live_view</secondary>
</indexterm>
<para>The liveview window</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_map_settings">
<title>darktable.gui.libs.map_settings</title>
<indexterm>
<primary>Lua API</primary>
<secondary>map_settings</secondary>
</indexterm>
<para>The map setting window</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_camera">
<title>darktable.gui.libs.camera</title>
<indexterm>
<primary>Lua API</primary>
<secondary>camera</secondary>
</indexterm>
<para>The camera selection UI</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_location">
<title>darktable.gui.libs.location</title>
<indexterm>
<primary>Lua API</primary>
<secondary>location</secondary>
</indexterm>
<para>The location ui</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_backgroundjobs">
<title>darktable.gui.libs.backgroundjobs</title>
<indexterm>
<primary>Lua API</primary>
<secondary>backgroundjobs</secondary>
</indexterm>
<para>The window displaying the currently running jobs</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="darktable_gui_libs_print_settings">
<title>darktable.gui.libs.print_settings</title>
<indexterm>
<primary>Lua API</primary>
<secondary>print_settings</secondary>
</indexterm>
<para>The settings window in the print view</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

</section>

<section status="final" id="darktable_guides">
<title>darktable.guides</title>
<indexterm>
<primary>Lua API</primary>
<secondary>guides</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>Guide lines to overlay over an image in crop and rotate.</para>
<para>All guides are clipped to the drawing area.</para>

<section status="final" id="darktable_guides_register_guide">
<title>darktable.guides.register_guide</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register_guide</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_guides_register_guide_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback">draw_callback</link></emphasis> : function, 
	[<emphasis><link linkend="darktable_guides_register_guide_gui_callback">gui_callback</link></emphasis> : function]
)</synopsis>
<para>Register a new guide.</para>

<variablelist>
<varlistentry id="darktable_guides_register_guide_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name of the guide to show in the GUI.</para>

</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_draw_callback"><term>draw_callback</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback_cr">cr</link></emphasis> : <link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link>, 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback_x">x</link></emphasis> : float, 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback_y">y</link></emphasis> : float, 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback_width">width</link></emphasis> : float, 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback_height">height</link></emphasis> : float, 
	<emphasis><link linkend="darktable_guides_register_guide_draw_callback_zoom_scale">zoom_scale</link></emphasis> : float
)</synopsis>
<para>The function to call to draw the guide lines. The drawn lines will be stroked by darktable.</para>
<para>THIS IS RUNNING IN THE GUI THREAD AND HAS TO BE FAST!</para>

<variablelist>
<varlistentry id="darktable_guides_register_guide_draw_callback_cr"><term>cr</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The cairo object used for drawing.</para>

</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_draw_callback_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The x coordinate of the top left corner of the drawing area.</para>

</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_draw_callback_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The y coordinate of the top left corner of the drawing area.</para>

</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_draw_callback_width"><term>width</term><listitem>
<synopsis>float</synopsis>
<para>The width of the drawing area.</para>

</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_draw_callback_height"><term>height</term><listitem>
<synopsis>float</synopsis>
<para>The height of the drawing area.</para>

</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_draw_callback_zoom_scale"><term>zoom_scale</term><listitem>
<synopsis>float</synopsis>
<para>The current zoom_scale. Only needed when setting the line thickness.</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

<varlistentry id="darktable_guides_register_guide_gui_callback"><term>[gui_callback]</term><listitem>
<synopsis>function</synopsis>
<para>A function returning a widget to show when the guide is selected. It takes no arguments.</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_tags">
<title>darktable.tags</title>
<indexterm>
<primary>Lua API</primary>
<secondary>tags</secondary>
</indexterm>
<para>Allows access to all existing tags.</para>

<section status="final" id="darktable_tags__hash_">
<title>darktable.tags.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>Each existing tag has a numeric entry in the tags table - use ipairs to iterate over them.</para>

</section>

<section status="final" id="darktable_tags_create">
<title>darktable.tags.create</title>
<indexterm>
<primary>Lua API</primary>
<secondary>create</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_tags_create_name">name</link></emphasis> : string
)</synopsis>
<para>Creates a new tag and return it. If the tag exists return the existing tag.</para>

<variablelist>
<varlistentry id="darktable_tags_create_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name of the new tag.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_tags_find">
<title>darktable.tags.find</title>
<indexterm>
<primary>Lua API</primary>
<secondary>find</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_tags_find_name">name</link></emphasis> : string
) : <link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>Returns the tag object or nil if the tag doesn't exist.</para>

<variablelist>
<varlistentry id="darktable_tags_find_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name of the tag to find.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>The tag object or nil.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_tags_delete">
<title>darktable.tags.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_tags_delete_tag">tag</link></emphasis> : <link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link>
)</synopsis>
<para>Deletes the tag object, detaching it from all images.</para>

<variablelist>
<varlistentry id="darktable_tags_delete_tag"><term>tag</term><listitem>
<synopsis><link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>The tag to be deleted.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_tags_attach">
<title>darktable.tags.attach</title>
<indexterm>
<primary>Lua API</primary>
<secondary>attach</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_tags_attach_tag">tag</link></emphasis> : <link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link>, 
	<emphasis><link linkend="darktable_tags_attach_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
)</synopsis>
<para>Attach a tag to an image; the order of the parameters can be reversed.</para>

<variablelist>
<varlistentry id="darktable_tags_attach_tag"><term>tag</term><listitem>
<synopsis><link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>The tag to be attached.</para>

</listitem></varlistentry>

<varlistentry id="darktable_tags_attach_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to attach the tag to.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_tags_detach">
<title>darktable.tags.detach</title>
<indexterm>
<primary>Lua API</primary>
<secondary>detach</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_tags_detach_tag">tag</link></emphasis> : <link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link>, 
	<emphasis><link linkend="darktable_tags_detach_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
)</synopsis>
<para>Detach a tag from an image; the order of the parameters can be reversed.</para>

<variablelist>
<varlistentry id="darktable_tags_detach_tag"><term>tag</term><listitem>
<synopsis><link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>The tag to be detached.</para>

</listitem></varlistentry>

<varlistentry id="darktable_tags_detach_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to detach the tag from.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_tags_get_tags">
<title>darktable.tags.get_tags</title>
<indexterm>
<primary>Lua API</primary>
<secondary>get_tags</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_tags_get_tags_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
) : table of <link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>Gets all tags attached to an image.</para>

<variablelist>
<varlistentry id="darktable_tags_get_tags_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to get the tags from.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>table of <link linkend="types_dt_lua_tag_t">types.dt_lua_tag_t</link></synopsis>
<para>A table of tags that are attached to the image.</para>

</listitem></varlistentry>


</variablelist>
</section>

</section>

<section status="final" id="darktable_configuration">
<title>darktable.configuration</title>
<indexterm>
<primary>Lua API</primary>
<secondary>configuration</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>This table regroups values that describe details of the configuration of darktable.</para>

<section status="final" id="darktable_configuration_version">
<title>darktable.configuration.version</title>
<indexterm>
<primary>Lua API</primary>
<secondary>version</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The version number of darktable.</para>

</section>

<section status="final" id="darktable_configuration_has_gui">
<title>darktable.configuration.has_gui</title>
<indexterm>
<primary>Lua API</primary>
<secondary>has_gui</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if darktable has a GUI (launched through the main darktable command, not darktable-cli).</para>

</section>

<section status="final" id="darktable_configuration_verbose">
<title>darktable.configuration.verbose</title>
<indexterm>
<primary>Lua API</primary>
<secondary>verbose</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the Lua logdomain is enabled.</para>

</section>

<section status="final" id="darktable_configuration_tmp_dir">
<title>darktable.configuration.tmp_dir</title>
<indexterm>
<primary>Lua API</primary>
<secondary>tmp_dir</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the directory where darktable will store temporary files.</para>

</section>

<section status="final" id="darktable_configuration_config_dir">
<title>darktable.configuration.config_dir</title>
<indexterm>
<primary>Lua API</primary>
<secondary>config_dir</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the directory where darktable will find its global configuration objects (modules).</para>

</section>

<section status="final" id="darktable_configuration_cache_dir">
<title>darktable.configuration.cache_dir</title>
<indexterm>
<primary>Lua API</primary>
<secondary>cache_dir</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the directory where darktable will store its mipmaps.</para>

</section>

<section status="final" id="darktable_configuration_api_version_major">
<title>darktable.configuration.api_version_major</title>
<indexterm>
<primary>Lua API</primary>
<secondary>api_version_major</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The major version number of the lua API.</para>

</section>

<section status="final" id="darktable_configuration_api_version_minor">
<title>darktable.configuration.api_version_minor</title>
<indexterm>
<primary>Lua API</primary>
<secondary>api_version_minor</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The minor version number of the lua API.</para>

</section>

<section status="final" id="darktable_configuration_api_version_patch">
<title>darktable.configuration.api_version_patch</title>
<indexterm>
<primary>Lua API</primary>
<secondary>api_version_patch</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The patch version number of the lua API.</para>

</section>

<section status="final" id="darktable_configuration_api_version_suffix">
<title>darktable.configuration.api_version_suffix</title>
<indexterm>
<primary>Lua API</primary>
<secondary>api_version_suffix</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The version suffix of the lua API.</para>

</section>

<section status="final" id="darktable_configuration_api_version_string">
<title>darktable.configuration.api_version_string</title>
<indexterm>
<primary>Lua API</primary>
<secondary>api_version_string</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The version description of the lua API. This is a string compatible with the semantic versioning convention</para>

</section>

<section status="final" id="darktable_configuration_check_version">
<title>darktable.configuration.check_version</title>
<indexterm>
<primary>Lua API</primary>
<secondary>check_version</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_configuration_check_version_module_name">module_name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_configuration_check_version____">...</link></emphasis> : table...
)</synopsis>
<para>Check that a module is compatible with the running version of darktable</para>
<para>Add the following line at the top of your module : </para>

<para><programlisting language="lua">darktable.configuration.check(...,{M,m,p},{M2,m2,p2})</programlisting></para>

<para>To document that your module has been tested with API version M.m.p and M2.m2.p2.</para>
<para>This will raise an error if the user is running a released version of DT and a warning if he is running a development version</para>
<para>(the ... here will automatically expand to your module name if used at the top of your script</para>

<variablelist>
<varlistentry id="darktable_configuration_check_version_module_name"><term>module_name</term><listitem>
<synopsis>string</synopsis>
<para>The name of the module to report on error</para>

</listitem></varlistentry>

<varlistentry id="darktable_configuration_check_version____"><term>...</term><listitem>
<synopsis>table...</synopsis>
<para>Tables of API versions that are known to work with the script</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_preferences">
<title>darktable.preferences</title>
<indexterm>
<primary>Lua API</primary>
<secondary>preferences</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>Lua allows you to manipulate preferences. Lua has its own namespace for preferences and you can't access nor write normal darktable preferences.</para>
<para>Preference handling functions take a _script_ parameter. This is a string used to avoid name collision in preferences (i.e namespace). Set it to something unique, usually the name of the script handling the preference.</para>
<para>Preference handling functions can't guess the type of a parameter. You must pass the type of the preference you are handling. </para>
<para>Note that the directory, enum, lua and file type preferences are stored internally as string. The user can only select valid values, but a lua script can set it to any string</para>

<section status="final" id="darktable_preferences_register">
<title>darktable.preferences.register</title>
<indexterm>
<primary>Lua API</primary>
<secondary>register</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_preferences_register_script">script</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_register_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_register_type">type</link></emphasis> : <link linkend="types_lua_pref_type">types.lua_pref_type</link>, 
	<emphasis><link linkend="darktable_preferences_register_label">label</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_register_tooltip">tooltip</link></emphasis> : string, 
	[<emphasis><link linkend="darktable_preferences_register_default">default</link></emphasis> : depends on type], 
	[<emphasis><link linkend="darktable_preferences_register_min">min</link></emphasis> : int or float], 
	[<emphasis><link linkend="darktable_preferences_register_max">max</link></emphasis> : int or float], 
	[<emphasis><link linkend="darktable_preferences_register_step">step</link></emphasis> : float], 
	[<emphasis><link linkend="darktable_preferences_register_values">values</link></emphasis> : string...], 
	[<emphasis><link linkend="darktable_preferences_register_wiget">wiget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>], 
	[<emphasis><link linkend="darktable_preferences_register_set_callback">set_callback</link></emphasis> : function]
)</synopsis>
<para>Creates a new preference entry in the Lua tab of the preference screen. If this function is not called the preference can't be set by the user (you can still read and write invisible preferences).</para>

<variablelist>
<varlistentry id="darktable_preferences_register_script"><term>script</term><listitem>
<synopsis>string</synopsis>
<para>Invisible prefix to guarantee unicity of preferences.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>A unique name used with the script part to identify the preference.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_type"><term>type</term><listitem>
<synopsis><link linkend="types_lua_pref_type">types.lua_pref_type</link></synopsis>
<para>The type of the preference - one of the string values described above.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_label"><term>label</term><listitem>
<synopsis>string</synopsis>
<para>The label displayed in the preference screen.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_tooltip"><term>tooltip</term><listitem>
<synopsis>string</synopsis>
<para>The tooltip to display in the preference menu.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_default"><term>[default]</term><listitem>
<synopsis>depends on type</synopsis>
<para>Default value to use when not set explicitely or by the user.</para>
<para>For the enum type of pref, this is mandatory</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_min"><term>[min]</term><listitem>
<synopsis>int or float</synopsis>
<para>Minimum value (integer and float preferences only).</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_max"><term>[max]</term><listitem>
<synopsis>int or float</synopsis>
<para>Maximum value (integer and float preferences only).</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_step"><term>[step]</term><listitem>
<synopsis>float</synopsis>
<para>Step of the spinner (float preferences only).</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_values"><term>[values]</term><listitem>
<synopsis>string...</synopsis>
<para>Other allowed values (enum preferences only)</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_wiget"><term>[wiget]</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget to use in preference(lua preferences only)</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_register_set_callback"><term>[set_callback]</term><listitem>
<synopsis>function( 
	<emphasis><link linkend="darktable_preferences_register_set_callback_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>A function called when the widget needs to be updated from the preference</para>

<variablelist>
<varlistentry id="darktable_preferences_register_set_callback_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget to update</para>

</listitem></varlistentry>

</variablelist>
</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_preferences_read">
<title>darktable.preferences.read</title>
<indexterm>
<primary>Lua API</primary>
<secondary>read</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_preferences_read_script">script</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_read_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_read_type">type</link></emphasis> : <link linkend="types_lua_pref_type">types.lua_pref_type</link>
) : depends on type</synopsis>
<para>Reads a value from a Lua preference.</para>

<variablelist>
<varlistentry id="darktable_preferences_read_script"><term>script</term><listitem>
<synopsis>string</synopsis>
<para>Invisible prefix to guarantee unicity of preferences.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_read_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name of the preference displayed in the preference screen.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_read_type"><term>type</term><listitem>
<synopsis><link linkend="types_lua_pref_type">types.lua_pref_type</link></synopsis>
<para>The type of the preference.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>depends on type</synopsis>
<para>The value of the preference.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_preferences_write">
<title>darktable.preferences.write</title>
<indexterm>
<primary>Lua API</primary>
<secondary>write</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_preferences_write_script">script</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_write_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_preferences_write_type">type</link></emphasis> : <link linkend="types_lua_pref_type">types.lua_pref_type</link>, 
	<emphasis><link linkend="darktable_preferences_write_value">value</link></emphasis> : depends on type
)</synopsis>
<para>Writes a value to a Lua preference.</para>

<variablelist>
<varlistentry id="darktable_preferences_write_script"><term>script</term><listitem>
<synopsis>string</synopsis>
<para>Invisible prefix to guarantee unicity of preferences.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_write_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name of the preference displayed in the preference screen.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_write_type"><term>type</term><listitem>
<synopsis><link linkend="types_lua_pref_type">types.lua_pref_type</link></synopsis>
<para>The type of the preference.</para>

</listitem></varlistentry>

<varlistentry id="darktable_preferences_write_value"><term>value</term><listitem>
<synopsis>depends on type</synopsis>
<para>The value to set the preference to.</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_styles">
<title>darktable.styles</title>
<indexterm>
<primary>Lua API</primary>
<secondary>styles</secondary>
</indexterm>
<para>This pseudo table allows you to access and manipulate styles.</para>

<section status="final" id="darktable_styles__hash_">
<title>darktable.styles.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>Each existing style has a numeric index; you can iterate them using ipairs.</para>

</section>

<section status="final" id="darktable_styles_create">
<title>darktable.styles.create</title>
<indexterm>
<primary>Lua API</primary>
<secondary>create</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_styles_create_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="darktable_styles_create_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_styles_create_description">description</link></emphasis> : string
) : <link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>Create a new style based on an image.</para>

<variablelist>
<varlistentry id="darktable_styles_create_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to create the style from.</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_create_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The name to give to the new style.</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_create_description"><term>description</term><listitem>
<synopsis>string</synopsis>
<para>The description of the new style.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>The new style object.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_styles_delete">
<title>darktable.styles.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_styles_delete_style">style</link></emphasis> : <link linkend="types_dt_style_t">types.dt_style_t</link>
)</synopsis>
<para>Deletes an existing style.</para>

<variablelist>
<varlistentry id="darktable_styles_delete_style"><term>style</term><listitem>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>the style to delete</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_styles_duplicate">
<title>darktable.styles.duplicate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>duplicate</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_styles_duplicate_style">style</link></emphasis> : <link linkend="types_dt_style_t">types.dt_style_t</link>, 
	<emphasis><link linkend="darktable_styles_duplicate_name">name</link></emphasis> : string, 
	<emphasis><link linkend="darktable_styles_duplicate_description">description</link></emphasis> : string
) : <link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>Create a new style based on an existing style.</para>

<variablelist>
<varlistentry id="darktable_styles_duplicate_style"><term>style</term><listitem>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>The style to base the new style on.</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_duplicate_name"><term>name</term><listitem>
<synopsis>string</synopsis>
<para>The new style's name.</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_duplicate_description"><term>description</term><listitem>
<synopsis>string</synopsis>
<para>The new style's description.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>The new style object.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_styles_apply">
<title>darktable.styles.apply</title>
<indexterm>
<primary>Lua API</primary>
<secondary>apply</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_styles_apply_style">style</link></emphasis> : <link linkend="types_dt_style_t">types.dt_style_t</link>, 
	<emphasis><link linkend="darktable_styles_apply_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
)</synopsis>
<para>Apply a style to an image. The order of parameters can be inverted.</para>

<variablelist>
<varlistentry id="darktable_styles_apply_style"><term>style</term><listitem>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>The style to use.</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_apply_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to apply the style to.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_styles_import">
<title>darktable.styles.import</title>
<indexterm>
<primary>Lua API</primary>
<secondary>import</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_styles_import_filename">filename</link></emphasis> : string
)</synopsis>
<para>Import a style from an external .dtstyle file</para>

<variablelist>
<varlistentry id="darktable_styles_import_filename"><term>filename</term><listitem>
<synopsis>string</synopsis>
<para>The file to import</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_styles_export">
<title>darktable.styles.export</title>
<indexterm>
<primary>Lua API</primary>
<secondary>export</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_styles_export_style">style</link></emphasis> : <link linkend="types_dt_style_t">types.dt_style_t</link>, 
	<emphasis><link linkend="darktable_styles_export_directory">directory</link></emphasis> : string, 
	<emphasis><link linkend="darktable_styles_export_overwrite">overwrite</link></emphasis> : boolean
)</synopsis>
<para>Export a style to an external .dtstyle file</para>

<variablelist>
<varlistentry id="darktable_styles_export_style"><term>style</term><listitem>
<synopsis><link linkend="types_dt_style_t">types.dt_style_t</link></synopsis>
<para>The style to export</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_export_directory"><term>directory</term><listitem>
<synopsis>string</synopsis>
<para>The directory to export to</para>

</listitem></varlistentry>

<varlistentry id="darktable_styles_export_overwrite"><term>overwrite</term><listitem>
<synopsis>boolean</synopsis>
<para>Is overwriting an existing file allowed</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_database">
<title>darktable.database</title>
<indexterm>
<primary>Lua API</primary>
<secondary>database</secondary>
</indexterm>
<para>Allows to access the database of images. Note that duplicate images (images with the same RAW but different XMP) will appear multiple times with different duplicate indexes. Also note that all images are here. This table is not influenced by any GUI filtering (collections, stars etc...).</para>

<section status="final" id="darktable_database__hash_">
<title>darktable.database.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Each image in the database appears with a numerical index; you can iterate them using ipairs.</para>

</section>

<section status="final" id="darktable_database_duplicate">
<title>darktable.database.duplicate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>duplicate</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_database_duplicate_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
) : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Creates a duplicate of an image and returns it.</para>

<variablelist>
<varlistentry id="darktable_database_duplicate_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>the image to duplicate</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The new image object.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_database_import">
<title>darktable.database.import</title>
<indexterm>
<primary>Lua API</primary>
<secondary>import</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_database_import_location">location</link></emphasis> : string
) : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Imports new images into the database.</para>

<variablelist>
<varlistentry id="darktable_database_import_location"><term>location</term><listitem>
<synopsis>string</synopsis>
<para>The filename or directory to import images from.

NOTE: If the images are set to be imported recursively in preferences only the toplevel film is returned (the one whose path was given as a parameter).

NOTE2: If the parameter is a directory the call is non-blocking; the film object will not have the newly imported images yet. Use a post-import-film filtering on that film to react when images are actually imported.


</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The created image if an image is imported or the toplevel film object if a film was imported.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_database_move_image">
<title>darktable.database.move_image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>move_image</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_database_move_image_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="darktable_database_move_image_film">film</link></emphasis> : <link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link>
)</synopsis>
<para>Physically moves an image (and all its duplicates) to another film.</para>
<para>This will move the image file, the related XMP and all XMP for the duplicates to the directory of the new film</para>
<para>Note that the parameter order is not relevant.</para>

<variablelist>
<varlistentry id="darktable_database_move_image_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to move</para>

</listitem></varlistentry>

<varlistentry id="darktable_database_move_image_film"><term>film</term><listitem>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>The film to move to</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_database_copy_image">
<title>darktable.database.copy_image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>copy_image</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_database_copy_image_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="darktable_database_copy_image_film">film</link></emphasis> : <link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link>
) : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Physically copies an image to another film.</para>
<para>This will copy the image file and the related XMP to the directory of the new film</para>
<para>If there is already a file with the same name as the image file, it will create a duplicate from that file instead</para>
<para>Note that the parameter order is not relevant.</para>

<variablelist>
<varlistentry id="darktable_database_copy_image_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to copy</para>

</listitem></varlistentry>

<varlistentry id="darktable_database_copy_image_film"><term>film</term><listitem>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>The film to copy to</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The new image</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" >
<title>darktable.database.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<para>see <link linkend="types_dt_lua_image_t_delete">types.dt_lua_image_t.delete</link></para>
</section>

</section>

<section status="final" id="darktable_collection">
<title>darktable.collection</title>
<indexterm>
<primary>Lua API</primary>
<secondary>collection</secondary>
</indexterm>
<para>Allows to access the currently worked on images, i.e the ones selected by the collection lib. Filtering (rating etc) does not change that collection.</para>

<section status="final" id="darktable_collection__hash_">
<title>darktable.collection.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Each image in the collection appears with a numerical index; you can iterate them using ipairs.</para>

</section>

</section>

<section status="final" id="darktable_control">
<title>darktable.control</title>
<indexterm>
<primary>Lua API</primary>
<secondary>control</secondary>
</indexterm>
<para>This table contain function to manipulate the control flow of lua programs. It provides ways to do background jobs and other related functions</para>

<section status="final" id="darktable_control_ending">
<title>darktable.control.ending</title>
<indexterm>
<primary>Lua API</primary>
<secondary>ending</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>TRUE when darktable is terminating</para>
<para>Use this variable to detect when you should finish long running jobs</para>

</section>

<section status="final" id="darktable_control_dispatch">
<title>darktable.control.dispatch</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dispatch</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_control_dispatch_function">function</link></emphasis> : function, 
	<emphasis><link linkend="darktable_control_dispatch____">...</link></emphasis> : anything
)</synopsis>
<para>Runs a function in the background. This function will be run at a later point, after luarc has finished running. If you do a loop in such a function, please check <link linkend="darktable_control_ending">darktable.control.ending</link> in your loop to finish the function when DT exits</para>

<variablelist>
<varlistentry id="darktable_control_dispatch_function"><term>function</term><listitem>
<synopsis>function</synopsis>
<para>The call to dispatch</para>

</listitem></varlistentry>

<varlistentry id="darktable_control_dispatch____"><term>...</term><listitem>
<synopsis>anything</synopsis>
<para>extra parameters to pass to the function</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_control_sleep">
<title>darktable.control.sleep</title>
<indexterm>
<primary>Lua API</primary>
<secondary>sleep</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_control_sleep_delay">delay</link></emphasis> : int
)</synopsis>
<para>Suspends execution while not blocking darktable</para>

<variablelist>
<varlistentry id="darktable_control_sleep_delay"><term>delay</term><listitem>
<synopsis>int</synopsis>
<para>The delay in millisecond to sleep</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="darktable_control_execute">
<title>darktable.control.execute</title>
<indexterm>
<primary>Lua API</primary>
<secondary>execute</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_control_execute_command">command</link></emphasis> : string
) : int</synopsis>
<para>Run a command in a shell while not blocking darktable</para>

<variablelist>
<varlistentry id="darktable_control_execute_command"><term>command</term><listitem>
<synopsis>string</synopsis>
<para>The command to run, as in 'sh -c'</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>int</synopsis>
<para>The result of the system call</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_control_read">
<title>darktable.control.read</title>
<indexterm>
<primary>Lua API</primary>
<secondary>read</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_control_read_file">file</link></emphasis> : file
)</synopsis>
<para>Block until a file is readable while not blocking darktable</para>
<para><emphasis>This function is not available on Windows builds</emphasis></para>

<variablelist>
<varlistentry id="darktable_control_read_file"><term>file</term><listitem>
<synopsis>file</synopsis>
<para>The file object to wait for</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_gettext">
<title>darktable.gettext</title>
<indexterm>
<primary>Lua API</primary>
<secondary>gettext</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>This table contains functions related to translating lua scripts</para>

<section status="final" id="darktable_gettext_gettext">
<title>darktable.gettext.gettext</title>
<indexterm>
<primary>Lua API</primary>
<secondary>gettext</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gettext_gettext_msgid">msgid</link></emphasis> : string
) : string</synopsis>
<para>Translate a string using the darktable textdomain</para>

<variablelist>
<varlistentry id="darktable_gettext_gettext_msgid"><term>msgid</term><listitem>
<synopsis>string</synopsis>
<para>The string to translate</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>The translated string</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gettext_dgettext">
<title>darktable.gettext.dgettext</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dgettext</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gettext_dgettext_domainname">domainname</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_dgettext_msgid">msgid</link></emphasis> : string
) : string</synopsis>
<para>Translate a string using the specified textdomain</para>

<variablelist>
<varlistentry id="darktable_gettext_dgettext_domainname"><term>domainname</term><listitem>
<synopsis>string</synopsis>
<para>The domain to use for that translation</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_dgettext_msgid"><term>msgid</term><listitem>
<synopsis>string</synopsis>
<para>The string to translate</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>The translated string</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gettext_ngettext">
<title>darktable.gettext.ngettext</title>
<indexterm>
<primary>Lua API</primary>
<secondary>ngettext</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gettext_ngettext_msgid">msgid</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_ngettext_msgid_plural">msgid_plural</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_ngettext_n">n</link></emphasis> : int
) : string</synopsis>
<para>Translate a string depending on the number of objects using the darktable textdomain</para>

<variablelist>
<varlistentry id="darktable_gettext_ngettext_msgid"><term>msgid</term><listitem>
<synopsis>string</synopsis>
<para>The string to translate</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_ngettext_msgid_plural"><term>msgid_plural</term><listitem>
<synopsis>string</synopsis>
<para>The string to translate in plural form</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_ngettext_n"><term>n</term><listitem>
<synopsis>int</synopsis>
<para>The number of objects</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>The translated string</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gettext_dngettext">
<title>darktable.gettext.dngettext</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dngettext</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gettext_dngettext_domainname">domainname</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_dngettext_msgid">msgid</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_dngettext_msgid_plural">msgid_plural</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_dngettext_n">n</link></emphasis> : int
) : string</synopsis>
<para>Translate a string depending on the number of objects using the specified textdomain</para>

<variablelist>
<varlistentry id="darktable_gettext_dngettext_domainname"><term>domainname</term><listitem>
<synopsis>string</synopsis>
<para>The domain to use for that translation</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_dngettext_msgid"><term>msgid</term><listitem>
<synopsis>string</synopsis>
<para>The string to translate</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_dngettext_msgid_plural"><term>msgid_plural</term><listitem>
<synopsis>string</synopsis>
<para>The string to translate in plural form</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_dngettext_n"><term>n</term><listitem>
<synopsis>int</synopsis>
<para>The number of objects</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>The translated string</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_gettext_bindtextdomain">
<title>darktable.gettext.bindtextdomain</title>
<indexterm>
<primary>Lua API</primary>
<secondary>bindtextdomain</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_gettext_bindtextdomain_domainname">domainname</link></emphasis> : string, 
	<emphasis><link linkend="darktable_gettext_bindtextdomain_dirname">dirname</link></emphasis> : string
)</synopsis>
<para>Tell gettext where to find the .mo file translating messages for a particular domain</para>

<variablelist>
<varlistentry id="darktable_gettext_bindtextdomain_domainname"><term>domainname</term><listitem>
<synopsis>string</synopsis>
<para>The domain to use for that translation</para>

</listitem></varlistentry>

<varlistentry id="darktable_gettext_bindtextdomain_dirname"><term>dirname</term><listitem>
<synopsis>string</synopsis>
<para>The base directory to look for the file. The file should be placed in <emphasis>dirname</emphasis>/<emphasis>locale name</emphasis>/LC_MESSAGES/<emphasis>domain</emphasis>.mo</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="darktable_debug">
<title>darktable.debug</title>
<indexterm>
<primary>Lua API</primary>
<secondary>debug</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>This section must be activated separately by calling

require "darktable.debug"
</para>

<section status="final" id="darktable_debug_dump">
<title>darktable.debug.dump</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dump</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_debug_dump_object">object</link></emphasis> : anything, 
	[<emphasis><link linkend="darktable_debug_dump_name">name</link></emphasis> : string], 
	[<emphasis><link linkend="darktable_debug_dump_known">known</link></emphasis> : table]
) : string</synopsis>
<para>This will return a string describing everything Lua knows about an object, used to know what an object is.

This function is recursion-safe and can be used to dump _G if needed.</para>

<variablelist>
<varlistentry id="darktable_debug_dump_object"><term>object</term><listitem>
<synopsis>anything</synopsis>
<para>The object to dump.</para>

</listitem></varlistentry>

<varlistentry id="darktable_debug_dump_name"><term>[name]</term><listitem>
<synopsis>string</synopsis>
<para>A name to use for the object.</para>

</listitem></varlistentry>

<varlistentry id="darktable_debug_dump_known"><term>[known]</term><listitem>
<synopsis>table</synopsis>
<para>A table of object,string pairs. Any object in that table will not be dumped, the string will be printed instead.</para>
<para>defaults to <link linkend="darktable_debug_known">darktable.debug.known</link> if not set</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>A string containing a text description of the object - can be very long.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="darktable_debug_debug">
<title>darktable.debug.debug</title>
<indexterm>
<primary>Lua API</primary>
<secondary>debug</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>Initialized to false; set it to true to also dump information about metatables.</para>

</section>

<section status="final" id="darktable_debug_max_depth">
<title>darktable.debug.max_depth</title>
<indexterm>
<primary>Lua API</primary>
<secondary>max_depth</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>Initialized to 10; The maximum depth to recursively dump content.</para>

</section>

<section status="final" id="darktable_debug_known">
<title>darktable.debug.known</title>
<indexterm>
<primary>Lua API</primary>
<secondary>known</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>A table containing the default value of <link linkend="darktable_debug_dump_known">darktable.debug.dump.known</link></para>

</section>

<section status="final" id="darktable_debug_type">
<title>darktable.debug.type</title>
<indexterm>
<primary>Lua API</primary>
<secondary>type</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="darktable_debug_type_object">object</link></emphasis> : anything
) : string</synopsis>
<para>Similar to the system function type() but it will return the real type instead of "userdata" for darktable specific objects.</para>

<variablelist>
<varlistentry id="darktable_debug_type_object"><term>object</term><listitem>
<synopsis>anything</synopsis>
<para>The object whose type must be reported.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>string</synopsis>
<para>A string describing the type of the object.</para>

</listitem></varlistentry>


</variablelist>
</section>

</section>

</section>

<section status="final" id="types">
<title>types</title>
<indexterm>
<primary>Lua API</primary>
<secondary>types</secondary>
</indexterm>
<para>This section documents types that are specific to darktable's Lua API.</para>

<section status="final" id="types_dt_lua_image_t">
<title>types.dt_lua_image_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_image_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Image objects represent an image in the database. This is slightly different from a file on disk since a file can have multiple developments.

	Note that this is the real image object; changing the value of a field will immediately change it in darktable and will be reflected on any copy of that image object you may have kept.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.dt_lua_image_t.attach_tag</title>
<indexterm>
<primary>Lua API</primary>
<secondary>attach_tag</secondary>
</indexterm>
<para>see <link linkend="darktable_tags_attach">darktable.tags.attach</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.detach_tag</title>
<indexterm>
<primary>Lua API</primary>
<secondary>detach_tag</secondary>
</indexterm>
<para>see <link linkend="darktable_tags_detach">darktable.tags.detach</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.get_tags</title>
<indexterm>
<primary>Lua API</primary>
<secondary>get_tags</secondary>
</indexterm>
<para>see <link linkend="darktable_tags_get_tags">darktable.tags.get_tags</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.create_style</title>
<indexterm>
<primary>Lua API</primary>
<secondary>create_style</secondary>
</indexterm>
<para>see <link linkend="darktable_styles_create">darktable.styles.create</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.apply_style</title>
<indexterm>
<primary>Lua API</primary>
<secondary>apply_style</secondary>
</indexterm>
<para>see <link linkend="darktable_styles_apply">darktable.styles.apply</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.duplicate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>duplicate</secondary>
</indexterm>
<para>see <link linkend="darktable_database_duplicate">darktable.database.duplicate</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.move</title>
<indexterm>
<primary>Lua API</primary>
<secondary>move</secondary>
</indexterm>
<para>see <link linkend="darktable_database_move_image">darktable.database.move_image</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.copy</title>
<indexterm>
<primary>Lua API</primary>
<secondary>copy</secondary>
</indexterm>
<para>see <link linkend="darktable_database_copy_image">darktable.database.copy_image</link></para>
</section>

<section status="final" id="types_dt_lua_image_t_id">
<title>types.dt_lua_image_t.id</title>
<indexterm>
<primary>Lua API</primary>
<secondary>id</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>A unique id identifying the image in the database.</para>

</section>

<section status="final" id="types_dt_lua_image_t_path">
<title>types.dt_lua_image_t.path</title>
<indexterm>
<primary>Lua API</primary>
<secondary>path</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The file the directory containing the image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_film">
<title>types.dt_lua_image_t.film</title>
<indexterm>
<primary>Lua API</primary>
<secondary>film</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>The film object that contains this image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_filename">
<title>types.dt_lua_image_t.filename</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filename</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The filename of the image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_sidecar">
<title>types.dt_lua_image_t.sidecar</title>
<indexterm>
<primary>Lua API</primary>
<secondary>sidecar</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The filename of the image's sidecar file.</para>

</section>

<section status="final" id="types_dt_lua_image_t_duplicate_index">
<title>types.dt_lua_image_t.duplicate_index</title>
<indexterm>
<primary>Lua API</primary>
<secondary>duplicate_index</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>If there are multiple images based on a same file, each will have a unique number, starting from 0.</para>

</section>

<section status="final" id="types_dt_lua_image_t_publisher">
<title>types.dt_lua_image_t.publisher</title>
<indexterm>
<primary>Lua API</primary>
<secondary>publisher</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The publisher field of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_title">
<title>types.dt_lua_image_t.title</title>
<indexterm>
<primary>Lua API</primary>
<secondary>title</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The title field of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_creator">
<title>types.dt_lua_image_t.creator</title>
<indexterm>
<primary>Lua API</primary>
<secondary>creator</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The creator field of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_rights">
<title>types.dt_lua_image_t.rights</title>
<indexterm>
<primary>Lua API</primary>
<secondary>rights</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The rights field of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_description">
<title>types.dt_lua_image_t.description</title>
<indexterm>
<primary>Lua API</primary>
<secondary>description</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The description field for the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_maker">
<title>types.dt_lua_image_t.exif_maker</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_maker</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The maker exif data.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_model">
<title>types.dt_lua_image_t.exif_model</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_model</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The camera model used.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_lens">
<title>types.dt_lua_image_t.exif_lens</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_lens</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The id string of the lens used.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_aperture">
<title>types.dt_lua_image_t.exif_aperture</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_aperture</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The aperture saved in the exif data.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_exposure">
<title>types.dt_lua_image_t.exif_exposure</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_exposure</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The exposure time of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_focal_length">
<title>types.dt_lua_image_t.exif_focal_length</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_focal_length</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The focal length of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_iso">
<title>types.dt_lua_image_t.exif_iso</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_iso</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The iso used on the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_datetime_taken">
<title>types.dt_lua_image_t.exif_datetime_taken</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_datetime_taken</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The date and time of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_focus_distance">
<title>types.dt_lua_image_t.exif_focus_distance</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_focus_distance</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The distance of the subject.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_exif_crop">
<title>types.dt_lua_image_t.exif_crop</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exif_crop</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The exif crop data.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_latitude">
<title>types.dt_lua_image_t.latitude</title>
<indexterm>
<primary>Lua API</primary>
<secondary>latitude</secondary>
</indexterm>
<synopsis>float or nil</synopsis>
<para>GPS latitude data of the image, nil if not set.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_longitude">
<title>types.dt_lua_image_t.longitude</title>
<indexterm>
<primary>Lua API</primary>
<secondary>longitude</secondary>
</indexterm>
<synopsis>float or nil</synopsis>
<para>GPS longitude data of the image, nil if not set.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_elevation">
<title>types.dt_lua_image_t.elevation</title>
<indexterm>
<primary>Lua API</primary>
<secondary>elevation</secondary>
</indexterm>
<synopsis>float or nil</synopsis>
<para>GPS altitude data of the image, nil if not set.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_is_raw">
<title>types.dt_lua_image_t.is_raw</title>
<indexterm>
<primary>Lua API</primary>
<secondary>is_raw</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the image is a RAW file.</para>

</section>

<section status="final" id="types_dt_lua_image_t_is_ldr">
<title>types.dt_lua_image_t.is_ldr</title>
<indexterm>
<primary>Lua API</primary>
<secondary>is_ldr</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the image is a ldr image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_is_hdr">
<title>types.dt_lua_image_t.is_hdr</title>
<indexterm>
<primary>Lua API</primary>
<secondary>is_hdr</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the image is a hdr image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_has_txt">
<title>types.dt_lua_image_t.has_txt</title>
<indexterm>
<primary>Lua API</primary>
<secondary>has_txt</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the image has a txt sidecar file.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_width">
<title>types.dt_lua_image_t.width</title>
<indexterm>
<primary>Lua API</primary>
<secondary>width</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The width of the image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_height">
<title>types.dt_lua_image_t.height</title>
<indexterm>
<primary>Lua API</primary>
<secondary>height</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The height of the image.</para>

</section>

<section status="final" id="types_dt_lua_image_t_rating">
<title>types.dt_lua_image_t.rating</title>
<indexterm>
<primary>Lua API</primary>
<secondary>rating</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The rating of the image (-1 for rejected).</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_red">
<title>types.dt_lua_image_t.red</title>
<indexterm>
<primary>Lua API</primary>
<secondary>red</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the image has the corresponding colorlabel.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" >
<title>types.dt_lua_image_t.blue</title>
<indexterm>
<primary>Lua API</primary>
<secondary>blue</secondary>
</indexterm>
<para>see <link linkend="types_dt_lua_image_t_red">types.dt_lua_image_t.red</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.green</title>
<indexterm>
<primary>Lua API</primary>
<secondary>green</secondary>
</indexterm>
<para>see <link linkend="types_dt_lua_image_t_red">types.dt_lua_image_t.red</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.yellow</title>
<indexterm>
<primary>Lua API</primary>
<secondary>yellow</secondary>
</indexterm>
<para>see <link linkend="types_dt_lua_image_t_red">types.dt_lua_image_t.red</link></para>
</section>

<section status="final" >
<title>types.dt_lua_image_t.purple</title>
<indexterm>
<primary>Lua API</primary>
<secondary>purple</secondary>
</indexterm>
<para>see <link linkend="types_dt_lua_image_t_red">types.dt_lua_image_t.red</link></para>
</section>

<section status="final" id="types_dt_lua_image_t_reset">
<title>types.dt_lua_image_t.reset</title>
<indexterm>
<primary>Lua API</primary>
<secondary>reset</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Removes all processing from the image, resetting it back to its original state</para>

<variablelist>
<varlistentry id="types_dt_lua_image_t_reset_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image whose history will be deleted</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_image_t_delete">
<title>types.dt_lua_image_t.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Removes an image from the database</para>

<variablelist>
<varlistentry id="types_dt_lua_image_t_delete_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image to remove</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_image_t_group_with">
<title>types.dt_lua_image_t.group_with</title>
<indexterm>
<primary>Lua API</primary>
<secondary>group_with</secondary>
</indexterm>
<synopsis>self:function( 
	[<emphasis><link linkend="types_dt_lua_image_t_group_with_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>]
)</synopsis>
<para>Puts the first image in the same group as the second image. If no second image is provided the image will be in its own group.</para>

<variablelist>
<varlistentry id="types_dt_lua_image_t_group_with_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image whose group must be changed.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_image_t_group_with_image"><term>[image]</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image we want to group with.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_image_t_make_group_leader">
<title>types.dt_lua_image_t.make_group_leader</title>
<indexterm>
<primary>Lua API</primary>
<secondary>make_group_leader</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Makes the image the leader of its group.</para>

<variablelist>
<varlistentry id="types_dt_lua_image_t_make_group_leader_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image we want as the leader.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_image_t_get_group_members">
<title>types.dt_lua_image_t.get_group_members</title>
<indexterm>
<primary>Lua API</primary>
<secondary>get_group_members</secondary>
</indexterm>
<synopsis>self:function( 
) : table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>Returns a table containing all <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link> of the group. The group leader is both at a numeric key and at the "leader" special key (so you probably want to use ipairs to iterate through that table).</para>

<variablelist>
<varlistentry id="types_dt_lua_image_t_get_group_members_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image whose group we are querying.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>table of <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>A table of image objects containing all images that are in the same group as the image.</para>

</listitem></varlistentry>


</variablelist>
</section>

<section status="final" id="types_dt_lua_image_t_group_leader">
<title>types.dt_lua_image_t.group_leader</title>
<indexterm>
<primary>Lua API</primary>
<secondary>group_leader</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image which is the leader of the group this image is a member of.</para>

</section>

<section status="final" id="types_dt_lua_image_t_local_copy">
<title>types.dt_lua_image_t.local_copy</title>
<indexterm>
<primary>Lua API</primary>
<secondary>local_copy</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the image has a copy in the local cache</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_image_t_drop_cache">
<title>types.dt_lua_image_t.drop_cache</title>
<indexterm>
<primary>Lua API</primary>
<secondary>drop_cache</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>drops the cached version of this image.</para>
<para>This function should be called if an image is modified out of darktable to force DT to regenerate the thumbnail</para>
<para>darktable will regenerate the thumbnail by itself when it is needed</para>

<variablelist>
<varlistentry id="types_dt_lua_image_t_drop_cache_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image whose cache must be dropped.</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_t">
<title>types.dt_imageio_module_format_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A virtual type representing all format types.</para>

<section status="final" id="types_dt_imageio_module_format_t_plugin_name">
<title>types.dt_imageio_module_format_t.plugin_name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>plugin_name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>A unique name for the plugin.</para>

</section>

<section status="final" id="types_dt_imageio_module_format_t_name">
<title>types.dt_imageio_module_format_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>A human readable name for the plugin.</para>

</section>

<section status="final" id="types_dt_imageio_module_format_t_extension">
<title>types.dt_imageio_module_format_t.extension</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extension</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The typical filename extension for that format.</para>

</section>

<section status="final" id="types_dt_imageio_module_format_t_mime">
<title>types.dt_imageio_module_format_t.mime</title>
<indexterm>
<primary>Lua API</primary>
<secondary>mime</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The mime type associated with the format.</para>

</section>

<section status="final" id="types_dt_imageio_module_format_t_max_width">
<title>types.dt_imageio_module_format_t.max_width</title>
<indexterm>
<primary>Lua API</primary>
<secondary>max_width</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The max width allowed for the format (0 = unlimited).</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_t_max_height">
<title>types.dt_imageio_module_format_t.max_height</title>
<indexterm>
<primary>Lua API</primary>
<secondary>max_height</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The max height allowed for the format (0 = unlimited).</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_t_write_image">
<title>types.dt_imageio_module_format_t.write_image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>write_image</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_imageio_module_format_t_write_image_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="types_dt_imageio_module_format_t_write_image_filename">filename</link></emphasis> : string, 
	[<emphasis><link linkend="types_dt_imageio_module_format_t_write_image_allow_upscale">allow_upscale</link></emphasis> : boolean]
) : boolean</synopsis>
<para>Exports an image to a file. This is a blocking operation that will not return until the image is exported.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_implicit_yield">implicit_yield</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="types_dt_imageio_module_format_t_write_image_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The format that will be used to export.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_imageio_module_format_t_write_image_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image object to export.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_imageio_module_format_t_write_image_filename"><term>filename</term><listitem>
<synopsis>string</synopsis>
<para>The filename to export to.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_imageio_module_format_t_write_image_allow_upscale"><term>[allow_upscale]</term><listitem>
<synopsis>boolean</synopsis>
<para>Set to true to allow upscaling of the image.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>boolean</synopsis>
<para>Returns true on success.</para>

</listitem></varlistentry>


</variablelist>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_png">
<title>types.dt_imageio_module_format_data_png</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_png</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to png.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_png_bpp">
<title>types.dt_imageio_module_format_data_png.bpp</title>
<indexterm>
<primary>Lua API</primary>
<secondary>bpp</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The bpp parameter to use when exporting.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_tiff">
<title>types.dt_imageio_module_format_data_tiff</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_tiff</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to tiff.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_tiff_bpp">
<title>types.dt_imageio_module_format_data_tiff.bpp</title>
<indexterm>
<primary>Lua API</primary>
<secondary>bpp</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The bpp parameter to use when exporting.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_exr">
<title>types.dt_imageio_module_format_data_exr</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_exr</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to exr.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_exr_compression">
<title>types.dt_imageio_module_format_data_exr.compression</title>
<indexterm>
<primary>Lua API</primary>
<secondary>compression</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The compression parameter to use when exporting.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_copy">
<title>types.dt_imageio_module_format_data_copy</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_copy</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to copy.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pfm">
<title>types.dt_imageio_module_format_data_pfm</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_pfm</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to pfm.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_jpeg">
<title>types.dt_imageio_module_format_data_jpeg</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_jpeg</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to jpeg.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_jpeg_quality">
<title>types.dt_imageio_module_format_data_jpeg.quality</title>
<indexterm>
<primary>Lua API</primary>
<secondary>quality</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The quality to use at export time.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_ppm">
<title>types.dt_imageio_module_format_data_ppm</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_ppm</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to ppm.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_webp">
<title>types.dt_imageio_module_format_data_webp</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_webp</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to webp.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_webp_quality">
<title>types.dt_imageio_module_format_data_webp.quality</title>
<indexterm>
<primary>Lua API</primary>
<secondary>quality</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The quality to use at export time.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_webp_comp_type">
<title>types.dt_imageio_module_format_data_webp.comp_type</title>
<indexterm>
<primary>Lua API</primary>
<secondary>comp_type</secondary>
</indexterm>
<synopsis><link linkend="types_comp_type_t">types.comp_type_t</link></synopsis>
<para>The overall quality to use; can be one of "webp_lossy" or "webp_lossless".</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_webp_hint">
<title>types.dt_imageio_module_format_data_webp.hint</title>
<indexterm>
<primary>Lua API</primary>
<secondary>hint</secondary>
</indexterm>
<synopsis><link linkend="types_hint_t">types.hint_t</link></synopsis>
<para>A hint on the overall content of the image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_j2k">
<title>types.dt_imageio_module_format_data_j2k</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_j2k</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to jpeg2000.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_j2k_quality">
<title>types.dt_imageio_module_format_data_j2k.quality</title>
<indexterm>
<primary>Lua API</primary>
<secondary>quality</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The quality to use at export time.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_j2k_bpp">
<title>types.dt_imageio_module_format_data_j2k.bpp</title>
<indexterm>
<primary>Lua API</primary>
<secondary>bpp</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The bpp parameter to use when exporting.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_j2k_format">
<title>types.dt_imageio_module_format_data_j2k.format</title>
<indexterm>
<primary>Lua API</primary>
<secondary>format</secondary>
</indexterm>
<synopsis><link linkend="types_dt_imageio_j2k_format_t">types.dt_imageio_j2k_format_t</link></synopsis>
<para>The format to use.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_j2k_preset">
<title>types.dt_imageio_module_format_data_j2k.preset</title>
<indexterm>
<primary>Lua API</primary>
<secondary>preset</secondary>
</indexterm>
<synopsis><link linkend="types_dt_imageio_j2k_preset_t">types.dt_imageio_j2k_preset_t</link></synopsis>
<para>The preset to use.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf">
<title>types.dt_imageio_module_format_data_pdf</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_format_data_pdf</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Type object describing parameters to export to pdf.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_format_data_pdf_dpi">
<title>types.dt_imageio_module_format_data_pdf.dpi</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dpi</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The dot per inch value to use at export</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_icc">
<title>types.dt_imageio_module_format_data_pdf.icc</title>
<indexterm>
<primary>Lua API</primary>
<secondary>icc</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>Should the images be tagged with their embedded profile</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_border">
<title>types.dt_imageio_module_format_data_pdf.border</title>
<indexterm>
<primary>Lua API</primary>
<secondary>border</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>Empty space around the PDF images</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_orientation">
<title>types.dt_imageio_module_format_data_pdf.orientation</title>
<indexterm>
<primary>Lua API</primary>
<secondary>orientation</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>Orientation of the pages in the document</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_title">
<title>types.dt_imageio_module_format_data_pdf.title</title>
<indexterm>
<primary>Lua API</primary>
<secondary>title</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The title for the document
  types.dt_imageio_module_format_data_pdf.rotate:set_text([[Should the images be rotated to match the PDF orientation</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_mode">
<title>types.dt_imageio_module_format_data_pdf.mode</title>
<indexterm>
<primary>Lua API</primary>
<secondary>mode</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The image mode to use at export time</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_size">
<title>types.dt_imageio_module_format_data_pdf.size</title>
<indexterm>
<primary>Lua API</primary>
<secondary>size</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The paper size to use</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_compression">
<title>types.dt_imageio_module_format_data_pdf.compression</title>
<indexterm>
<primary>Lua API</primary>
<secondary>compression</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>Compression mode to use for images</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_pages">
<title>types.dt_imageio_module_format_data_pdf.pages</title>
<indexterm>
<primary>Lua API</primary>
<secondary>pages</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The page type to use</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_format_data_pdf_rotate">
<title>types.dt_imageio_module_format_data_pdf.rotate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>rotate</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>Should the images be rotated in the resulting PDF</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types__pdf_mode_t">
<title>types._pdf_mode_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>_pdf_mode_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The export mode to use for PDF document</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>normal</para></listitem>
<listitem><para>draft</para></listitem>
<listitem><para>debug</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types__pdf_pages_t">
<title>types._pdf_pages_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>_pdf_pages_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The different page types for PDF export</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>all</para></listitem>
<listitem><para>single</para></listitem>
<listitem><para>contact</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_pdf_stream_encoder_t">
<title>types.dt_pdf_stream_encoder_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_pdf_stream_encoder_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The compression mode for PDF document</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>uncompressed</para></listitem>
<listitem><para>deflate</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t">
<title>types.dt_imageio_module_storage_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A virtual type representing all storage types.</para>

<section status="final" id="types_dt_imageio_module_storage_t_plugin_name">
<title>types.dt_imageio_module_storage_t.plugin_name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>plugin_name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>A unique name for the plugin.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t_name">
<title>types.dt_imageio_module_storage_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>A human readable name for the plugin.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t_width">
<title>types.dt_imageio_module_storage_t.width</title>
<indexterm>
<primary>Lua API</primary>
<secondary>width</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The currently selected width for the plugin.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t_height">
<title>types.dt_imageio_module_storage_t.height</title>
<indexterm>
<primary>Lua API</primary>
<secondary>height</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The currently selected height for the plugin.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t_recommended_width">
<title>types.dt_imageio_module_storage_t.recommended_width</title>
<indexterm>
<primary>Lua API</primary>
<secondary>recommended_width</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The recommended width for the plugin.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t_recommended_height">
<title>types.dt_imageio_module_storage_t.recommended_height</title>
<indexterm>
<primary>Lua API</primary>
<secondary>recommended_height</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The recommended height for the plugin.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_t_supports_format">
<title>types.dt_imageio_module_storage_t.supports_format</title>
<indexterm>
<primary>Lua API</primary>
<secondary>supports_format</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_imageio_module_storage_t_supports_format_format">format</link></emphasis> : <link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link>
) : boolean</synopsis>
<para>Checks if a format is supported by this storage.</para>

<variablelist>
<varlistentry id="types_dt_imageio_module_storage_t_supports_format_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The storage type to check against.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_imageio_module_storage_t_supports_format_format"><term>format</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The format type to check.</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis>boolean</synopsis>
<para>True if the format is supported by the storage.</para>

</listitem></varlistentry>


</variablelist>
</section>

</section>

<section status="final" id="types_dt_imageio_module_storage_data_email">
<title>types.dt_imageio_module_storage_data_email</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_email</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to email.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_data_flickr">
<title>types.dt_imageio_module_storage_data_flickr</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_flickr</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to flickr.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_data_facebook">
<title>types.dt_imageio_module_storage_data_facebook</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_facebook</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to facebook.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_data_latex">
<title>types.dt_imageio_module_storage_data_latex</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_latex</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to latex.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_storage_data_latex_filename">
<title>types.dt_imageio_module_storage_data_latex.filename</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filename</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The filename to export to.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_data_latex_title">
<title>types.dt_imageio_module_storage_data_latex.title</title>
<indexterm>
<primary>Lua API</primary>
<secondary>title</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The title to use for export.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_storage_data_picasa">
<title>types.dt_imageio_module_storage_data_picasa</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_picasa</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to picasa.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_data_gallery">
<title>types.dt_imageio_module_storage_data_gallery</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_gallery</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to gallery.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_storage_data_gallery_filename">
<title>types.dt_imageio_module_storage_data_gallery.filename</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filename</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The filename to export to.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_module_storage_data_gallery_title">
<title>types.dt_imageio_module_storage_data_gallery.title</title>
<indexterm>
<primary>Lua API</primary>
<secondary>title</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The title to use for export.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_imageio_module_storage_data_disk">
<title>types.dt_imageio_module_storage_data_disk</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_module_storage_data_disk</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An object containing parameters to export to disk.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_imageio_module_storage_data_disk_filename">
<title>types.dt_imageio_module_storage_data_disk.filename</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filename</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The filename to export to.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_lua_film_t">
<title>types.dt_lua_film_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_film_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A film in darktable; this represents a directory containing imported images.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.dt_lua_film_t.move_image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>move_image</secondary>
</indexterm>
<para>see <link linkend="darktable_database_move_image">darktable.database.move_image</link></para>
</section>

<section status="final" >
<title>types.dt_lua_film_t.copy_image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>copy_image</secondary>
</indexterm>
<para>see <link linkend="darktable_database_copy_image">darktable.database.copy_image</link></para>
</section>

<section status="final" id="types_dt_lua_film_t__hash_">
<title>types.dt_lua_film_t.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The different images within the film.</para>

</section>

<section status="final" id="types_dt_lua_film_t_id">
<title>types.dt_lua_film_t.id</title>
<indexterm>
<primary>Lua API</primary>
<secondary>id</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>A unique numeric id used by this film.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_film_t_path">
<title>types.dt_lua_film_t.path</title>
<indexterm>
<primary>Lua API</primary>
<secondary>path</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The path represented by this film.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_film_t_delete">
<title>types.dt_lua_film_t.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<synopsis>self:function( 
	[<emphasis><link linkend="types_dt_lua_film_t_delete_force">force</link></emphasis> : Boolean]
)</synopsis>
<para>Removes the film from the database.</para>

<variablelist>
<varlistentry id="types_dt_lua_film_t_delete_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>The film to remove.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_film_t_delete_force"><term>[force]</term><listitem>
<synopsis>Boolean</synopsis>
<para>Force removal, even if the film is not empty.</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="types_dt_style_t">
<title>types.dt_style_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_style_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A style that can be applied to an image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.dt_style_t.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<para>see <link linkend="darktable_styles_delete">darktable.styles.delete</link></para>
</section>

<section status="final" >
<title>types.dt_style_t.duplicate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>duplicate</secondary>
</indexterm>
<para>see <link linkend="darktable_styles_duplicate">darktable.styles.duplicate</link></para>
</section>

<section status="final" >
<title>types.dt_style_t.apply</title>
<indexterm>
<primary>Lua API</primary>
<secondary>apply</secondary>
</indexterm>
<para>see <link linkend="darktable_styles_apply">darktable.styles.apply</link></para>
</section>

<section status="final" >
<title>types.dt_style_t.export</title>
<indexterm>
<primary>Lua API</primary>
<secondary>export</secondary>
</indexterm>
<para>see <link linkend="darktable_styles_export">darktable.styles.export</link></para>
</section>

<section status="final" id="types_dt_style_t_name">
<title>types.dt_style_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the style.</para>

</section>

<section status="final" id="types_dt_style_t_description">
<title>types.dt_style_t.description</title>
<indexterm>
<primary>Lua API</primary>
<secondary>description</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The description of the style.</para>

</section>

<section status="final" id="types_dt_style_t__hash_">
<title>types.dt_style_t.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_style_item_t">types.dt_style_item_t</link></synopsis>
<para>The different items that make the style.</para>

</section>

</section>

<section status="final" id="types_dt_style_item_t">
<title>types.dt_style_item_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_style_item_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>An element that is part of a style.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_style_item_t_name">
<title>types.dt_style_item_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the style item.</para>

</section>

<section status="final" id="types_dt_style_item_t_num">
<title>types.dt_style_item_t.num</title>
<indexterm>
<primary>Lua API</primary>
<secondary>num</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The position of the style item within its style.</para>

</section>

</section>

<section status="final" id="types_dt_lua_tag_t">
<title>types.dt_lua_tag_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_tag_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A tag that can be attached to an image.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.dt_lua_tag_t.delete</title>
<indexterm>
<primary>Lua API</primary>
<secondary>delete</secondary>
</indexterm>
<para>see <link linkend="darktable_tags_delete">darktable.tags.delete</link></para>
</section>

<section status="final" >
<title>types.dt_lua_tag_t.attach</title>
<indexterm>
<primary>Lua API</primary>
<secondary>attach</secondary>
</indexterm>
<para>see <link linkend="darktable_tags_attach">darktable.tags.attach</link></para>
</section>

<section status="final" >
<title>types.dt_lua_tag_t.detach</title>
<indexterm>
<primary>Lua API</primary>
<secondary>detach</secondary>
</indexterm>
<para>see <link linkend="darktable_tags_detach">darktable.tags.detach</link></para>
</section>

<section status="final" id="types_dt_lua_tag_t_name">
<title>types.dt_lua_tag_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the tag.</para>

</section>

<section status="final" id="types_dt_lua_tag_t__hash_">
<title>types.dt_lua_tag_t.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The images that have that tag attached to them.</para>

</section>

</section>

<section status="final" id="types_dt_lua_lib_t">
<title>types.dt_lua_lib_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_lib_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>The type of a UI lib</para>

<section status="final" id="types_dt_lua_lib_t_id">
<title>types.dt_lua_lib_t.id</title>
<indexterm>
<primary>Lua API</primary>
<secondary>id</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>A unit string identifying the lib</para>

</section>

<section status="final" id="types_dt_lua_lib_t_name">
<title>types.dt_lua_lib_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The translated title of the UI element</para>

</section>

<section status="final" id="types_dt_lua_lib_t_version">
<title>types.dt_lua_lib_t.version</title>
<indexterm>
<primary>Lua API</primary>
<secondary>version</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The version of the internal data of this lib</para>

</section>

<section status="final" id="types_dt_lua_lib_t_visible">
<title>types.dt_lua_lib_t.visible</title>
<indexterm>
<primary>Lua API</primary>
<secondary>visible</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>Allow to make a lib module completely invisible to the user.</para>
<para>Note that if the module is invisible the user will have no way to restore it without lua</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_implicit_yield">implicit_yield</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_lib_t_container">
<title>types.dt_lua_lib_t.container</title>
<indexterm>
<primary>Lua API</primary>
<secondary>container</secondary>
</indexterm>
<synopsis><link linkend="types_dt_ui_container_t">types.dt_ui_container_t</link></synopsis>
<para>The location of the lib in the darktable UI</para>

</section>

<section status="final" id="types_dt_lua_lib_t_expandable">
<title>types.dt_lua_lib_t.expandable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>expandable</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the lib can be expanded/retracted</para>

</section>

<section status="final" id="types_dt_lua_lib_t_expanded">
<title>types.dt_lua_lib_t.expanded</title>
<indexterm>
<primary>Lua API</primary>
<secondary>expanded</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the lib is expanded</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_lib_t_position">
<title>types.dt_lua_lib_t.position</title>
<indexterm>
<primary>Lua API</primary>
<secondary>position</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>A value deciding the position of the lib within its container</para>

</section>

<section status="final" id="types_dt_lua_lib_t_views">
<title>types.dt_lua_lib_t.views</title>
<indexterm>
<primary>Lua API</primary>
<secondary>views</secondary>
</indexterm>
<synopsis>table</synopsis>
<para>A table of all the views that display this widget</para>

</section>

<section status="final" id="types_dt_lua_lib_t_reset">
<title>types.dt_lua_lib_t.reset</title>
<indexterm>
<primary>Lua API</primary>
<secondary>reset</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>A function to reset the lib to its default values</para>
<para>This function will do nothing if the lib is not visible or can't be reset</para>

<variablelist>
<varlistentry id="types_dt_lua_lib_t_reset_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_lib_t">types.dt_lua_lib_t</link></synopsis>
<para>The lib to reset</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_lib_t_on_screen">
<title>types.dt_lua_lib_t.on_screen</title>
<indexterm>
<primary>Lua API</primary>
<secondary>on_screen</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the lib is currently visible on the screen</para>

</section>

</section>

<section status="final" id="types_dt_lua_view_t">
<title>types.dt_lua_view_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_view_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A darktable view</para>

<section status="final" id="types_dt_lua_view_t_id">
<title>types.dt_lua_view_t.id</title>
<indexterm>
<primary>Lua API</primary>
<secondary>id</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>A unique string identifying the view</para>

</section>

<section status="final" id="types_dt_lua_view_t_name">
<title>types.dt_lua_view_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the view</para>

</section>

</section>

<section status="final" id="types_dt_lua_backgroundjob_t">
<title>types.dt_lua_backgroundjob_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_backgroundjob_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A lua-managed entry in the backgroundjob lib</para>

<section status="final" id="types_dt_lua_backgroundjob_t_percent">
<title>types.dt_lua_backgroundjob_t.percent</title>
<indexterm>
<primary>Lua API</primary>
<secondary>percent</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The value of the progress bar, between 0 and 1. will return nil if there is no progress bar, will raise an error if read or written on an invalid job</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_backgroundjob_t_valid">
<title>types.dt_lua_backgroundjob_t.valid</title>
<indexterm>
<primary>Lua API</primary>
<secondary>valid</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the job is displayed, set it to false to destroy the entry</para>
<para>An invalid job cannot be made valid again</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_lua_snapshot_t">
<title>types.dt_lua_snapshot_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_snapshot_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>The description of a snapshot in the snapshot lib</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_dt_lua_snapshot_t_filename">
<title>types.dt_lua_snapshot_t.filename</title>
<indexterm>
<primary>Lua API</primary>
<secondary>filename</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The filename of an image containing the snapshot</para>

</section>

<section status="final" id="types_dt_lua_snapshot_t_select">
<title>types.dt_lua_snapshot_t.select</title>
<indexterm>
<primary>Lua API</primary>
<secondary>select</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Activates this snapshot on the display. To deactivate all snapshot you need to call this function on the active snapshot</para>

<variablelist>
<varlistentry id="types_dt_lua_snapshot_t_select_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_snapshot_t">types.dt_lua_snapshot_t</link></synopsis>
<para>The snapshot to activate</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_snapshot_t_name">
<title>types.dt_lua_snapshot_t.name</title>
<indexterm>
<primary>Lua API</primary>
<secondary>name</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The name of the snapshot, as seen in the UI</para>

</section>

</section>

<section status="final" id="types_hint_t">
<title>types.hint_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>hint_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>a hint on the way to encode a webp image</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>hint_default</para></listitem>
<listitem><para>hint_picture</para></listitem>
<listitem><para>hint_photo</para></listitem>
<listitem><para>hint_graphic</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_ui_container_t">
<title>types.dt_ui_container_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_ui_container_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>A place in the darktable UI where a lib can be placed</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>DT_UI_CONTAINER_PANEL_LEFT_TOP</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_LEFT_CENTER</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_LEFT_BOTTOM</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_RIGHT_TOP</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_RIGHT_CENTER</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_RIGHT_BOTTOM</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_TOP_LEFT</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_TOP_CENTER</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_TOP_RIGHT</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_CENTER_TOP_LEFT</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_CENTER_TOP_CENTER</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_CENTER_TOP_RIGHT</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_CENTER_BOTTOM_LEFT</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_CENTER_BOTTOM_CENTER</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_CENTER_BOTTOM_RIGHT</para></listitem>
<listitem><para>DT_UI_CONTAINER_PANEL_BOTTOM</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_snapshot_direction_t">
<title>types.snapshot_direction_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>snapshot_direction_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>Which part of the main window is occupied by a snapshot</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>left</para></listitem>
<listitem><para>right</para></listitem>
<listitem><para>top</para></listitem>
<listitem><para>bottom</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_j2k_format_t">
<title>types.dt_imageio_j2k_format_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_j2k_format_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>J2K format type</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>j2k</para></listitem>
<listitem><para>jp2</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_j2k_preset_t">
<title>types.dt_imageio_j2k_preset_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_j2k_preset_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>J2K preset type</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>off</para></listitem>
<listitem><para>cinema2k_24</para></listitem>
<listitem><para>cinema2k_48</para></listitem>
<listitem><para>cinema4k_24</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_comp_type_t">
<title>types.comp_type_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>comp_type_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>Type of compression for webp</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>webp_lossy</para></listitem>
<listitem><para>webp_lossless</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_pref_type">
<title>types.lua_pref_type</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_pref_type</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The type of value to save in a preference</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>enum</para></listitem>
<listitem><para>directory</para></listitem>
<listitem><para>file</para></listitem>
<listitem><para>string</para></listitem>
<listitem><para>bool</para></listitem>
<listitem><para>integer</para></listitem>
<listitem><para>float</para></listitem>
<listitem><para>lua</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_imageio_exr_compression_t">
<title>types.dt_imageio_exr_compression_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_imageio_exr_compression_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The type of compression to use for the EXR image</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>off</para></listitem>
<listitem><para>rle</para></listitem>
<listitem><para>zips</para></listitem>
<listitem><para>zip</para></listitem>
<listitem><para>piz</para></listitem>
<listitem><para>pxr24</para></listitem>
<listitem><para>b44</para></listitem>
<listitem><para>b44a</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lib_collect_params_rule_t">
<title>types.dt_lib_collect_params_rule_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lib_collect_params_rule_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A single rule for filtering a collection</para>

<section status="final" id="types_dt_lib_collect_params_rule_t_mode">
<title>types.dt_lib_collect_params_rule_t.mode</title>
<indexterm>
<primary>Lua API</primary>
<secondary>mode</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lib_collect_mode_t">types.dt_lib_collect_mode_t</link></synopsis>
<para>How this rule is applied after the previous one. Unused for the first rule</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lib_collect_params_rule_t_data">
<title>types.dt_lib_collect_params_rule_t.data</title>
<indexterm>
<primary>Lua API</primary>
<secondary>data</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The text segment of the rule. Exact content depends on the type of rule</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lib_collect_params_rule_t_item">
<title>types.dt_lib_collect_params_rule_t.item</title>
<indexterm>
<primary>Lua API</primary>
<secondary>item</secondary>
</indexterm>
<synopsis><link linkend="types_dt_collection_properties_t">types.dt_collection_properties_t</link></synopsis>
<para>The item on which this rule filter. i.e the type of the rule</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_dt_lib_collect_mode_t">
<title>types.dt_lib_collect_mode_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lib_collect_mode_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The logical operators to apply between rules</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>DT_LIB_COLLECT_MODE_AND</para></listitem>
<listitem><para>DT_LIB_COLLECT_MODE_OR</para></listitem>
<listitem><para>DT_LIB_COLLECT_MODE_AND_NOT</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_collection_properties_t">
<title>types.dt_collection_properties_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_collection_properties_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The different elements on which a collection can be filtered</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>DT_COLLECTION_PROP_FILMROLL</para></listitem>
<listitem><para>DT_COLLECTION_PROP_FOLDERS</para></listitem>
<listitem><para>DT_COLLECTION_PROP_CAMERA</para></listitem>
<listitem><para>DT_COLLECTION_PROP_TAG</para></listitem>
<listitem><para>DT_COLLECTION_PROP_DAY</para></listitem>
<listitem><para>DT_COLLECTION_PROP_TIME</para></listitem>
<listitem><para>DT_COLLECTION_PROP_HISTORY</para></listitem>
<listitem><para>DT_COLLECTION_PROP_COLORLABEL</para></listitem>
<listitem><para>DT_COLLECTION_PROP_TITLE</para></listitem>
<listitem><para>DT_COLLECTION_PROP_DESCRIPTION</para></listitem>
<listitem><para>DT_COLLECTION_PROP_CREATOR</para></listitem>
<listitem><para>DT_COLLECTION_PROP_PUBLISHER</para></listitem>
<listitem><para>DT_COLLECTION_PROP_RIGHTS</para></listitem>
<listitem><para>DT_COLLECTION_PROP_LENS</para></listitem>
<listitem><para>DT_COLLECTION_PROP_FOCAL_LENGTH</para></listitem>
<listitem><para>DT_COLLECTION_PROP_ISO</para></listitem>
<listitem><para>DT_COLLECTION_PROP_APERTURE</para></listitem>
<listitem><para>DT_COLLECTION_PROP_FILENAME</para></listitem>
<listitem><para>DT_COLLECTION_PROP_GEOTAGGING</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_orientation_t">
<title>types.dt_lua_orientation_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_orientation_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>A possible orientation for a widget</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>horizontal</para></listitem>
<listitem><para>vertical</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_align_t">
<title>types.dt_lua_align_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_align_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The alignment of a label</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>fill</para></listitem>
<listitem><para>start</para></listitem>
<listitem><para>end</para></listitem>
<listitem><para>center</para></listitem>
<listitem><para>baseline</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_ellipsize_mode_t">
<title>types.dt_lua_ellipsize_mode_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_ellipsize_mode_t</secondary>
</indexterm>
<synopsis>enum</synopsis>
<para>The ellipsize mode of a label</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis>values : </emphasis></para>
<para><itemizedlist>
<listitem><para>none</para></listitem>
<listitem><para>start</para></listitem>
<listitem><para>middle</para></listitem>
<listitem><para>end</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_dt_lua_cairo_t">
<title>types.dt_lua_cairo_t</title>
<indexterm>
<primary>Lua API</primary>
<secondary>dt_lua_cairo_t</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A wrapper around a cairo drawing context.</para>
<para>You probably shouldn't use this after the callback that got it passed returned.</para>
<para>For more details of the member functions have a look at the cairo documentation for <ulink url="http://www.cairographics.org/manual/cairo-cairo-t.html">the drawing context</ulink>, <ulink url="http://www.cairographics.org/manual/cairo-Transformations.html">transformations</ulink> and <ulink url="http://www.cairographics.org/manual/cairo-Paths.html">paths</ulink>.</para>

<section status="final" id="types_dt_lua_cairo_t_save">
<title>types.dt_lua_cairo_t.save</title>
<indexterm>
<primary>Lua API</primary>
<secondary>save</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Save the state of the drawing context.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_save_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_restore">
<title>types.dt_lua_cairo_t.restore</title>
<indexterm>
<primary>Lua API</primary>
<secondary>restore</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Restore a previously saved state.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_restore_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_move_to">
<title>types.dt_lua_cairo_t.move_to</title>
<indexterm>
<primary>Lua API</primary>
<secondary>move_to</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_move_to_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_move_to_y">y</link></emphasis> : float
)</synopsis>
<para>Begin a new sub-path.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_move_to_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_move_to_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The x coordinate of the new position.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_move_to_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The y coordinate of the new position.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_line_to">
<title>types.dt_lua_cairo_t.line_to</title>
<indexterm>
<primary>Lua API</primary>
<secondary>line_to</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_line_to_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_line_to_y">y</link></emphasis> : float
)</synopsis>
<para>Add a line to the path.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_line_to_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_line_to_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The x coordinate of the end of the new line.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_line_to_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The y coordinate of the end of the new line.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_rectangle">
<title>types.dt_lua_cairo_t.rectangle</title>
<indexterm>
<primary>Lua API</primary>
<secondary>rectangle</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_rectangle_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_rectangle_y">y</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_rectangle_width">width</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_rectangle_height">height</link></emphasis> : float
)</synopsis>
<para>Add a closed sub-path rectangle.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_rectangle_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_rectangle_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The x coordinate of the top left corner of the rectangle.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_rectangle_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The y coordinate of the top left corner of the rectangle.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_rectangle_width"><term>width</term><listitem>
<synopsis>float</synopsis>
<para>The width of the rectangle.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_rectangle_height"><term>height</term><listitem>
<synopsis>float</synopsis>
<para>The height of the rectangle.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_arc">
<title>types.dt_lua_cairo_t.arc</title>
<indexterm>
<primary>Lua API</primary>
<secondary>arc</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_y">y</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_radius">radius</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_angle1">angle1</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_angle2">angle2</link></emphasis> : float
)</synopsis>
<para>Add a circular arc.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_arc_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The x position of the center of the arc.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The y position of the center of the arc.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_radius"><term>radius</term><listitem>
<synopsis>float</synopsis>
<para>The radius of the arc.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_angle1"><term>angle1</term><listitem>
<synopsis>float</synopsis>
<para>The start angle, in radians.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_angle2"><term>angle2</term><listitem>
<synopsis>float</synopsis>
<para>The end angle, in radians.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_arc_negative">
<title>types.dt_lua_cairo_t.arc_negative</title>
<indexterm>
<primary>Lua API</primary>
<secondary>arc_negative</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_negative_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_negative_y">y</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_negative_radius">radius</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_negative_angle1">angle1</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_arc_negative_angle2">angle2</link></emphasis> : float
)</synopsis>
<para>Add a circular arc. It only differs in the direction from <link linkend="types_dt_lua_cairo_t_arc">types.dt_lua_cairo_t.arc</link>.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_arc_negative_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_negative_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The x position of the center of the arc.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_negative_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The y position of the center of the arc.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_negative_radius"><term>radius</term><listitem>
<synopsis>float</synopsis>
<para>The radius of the arc.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_negative_angle1"><term>angle1</term><listitem>
<synopsis>float</synopsis>
<para>The start angle, in radians.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_arc_negative_angle2"><term>angle2</term><listitem>
<synopsis>float</synopsis>
<para>The end angle, in radians.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_rotate">
<title>types.dt_lua_cairo_t.rotate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>rotate</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_rotate_angle">angle</link></emphasis> : float
)</synopsis>
<para>Add a rotation to the transformation matrix.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_rotate_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_rotate_angle"><term>angle</term><listitem>
<synopsis>float</synopsis>
<para>The angle (in radians) by which the user-space axes will be rotated.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_scale">
<title>types.dt_lua_cairo_t.scale</title>
<indexterm>
<primary>Lua API</primary>
<secondary>scale</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_scale_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_scale_y">y</link></emphasis> : float
)</synopsis>
<para>Add a scaling to the transformation matrix.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_scale_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_scale_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>The scale factor for the x dimension.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_scale_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>The scale factor for the y dimension.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_translate">
<title>types.dt_lua_cairo_t.translate</title>
<indexterm>
<primary>Lua API</primary>
<secondary>translate</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_translate_x">x</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_translate_y">y</link></emphasis> : float
)</synopsis>
<para>Add a translation to the transformation matrix.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_translate_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_translate_x"><term>x</term><listitem>
<synopsis>float</synopsis>
<para>Amount to translate in the x direction</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_translate_y"><term>y</term><listitem>
<synopsis>float</synopsis>
<para>Amount to translate in the y direction</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_new_sub_path">
<title>types.dt_lua_cairo_t.new_sub_path</title>
<indexterm>
<primary>Lua API</primary>
<secondary>new_sub_path</secondary>
</indexterm>
<synopsis>self:function( 
)</synopsis>
<para>Begin a new sub-path.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_new_sub_path_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_dt_lua_cairo_t_draw_line">
<title>types.dt_lua_cairo_t.draw_line</title>
<indexterm>
<primary>Lua API</primary>
<secondary>draw_line</secondary>
</indexterm>
<synopsis>self:function( 
	<emphasis><link linkend="types_dt_lua_cairo_t_draw_line_x_start">x_start</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_draw_line_y_start">y_start</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_draw_line_x_end">x_end</link></emphasis> : float, 
	<emphasis><link linkend="types_dt_lua_cairo_t_draw_line_y_end">y_end</link></emphasis> : float
)</synopsis>
<para>Helper function to draw a line with a given start and end.</para>

<variablelist>
<varlistentry id="types_dt_lua_cairo_t_draw_line_self"><term>self</term><listitem>
<synopsis><link linkend="types_dt_lua_cairo_t">types.dt_lua_cairo_t</link></synopsis>
<para>The context to modify.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_draw_line_x_start"><term>x_start</term><listitem>
<synopsis>float</synopsis>
<para>The x coordinate of the start of the new line.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_draw_line_y_start"><term>y_start</term><listitem>
<synopsis>float</synopsis>
<para>The y coordinate of the start of the new line.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_draw_line_x_end"><term>x_end</term><listitem>
<synopsis>float</synopsis>
<para>The x coordinate of the end of the new line.</para>

</listitem></varlistentry>

<varlistentry id="types_dt_lua_cairo_t_draw_line_y_end"><term>y_end</term><listitem>
<synopsis>float</synopsis>
<para>The y coordinate of the end of the new line.</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="types_lua_widget">
<title>types.lua_widget</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_widget</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>Common parent type for all lua-handled widgets</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" id="types_lua_widget_extra_registration_parameters">
<title>types.lua_widget.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_widget_sensitive">
<title>types.lua_widget.sensitive</title>
<indexterm>
<primary>Lua API</primary>
<secondary>sensitive</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>Set if the widget is enabled/disabled</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_widget_tooltip">
<title>types.lua_widget.tooltip</title>
<indexterm>
<primary>Lua API</primary>
<secondary>tooltip</secondary>
</indexterm>
<synopsis>string or nil</synopsis>
<para>Tooltip to display for the widget</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_widget_reset_callback">
<title>types.lua_widget.reset_callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>reset_callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="types_lua_widget_reset_callback_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>A function to call when the widget needs to reset itself</para>
<para>Note that some widgets have a default implementation that can be overridden, (containers in particular will recursively reset their children). If you replace that default implementation you need to reimplement that functionality or call the original function within your callback</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="types_lua_widget_reset_callback_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget that triggered the callback</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_lua_widget___call">
<title>types.lua_widget.As a function</title>
<indexterm>
<primary>Lua API</primary>
<secondary>As a function</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="types_lua_widget___call_attributes">attributes</link></emphasis> : table
) : <link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>Using a lua widget as a function Allows to set multiple attributes of that widget at once. This is mainly used to create UI elements in a more readable way</para>
<para>For example:</para>

<para><programlisting language="lua">local widget = dt.new_widget("button"){
    label ="my label",
    clicked_callback = function() print "hello world" end
    }</programlisting></para>

<para></para>

<variablelist>
<varlistentry id="types_lua_widget___call_attributes"><term>attributes</term><listitem>
<synopsis>table</synopsis>
<para>A table of attributes => value to set</para>

</listitem></varlistentry>

<varlistentry><term><emphasis>return</emphasis></term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The object called itself, to allow chaining</para>

</listitem></varlistentry>


</variablelist>
</section>

</section>

<section status="final" id="types_lua_container">
<title>types.lua_container</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_container</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A widget containing other widgets</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_container.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_container_extra_registration_parameters">
<title>types.lua_container.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_container__hash_">
<title>types.lua_container.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widgets contained by the box</para>
<para>You can append widgets by adding them at the end of the list</para>
<para>You can remove widgets by setting them to nil</para>

</section>

</section>

<section status="final" id="types_lua_check_button">
<title>types.lua_check_button</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_check_button</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A checkable button with a label next to it</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_check_button.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_check_button_extra_registration_parameters">
<title>types.lua_check_button.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_check_button_label">
<title>types.lua_check_button.label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>label</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The label displayed next to the button</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_check_button_value">
<title>types.lua_check_button.value</title>
<indexterm>
<primary>Lua API</primary>
<secondary>value</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>If the widget is checked or not</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_check_button_clicked_callback">
<title>types.lua_check_button.clicked_callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>clicked_callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="types_lua_check_button_clicked_callback_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>A function to call on button click</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="types_lua_check_button_clicked_callback_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget that triggered the callback</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="types_lua_label">
<title>types.lua_label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_label</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A label containing some text</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_label.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_label_extra_registration_parameters">
<title>types.lua_label.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_label_label">
<title>types.lua_label.label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>label</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The label displayed</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_label_selectable">
<title>types.lua_label.selectable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>selectable</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the label content should be selectable</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_label_halign">
<title>types.lua_label.halign</title>
<indexterm>
<primary>Lua API</primary>
<secondary>halign</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_align_t">types.dt_lua_align_t</link></synopsis>
<para>The horizontal alignment of the label</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_label_ellipsize">
<title>types.lua_label.ellipsize</title>
<indexterm>
<primary>Lua API</primary>
<secondary>ellipsize</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_ellipsize_mode_t">types.dt_lua_ellipsize_mode_t</link></synopsis>
<para>The ellipsize mode of the label</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_button">
<title>types.lua_button</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_button</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A clickable button</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_button.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_button_extra_registration_parameters">
<title>types.lua_button.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_button_label">
<title>types.lua_button.label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>label</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The label displayed on the button</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_button_clicked_callback">
<title>types.lua_button.clicked_callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>clicked_callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="types_lua_button_clicked_callback_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>A function to call on button click</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="types_lua_button_clicked_callback_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget that triggered the callback</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="types_lua_box">
<title>types.lua_box</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_box</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A container for widget in a horizontal or vertical list</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_container">types.lua_container</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_box.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_box_extra_registration_parameters">
<title>types.lua_box.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_box_orientation">
<title>types.lua_box.orientation</title>
<indexterm>
<primary>Lua API</primary>
<secondary>orientation</secondary>
</indexterm>
<synopsis><link linkend="types_dt_lua_orientation_t">types.dt_lua_orientation_t</link></synopsis>
<para>The orientation of the box.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_entry">
<title>types.lua_entry</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_entry</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A widget in which the user can input text</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_entry.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_entry_extra_registration_parameters">
<title>types.lua_entry.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_entry_text">
<title>types.lua_entry.text</title>
<indexterm>
<primary>Lua API</primary>
<secondary>text</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The content of the entry</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_entry_placeholder">
<title>types.lua_entry.placeholder</title>
<indexterm>
<primary>Lua API</primary>
<secondary>placeholder</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The text to display when the entry is empty</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_entry_is_password">
<title>types.lua_entry.is_password</title>
<indexterm>
<primary>Lua API</primary>
<secondary>is_password</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the text content should be hidden</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_entry_editable">
<title>types.lua_entry.editable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>editable</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>False if the entry should be read-only</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_separator">
<title>types.lua_separator</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_separator</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A widget providing a separation in the UI.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_separator.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_separator_extra_registration_parameters">
<title>types.lua_separator.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_separator_orientation">
<title>types.lua_separator.orientation</title>
<indexterm>
<primary>Lua API</primary>
<secondary>orientation</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The orientation of the separator.</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_combobox">
<title>types.lua_combobox</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_combobox</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A widget with multiple text entries in a menu</para>
<para>This widget can be set as editable at construction time.</para>
<para>If it is editable the user can type a value and is not constrained by the values in the menu</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_combobox.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_combobox_extra_registration_parameters">
<title>types.lua_combobox.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_combobox_value">
<title>types.lua_combobox.value</title>
<indexterm>
<primary>Lua API</primary>
<secondary>value</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The text content of the selected entry, can be nil</para>
<para>You can set it to a number to select the corresponding entry from the menu</para>
<para>If the combo box is editable, you can set it to any string</para>
<para>You can set it to nil to deselect all entries</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_combobox_selected">
<title>types.lua_combobox.selected</title>
<indexterm>
<primary>Lua API</primary>
<secondary>selected</secondary>
</indexterm>
<synopsis>integer</synopsis>
<para>The index of the selected entry, or 0 if nothing is selected</para>
<para>You can set it to a number to select the corresponding entry from the menu, or to 0 to select nothing</para>
<para>You can set it to nil to deselect all entries</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_combobox__hash_">
<title>types.lua_combobox.#</title>
<indexterm>
<primary>Lua API</primary>
<secondary>#</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The various menu entries.</para>
<para>You can add new entries by writing to the first element beyond the end</para>
<para>You can removes entries by setting them to nil</para>

</section>

<section status="final" id="types_lua_combobox_changed_callback">
<title>types.lua_combobox.changed_callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>changed_callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="types_lua_combobox_changed_callback_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>A function to call when the value field changes (character entered or value selected)</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="types_lua_combobox_changed_callback_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget that triggered the callback</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_lua_combobox_editable">
<title>types.lua_combobox.editable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>editable</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True is the user is allowed to type a string in the combobox</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_combobox_label">
<title>types.lua_combobox.label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>label</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The label displayed on the combobox</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_file_chooser_button">
<title>types.lua_file_chooser_button</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_file_chooser_button</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A button that allows the user to select an existing file</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_file_chooser_button.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_file_chooser_button_extra_registration_parameters">
<title>types.lua_file_chooser_button.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_file_chooser_button_title">
<title>types.lua_file_chooser_button.title</title>
<indexterm>
<primary>Lua API</primary>
<secondary>title</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The title of the window when choosing a file</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_file_chooser_button_value">
<title>types.lua_file_chooser_button.value</title>
<indexterm>
<primary>Lua API</primary>
<secondary>value</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The currently selected file</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_file_chooser_button_changed_callback">
<title>types.lua_file_chooser_button.changed_callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>changed_callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="types_lua_file_chooser_button_changed_callback_widget">widget</link></emphasis> : <link linkend="types_lua_widget">types.lua_widget</link>
)</synopsis>
<para>A function to call when the value field changes (character entered or value selected)</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<variablelist>
<varlistentry id="types_lua_file_chooser_button_changed_callback_widget"><term>widget</term><listitem>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link></synopsis>
<para>The widget that triggered the callback</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="types_lua_file_chooser_button_is_directory">
<title>types.lua_file_chooser_button.is_directory</title>
<indexterm>
<primary>Lua API</primary>
<secondary>is_directory</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>True if the file chooser button only allows directories to be selected</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_stack">
<title>types.lua_stack</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_stack</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A container that will only show one of its child at a time</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_container">types.lua_container</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_stack.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_stack_extra_registration_parameters">
<title>types.lua_stack.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_stack_active">
<title>types.lua_stack.active</title>
<indexterm>
<primary>Lua API</primary>
<secondary>active</secondary>
</indexterm>
<synopsis><link linkend="types_lua_widget">types.lua_widget</link> or nil</synopsis>
<para>The currently selected child, can be nil if the container has no child, can be set to one of the child widget or to an index in the child table</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_slider">
<title>types.lua_slider</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_slider</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A slider that can be set by the user</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_slider.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_slider_extra_registration_parameters">
<title>types.lua_slider.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_slider_soft_min">
<title>types.lua_slider.soft_min</title>
<indexterm>
<primary>Lua API</primary>
<secondary>soft_min</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The soft minimum value for the slider, the slider can't go beyond this point</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_soft_max">
<title>types.lua_slider.soft_max</title>
<indexterm>
<primary>Lua API</primary>
<secondary>soft_max</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The soft maximum value for the slider, the slider can't go beyond this point</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_hard_min">
<title>types.lua_slider.hard_min</title>
<indexterm>
<primary>Lua API</primary>
<secondary>hard_min</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The hard minimum value for the slider, the user can't manually enter a value beyond this point</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_hard_max">
<title>types.lua_slider.hard_max</title>
<indexterm>
<primary>Lua API</primary>
<secondary>hard_max</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The hard maximum value for the slider, the user can't manually enter a value beyond this point</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_step">
<title>types.lua_slider.step</title>
<indexterm>
<primary>Lua API</primary>
<secondary>step</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The step width of the slider</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_digits">
<title>types.lua_slider.digits</title>
<indexterm>
<primary>Lua API</primary>
<secondary>digits</secondary>
</indexterm>
<synopsis>integer</synopsis>
<para>The number of decimal digits shown on the slider</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_value">
<title>types.lua_slider.value</title>
<indexterm>
<primary>Lua API</primary>
<secondary>value</secondary>
</indexterm>
<synopsis>number</synopsis>
<para>The current value of the slider</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_slider_label">
<title>types.lua_slider.label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>label</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The label next to the slider</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_text_view">
<title>types.lua_text_view</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_text_view</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A multiline text input widget</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_text_view.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_text_view_extra_registration_parameters">
<title>types.lua_text_view.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_text_view_text">
<title>types.lua_text_view.text</title>
<indexterm>
<primary>Lua API</primary>
<secondary>text</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The text in the widget</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

<section status="final" id="types_lua_text_view_editable">
<title>types.lua_text_view.editable</title>
<indexterm>
<primary>Lua API</primary>
<secondary>editable</secondary>
</indexterm>
<synopsis>boolean</synopsis>
<para>False if the entry should be read-only</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

<section status="final" id="types_lua_section_label">
<title>types.lua_section_label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>lua_section_label</secondary>
</indexterm>
<synopsis>dt_type</synopsis>
<para>A section label</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_has_tostring">has_tostring</link></emphasis></para></listitem>
<listitem><para><emphasis><link linkend="attributes_parent">parent</link> : </emphasis><link linkend="types_lua_widget">types.lua_widget</link></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
<section status="final" >
<title>types.lua_section_label.__call</title>
<indexterm>
<primary>Lua API</primary>
<secondary>__call</secondary>
</indexterm>
<para>see <link linkend="types_lua_widget___call">types.lua_widget.As a function</link></para>
</section>

<section status="final" id="types_lua_section_label_extra_registration_parameters">
<title>types.lua_section_label.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This widget has no extra registration parameters</para>

</section>

<section status="final" id="types_lua_section_label_label">
<title>types.lua_section_label.label</title>
<indexterm>
<primary>Lua API</primary>
<secondary>label</secondary>
</indexterm>
<synopsis>string</synopsis>
<para>The section name</para>
<informaltable frame="none" width="80%"><tgroup cols="2" colsep="0" rowsep="0">
    <colspec colwidth="2*"/>
    <colspec colwidth="8*"/>
    <tbody><row>
    <entry>Attributes:</entry>
    <entry><itemizedlist>
<listitem><para><emphasis><link linkend="attributes_write">write</link></emphasis></para></listitem>
</itemizedlist>
</entry>
    </row></tbody>
    </tgroup></informaltable>
</section>

</section>

</section>

<section status="final" id="events">
<title>events</title>
<indexterm>
<primary>Lua API</primary>
<secondary>events</secondary>
</indexterm>
<para>This section documents events that can be used to trigger Lua callbacks.</para>

<section status="final" id="events_intermediate-export-image">
<title>events.intermediate-export-image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>intermediate-export-image</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is called each time an image is exported, once for each image after the image has been processed to an image format but before the storage has moved the image to its final destination.</para>

<section status="final" id="events_intermediate-export-image_callback">
<title>events.intermediate-export-image.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_intermediate-export-image_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_intermediate-export-image_callback_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>, 
	<emphasis><link linkend="events_intermediate-export-image_callback_filename">filename</link></emphasis> : string, 
	<emphasis><link linkend="events_intermediate-export-image_callback_format">format</link></emphasis> : <link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link>, 
	<emphasis><link linkend="events_intermediate-export-image_callback_storage">storage</link></emphasis> : <link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link>
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_intermediate-export-image_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_intermediate-export-image_callback_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image object that has been exported.</para>

</listitem></varlistentry>

<varlistentry id="events_intermediate-export-image_callback_filename"><term>filename</term><listitem>
<synopsis>string</synopsis>
<para>The name of the file that is the result of the image being processed.</para>

</listitem></varlistentry>

<varlistentry id="events_intermediate-export-image_callback_format"><term>format</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_format_t">types.dt_imageio_module_format_t</link></synopsis>
<para>The format used to export the image.</para>

</listitem></varlistentry>

<varlistentry id="events_intermediate-export-image_callback_storage"><term>storage</term><listitem>
<synopsis><link linkend="types_dt_imageio_module_storage_t">types.dt_imageio_module_storage_t</link></synopsis>
<para>The storage used to export the image (can be nil).</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_intermediate-export-image_extra_registration_parameters">
<title>events.intermediate-export-image.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_post-import-image">
<title>events.post-import-image</title>
<indexterm>
<primary>Lua API</primary>
<secondary>post-import-image</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered whenever a new image is imported into the database.

	This event can be registered multiple times, all callbacks will be called.</para>

<section status="final" id="events_post-import-image_callback">
<title>events.post-import-image.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_post-import-image_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_post-import-image_callback_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_post-import-image_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_post-import-image_callback_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The image object that has been imported.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_post-import-image_extra_registration_parameters">
<title>events.post-import-image.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_shortcut">
<title>events.shortcut</title>
<indexterm>
<primary>Lua API</primary>
<secondary>shortcut</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event registers a new keyboard shortcut. The shortcut isn't bound to any key until the users does so in the preference panel.

	The event is triggered whenever the shortcut is triggered.


	This event can only be registered once per value of shortcut.
	</para>

<section status="final" id="events_shortcut_callback">
<title>events.shortcut.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_shortcut_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_shortcut_callback_shortcut">shortcut</link></emphasis> : string
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_shortcut_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_shortcut_callback_shortcut"><term>shortcut</term><listitem>
<synopsis>string</synopsis>
<para>The tooltip string that was given at registration time.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_shortcut_extra_registration_parameters">
<title>events.shortcut.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para></para>

<variablelist>
<varlistentry id="events_shortcut_extra_registration_parameters_tooltip"><term>tooltip</term><listitem>
<synopsis>string</synopsis>
<para>The string that will be displayed on the shortcut preference panel describing the shortcut.</para>

</listitem></varlistentry>

</variablelist>
</section>

</section>

<section status="final" id="events_post-import-film">
<title>events.post-import-film</title>
<indexterm>
<primary>Lua API</primary>
<secondary>post-import-film</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered when an film import is finished (all post-import-image callbacks have already been triggered). This event can be registered multiple times.
	</para>

<section status="final" id="events_post-import-film_callback">
<title>events.post-import-film.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_post-import-film_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_post-import-film_callback_film">film</link></emphasis> : <link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link>
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_post-import-film_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_post-import-film_callback_film"><term>film</term><listitem>
<synopsis><link linkend="types_dt_lua_film_t">types.dt_lua_film_t</link></synopsis>
<para>The new film that has been added. If multiple films were added recursively only the top level film is reported.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_post-import-film_extra_registration_parameters">
<title>events.post-import-film.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_view-changed">
<title>events.view-changed</title>
<indexterm>
<primary>Lua API</primary>
<secondary>view-changed</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered after the user changed the active view</para>

<section status="final" id="events_view-changed_callback">
<title>events.view-changed.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_view-changed_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_view-changed_callback_old_view">old_view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>, 
	<emphasis><link linkend="events_view-changed_callback_new_view">new_view</link></emphasis> : <link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link>
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_view-changed_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_view-changed_callback_old_view"><term>old_view</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view that we just left</para>

</listitem></varlistentry>

<varlistentry id="events_view-changed_callback_new_view"><term>new_view</term><listitem>
<synopsis><link linkend="types_dt_lua_view_t">types.dt_lua_view_t</link></synopsis>
<para>The view we are now in</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_view-changed_extra_registration_parameters">
<title>events.view-changed.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_global_toolbox-grouping_toggle">
<title>events.global_toolbox-grouping_toggle</title>
<indexterm>
<primary>Lua API</primary>
<secondary>global_toolbox-grouping_toggle</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered after the user toggled the grouping button.</para>

<section status="final" id="events_global_toolbox-grouping_toggle_callback">
<title>events.global_toolbox-grouping_toggle.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_global_toolbox-grouping_toggle_callback_toggle">toggle</link></emphasis> : boolean
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_global_toolbox-grouping_toggle_callback_toggle"><term>toggle</term><listitem>
<synopsis>boolean</synopsis>
<para>the new grouping status.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_global_toolbox-grouping_toggle_extra_registration_parameters">
<title>events.global_toolbox-grouping_toggle.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_global_toolbox-overlay_toggle">
<title>events.global_toolbox-overlay_toggle</title>
<indexterm>
<primary>Lua API</primary>
<secondary>global_toolbox-overlay_toggle</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered after the user toggled the overlay button.</para>

<section status="final" id="events_global_toolbox-overlay_toggle_callback">
<title>events.global_toolbox-overlay_toggle.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_global_toolbox-overlay_toggle_callback_toggle">toggle</link></emphasis> : boolean
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_global_toolbox-overlay_toggle_callback_toggle"><term>toggle</term><listitem>
<synopsis>boolean</synopsis>
<para>the new overlay status.</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_global_toolbox-overlay_toggle_extra_registration_parameters">
<title>events.global_toolbox-overlay_toggle.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_mouse-over-image-changed">
<title>events.mouse-over-image-changed</title>
<indexterm>
<primary>Lua API</primary>
<secondary>mouse-over-image-changed</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered whenever the image under the mouse changes</para>

<section status="final" id="events_mouse-over-image-changed_callback">
<title>events.mouse-over-image-changed.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_mouse-over-image-changed_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_mouse-over-image-changed_callback_image">image</link></emphasis> : <link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link>
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_mouse-over-image-changed_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_mouse-over-image-changed_callback_image"><term>image</term><listitem>
<synopsis><link linkend="types_dt_lua_image_t">types.dt_lua_image_t</link></synopsis>
<para>The new image under the mouse, can be nil if there is no image under the mouse</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_mouse-over-image-changed_extra_registration_parameters">
<title>events.mouse-over-image-changed.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_exit">
<title>events.exit</title>
<indexterm>
<primary>Lua API</primary>
<secondary>exit</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is triggered when darktable exits, it allows lua scripts to do cleanup jobs</para>

<section status="final" id="events_exit_callback">
<title>events.exit.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
)</synopsis>
<para></para>

<variablelist>
</variablelist>
</section>

<section status="final" id="events_exit_extra_registration_parameters">
<title>events.exit.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

<section status="final" id="events_pre-import">
<title>events.pre-import</title>
<indexterm>
<primary>Lua API</primary>
<secondary>pre-import</secondary>
</indexterm>
<synopsis>event</synopsis>
<para>This event is trigger before any import action</para>

<section status="final" id="events_pre-import_callback">
<title>events.pre-import.callback</title>
<indexterm>
<primary>Lua API</primary>
<secondary>callback</secondary>
</indexterm>
<synopsis>function( 
	<emphasis><link linkend="events_pre-import_callback_event">event</link></emphasis> : string, 
	<emphasis><link linkend="events_pre-import_callback_images">images</link></emphasis> : table of string
)</synopsis>
<para></para>

<variablelist>
<varlistentry id="events_pre-import_callback_event"><term>event</term><listitem>
<synopsis>string</synopsis>
<para>The name of the event that triggered the callback.</para>

</listitem></varlistentry>

<varlistentry id="events_pre-import_callback_images"><term>images</term><listitem>
<synopsis>table of string</synopsis>
<para>The files that will be imported. Modifying this table will change the list of files that will be imported"</para>

</listitem></varlistentry>

</variablelist>
</section>

<section status="final" id="events_pre-import_extra_registration_parameters">
<title>events.pre-import.extra registration parameters</title>
<indexterm>
<primary>Lua API</primary>
<secondary>extra registration parameters</secondary>
</indexterm>
<para>This event has no extra registration parameters.</para>

</section>

</section>

</section>

<section status="final" id="attributes">
<title>attributes</title>
<indexterm>
<primary>Lua API</primary>
<secondary>attributes</secondary>
</indexterm>
<para>This section documents various attributes used throughout the documentation.</para>

<section status="final" id="attributes_write">
<title>attributes.write</title>
<indexterm>
<primary>Lua API</primary>
<secondary>write</secondary>
</indexterm>
<para>This object is a variable that can be written to.</para>

</section>

<section status="final" id="attributes_has_tostring">
<title>attributes.has_tostring</title>
<indexterm>
<primary>Lua API</primary>
<secondary>has_tostring</secondary>
</indexterm>
<para>This object has a specific reimplementation of the "tostring" method that allows pretty-printing it.</para>

</section>

<section status="final" id="attributes_implicit_yield">
<title>attributes.implicit_yield</title>
<indexterm>
<primary>Lua API</primary>
<secondary>implicit_yield</secondary>
</indexterm>
<para>This call will release the Lua lock while executing, thus allowing other Lua callbacks to run.</para>

</section>

<section status="final" id="attributes_parent">
<title>attributes.parent</title>
<indexterm>
<primary>Lua API</primary>
<secondary>parent</secondary>
</indexterm>
<para>This object inherits some methods from another object. You can call the methods from the parent on the child object</para>

</section>

</section>

</article>

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API

back to top