<refentry id="ThunarxRenamerProvider">
<refmeta>
<refentrytitle role="top_of_page" id="ThunarxRenamerProvider.top_of_page">ThunarxRenamerProvider</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>THUNARX Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>ThunarxRenamerProvider</refname>
<refpurpose>The interface to extensions that provide additional bulk renamers</refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv id="ThunarxRenamerProvider.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>

#include &lt;thunarx/thunarx.h&gt;

                    <link linkend="ThunarxRenamerProvider-struct">ThunarxRenamerProvider</link>;
                    <link linkend="ThunarxRenamerProviderIface">ThunarxRenamerProviderIface</link>;
<link linkend="GList">GList</link>*              <link linkend="thunarx-renamer-provider-get-renamers">thunarx_renamer_provider_get_renamers</link>
                                                        (<link linkend="ThunarxRenamerProvider">ThunarxRenamerProvider</link> *provider);
</synopsis>
</refsynopsisdiv>

<refsect1 id="ThunarxRenamerProvider.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>
  <link linkend="GInterface">GInterface</link>
   +----ThunarxRenamerProvider
</synopsis>

</refsect1>

<refsect1 id="ThunarxRenamerProvider.prerequisites" role="prerequisites">
<title role="prerequisites.title">Prerequisites</title>
<para>
ThunarxRenamerProvider requires
 <link linkend="GObject">GObject</link>.</para>

</refsect1>







<refsect1 id="ThunarxRenamerProvider.description" role="desc">
<title role="desc.title">Description</title>
<para>
  The <interface>ThunarxRenamerProvider</interface> interface is implemented by
  extensions which provide additional bulk renamers that should be used by the
  bulk rename dialog in Thunar.
</para>
</refsect1>

<refsect1 id="ThunarxRenamerProvider.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="ThunarxRenamerProvider-struct" role="struct">
<title>ThunarxRenamerProvider</title>
<indexterm zone="ThunarxRenamerProvider-struct"><primary>ThunarxRenamerProvider</primary></indexterm><programlisting>typedef struct _ThunarxRenamerProvider ThunarxRenamerProvider;</programlisting>
<para>
  Bulk renamer provider type.
</para></refsect2>
<refsect2 id="ThunarxRenamerProviderIface" role="struct">
<title>ThunarxRenamerProviderIface</title>
<indexterm zone="ThunarxRenamerProviderIface"><primary>ThunarxRenamerProviderIface</primary></indexterm><programlisting>typedef struct {
  GList *(*get_renamers) (ThunarxRenamerProvider *provider);
} ThunarxRenamerProviderIface;
</programlisting>
<para>
  Interface with virtual methods implemented by extensions that provide
  additional bulk renamers for the integrated bulk renamer in Thunar.
</para><variablelist role="struct">
<varlistentry>
<term><structfield>get_renamers</structfield>&nbsp;()</term>
<listitem><simpara>see <link linkend="thunarx-renamer-provider-get-renamers"><function>thunarx_renamer_provider_get_renamers()</function></link>.

</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2 id="thunarx-renamer-provider-get-renamers" role="function">
<title>thunarx_renamer_provider_get_renamers ()</title>
<indexterm zone="thunarx-renamer-provider-get-renamers"><primary>thunarx_renamer_provider_get_renamers</primary></indexterm><programlisting><link linkend="GList">GList</link>*              thunarx_renamer_provider_get_renamers
                                                        (<link linkend="ThunarxRenamerProvider">ThunarxRenamerProvider</link> *provider);</programlisting>
<para>
Returns the list of <link linkend="ThunarxRenamer"><type>ThunarxRenamer</type></link><!---->s provided by the
specified <parameter>provider</parameter>.
</para>
<para>
The real implementation of this method MUST return the <link linkend="ThunarxRenamer"><type>ThunarxRenamer</type></link><!---->s
with floating references (the default for <link linkend="g-object-new"><function>g_object_new()</function></link> on <link linkend="GtkWidget"><type>GtkWidget</type></link>
derived types).
</para>
<para>
The returned <link linkend="ThunarxRenamer"><type>ThunarxRenamer</type></link><!---->s will be reffed and sinked automatically
by this function.
</para>
<para>
As a special note, this method automatically takes a reference on the
<parameter>provider</parameter> for every <link linkend="ThunarxRenamer"><type>ThunarxRenamer</type></link> returned from the real implementation
of this method in <parameter>provider</parameter>. This is to make sure that the extension stays
in memory for atleast the time that the renamers are used. If the extension
wants to stay in memory for a longer time, it'll need to take care of this
itself (e.g. by taking an additional reference on the <parameter>provider</parameter> itself,
that's released at a later time).
</para>
<para>
The caller is responsible to free the returned list of renamers using
something like this when no longer needed:
<informalexample><programlisting>
g_list_foreach (list, (GFunc) g_object_unref, NULL);
g_list_free (list);
</programlisting></informalexample></para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>provider</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="ThunarxRenamerProvider"><type>ThunarxRenamerProvider</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the list of <link linkend="ThunarxRenamer"><type>ThunarxRenamer</type></link><!---->s provided by the
              specified <parameter>provider</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>



<refsect1 id="ThunarxRenamerProvider.see-also">
<title>See Also</title>
<para>
  The description of the abstract base class
  <link linkend="ThunarxRenamer"><type>ThunarxRenamer</type></link>.
</para>
</refsect1>

</refentry>
