<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Amtk" version="5"/>
  <include name="Gtk" version="3.0"/>
  <include name="GtkSource" version="4"/>
  <package name="tepl-4"/>
  <c:include name="tepl/tepl.h"/>
  <namespace name="Tepl"
             version="4"
             shared-library="libtepl-4.so.1.1"
             c:identifier-prefixes="Tepl"
             c:symbol-prefixes="tepl">
    <function-macro name="ABSTRACT_FACTORY"
                    c:identifier="TEPL_ABSTRACT_FACTORY"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ABSTRACT_FACTORY_CLASS"
                    c:identifier="TEPL_ABSTRACT_FACTORY_CLASS"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ABSTRACT_FACTORY_GET_CLASS"
                    c:identifier="TEPL_ABSTRACT_FACTORY_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ABSTRACT_FACTORY_VALA"
                    c:identifier="TEPL_ABSTRACT_FACTORY_VALA"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory-vala.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ABSTRACT_FACTORY_VALA_CLASS"
                    c:identifier="TEPL_ABSTRACT_FACTORY_VALA_CLASS"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory-vala.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ABSTRACT_FACTORY_VALA_GET_CLASS"
                    c:identifier="TEPL_ABSTRACT_FACTORY_VALA_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory-vala.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION"
                    c:identifier="TEPL_APPLICATION"
                    introspectable="0">
      <source-position filename="tepl-application.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_CLASS"
                    c:identifier="TEPL_APPLICATION_CLASS"
                    introspectable="0">
      <source-position filename="tepl-application.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_GET_CLASS"
                    c:identifier="TEPL_APPLICATION_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-application.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_WINDOW"
                    c:identifier="TEPL_APPLICATION_WINDOW"
                    introspectable="0">
      <source-position filename="tepl-application-window.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_WINDOW_CLASS"
                    c:identifier="TEPL_APPLICATION_WINDOW_CLASS"
                    introspectable="0">
      <source-position filename="tepl-application-window.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_WINDOW_GET_CLASS"
                    c:identifier="TEPL_APPLICATION_WINDOW_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-application-window.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="AbstractFactory"
           c:symbol-prefix="abstract_factory"
           c:type="TeplAbstractFactory"
           parent="GObject.Object"
           glib:type-name="TeplAbstractFactory"
           glib:get-type="tepl_abstract_factory_get_type"
           glib:type-struct="AbstractFactoryClass">
      <source-position filename="tepl-abstract-factory.h" line="77"/>
      <function name="get_singleton"
                c:identifier="tepl_abstract_factory_get_singleton"
                version="3.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.c"
             line="139">Gets the #TeplAbstractFactory singleton instance.

If tepl_abstract_factory_set_singleton() has not been called, the singleton
is created with a #TeplAbstractFactory instance.</doc>
        <source-position filename="tepl-abstract-factory.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="147">the #TeplAbstractFactory singleton instance.</doc>
          <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
        </return-value>
      </function>
      <virtual-method name="create_file" invoker="create_file" version="4.0">
        <source-position filename="tepl-abstract-factory.h" line="73"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="242">a new #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="240">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_main_window" invoker="create_main_window">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.c"
             line="175">Creates a main #GtkApplicationWindow in the sense of
tepl_application_window_is_main_window().</doc>
        <source-position filename="tepl-abstract-factory.h" line="65"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="183">a new main application window, or
%NULL if the vfunc is not implemented.</doc>
          <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="177">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="178">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_tab" invoker="create_tab" version="3.0">
        <source-position filename="tepl-abstract-factory.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="206">a new #TeplTab.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="204">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_tab_label"
                      invoker="create_tab_label"
                      version="3.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.c"
             line="217">Creates a new tab label for @tab, suitable for gtk_notebook_set_tab_label().</doc>
        <source-position filename="tepl-abstract-factory.h" line="70"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="224">a new #GtkWidget, or %NULL for the
default tab label (“page N” with #GtkNotebook).</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="219">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="220">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="create_file"
              c:identifier="tepl_abstract_factory_create_file"
              version="4.0">
        <source-position filename="tepl-abstract-factory.h" line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="242">a new #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="240">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_main_window"
              c:identifier="tepl_abstract_factory_create_main_window">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.c"
             line="175">Creates a main #GtkApplicationWindow in the sense of
tepl_application_window_is_main_window().</doc>
        <source-position filename="tepl-abstract-factory.h" line="85"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="183">a new main application window, or
%NULL if the vfunc is not implemented.</doc>
          <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="177">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="178">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tab"
              c:identifier="tepl_abstract_factory_create_tab"
              version="3.0">
        <source-position filename="tepl-abstract-factory.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="206">a new #TeplTab.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="204">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_tab_label"
              c:identifier="tepl_abstract_factory_create_tab_label"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.c"
             line="217">Creates a new tab label for @tab, suitable for gtk_notebook_set_tab_label().</doc>
        <source-position filename="tepl-abstract-factory.h" line="90"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory.c"
               line="224">a new #GtkWidget, or %NULL for the
default tab label (“page N” with #GtkNotebook).</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="219">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="220">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_singleton"
              c:identifier="tepl_abstract_factory_set_singleton"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.c"
             line="110">Sets the #TeplAbstractFactory singleton. This should be called early in
main(), for example just after calling tepl_init().

This function must be called only once, before the first call to
tepl_abstract_factory_get_singleton().

Tepl takes ownership of the @factory reference.</doc>
        <source-position filename="tepl-abstract-factory.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="112">a #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="AbstractFactoryClass"
            c:type="TeplAbstractFactoryClass"
            glib:is-gtype-struct-for="AbstractFactory">
      <source-position filename="tepl-abstract-factory.h" line="77"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory.h"
             line="48">The parent class.</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_main_window">
        <callback name="create_main_window">
          <source-position filename="tepl-abstract-factory.h" line="65"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="183">a new main application window, or
%NULL if the vfunc is not implemented.</doc>
            <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory.c"
                   line="177">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory.c"
                   line="178">a #GtkApplication.</doc>
              <type name="Gtk.Application" c:type="GtkApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_tab">
        <callback name="create_tab">
          <source-position filename="tepl-abstract-factory.h" line="68"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="206">a new #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory.c"
                   line="204">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_tab_label">
        <callback name="create_tab_label">
          <source-position filename="tepl-abstract-factory.h" line="70"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="224">a new #GtkWidget, or %NULL for the
default tab label (“page N” with #GtkNotebook).</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory.c"
                   line="219">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
            <parameter name="tab" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory.c"
                   line="220">a #TeplTab.</doc>
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_file">
        <callback name="create_file">
          <source-position filename="tepl-abstract-factory.h" line="73"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory.c"
                 line="242">a new #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory.c"
                   line="240">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="AbstractFactoryVala"
           c:symbol-prefix="abstract_factory_vala"
           c:type="TeplAbstractFactoryVala"
           parent="AbstractFactory"
           glib:type-name="TeplAbstractFactoryVala"
           glib:get-type="tepl_abstract_factory_vala_get_type"
           glib:type-struct="AbstractFactoryValaClass">
      <source-position filename="tepl-abstract-factory-vala.h" line="65"/>
      <virtual-method name="create_main_window_vala"
                      invoker="create_main_window_vala"
                      version="4.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory-vala.c"
             line="106">Like tepl_abstract_factory_create_main_window(), but with a (transfer full)
return value.</doc>
        <source-position filename="tepl-abstract-factory-vala.h" line="60"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory-vala.c"
               line="114">a new main application window, or %NULL
if the vfunc is not implemented.</doc>
          <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory_vala" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory-vala.c"
                 line="108">the #TeplAbstractFactoryVala.</doc>
            <type name="AbstractFactoryVala"
                  c:type="TeplAbstractFactoryVala*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory-vala.c"
                 line="109">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="create_main_window_vala"
              c:identifier="tepl_abstract_factory_vala_create_main_window_vala"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory-vala.c"
             line="106">Like tepl_abstract_factory_create_main_window(), but with a (transfer full)
return value.</doc>
        <source-position filename="tepl-abstract-factory-vala.h" line="72"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-abstract-factory-vala.c"
               line="114">a new main application window, or %NULL
if the vfunc is not implemented.</doc>
          <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory_vala" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory-vala.c"
                 line="108">the #TeplAbstractFactoryVala.</doc>
            <type name="AbstractFactoryVala"
                  c:type="TeplAbstractFactoryVala*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory-vala.c"
                 line="109">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_singleton_vala"
              c:identifier="tepl_abstract_factory_vala_set_singleton_vala"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory-vala.c"
             line="85">Like tepl_abstract_factory_set_singleton(), but with (transfer none) for the
@factory_vala parameter.

Apparently Vala doesn't support (transfer full) for the self parameter,
resulting to a double unref if tepl_abstract_factory_set_singleton() is
called in Vala...</doc>
        <source-position filename="tepl-abstract-factory-vala.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory_vala" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory-vala.c"
                 line="87">a #TeplAbstractFactoryVala.</doc>
            <type name="AbstractFactoryVala"
                  c:type="TeplAbstractFactoryVala*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="AbstractFactory" c:type="TeplAbstractFactory"/>
      </field>
    </class>
    <record name="AbstractFactoryValaClass"
            c:type="TeplAbstractFactoryValaClass"
            glib:is-gtype-struct-for="AbstractFactoryVala">
      <source-position filename="tepl-abstract-factory-vala.h" line="65"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl-abstract-factory-vala.h"
             line="49">The parent class.</doc>
        <type name="AbstractFactoryClass" c:type="TeplAbstractFactoryClass"/>
      </field>
      <field name="create_main_window_vala">
        <callback name="create_main_window_vala">
          <source-position filename="tepl-abstract-factory-vala.h" line="60"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl-abstract-factory-vala.c"
                 line="114">a new main application window, or %NULL
if the vfunc is not implemented.</doc>
            <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
          </return-value>
          <parameters>
            <parameter name="factory_vala" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory-vala.c"
                   line="108">the #TeplAbstractFactoryVala.</doc>
              <type name="AbstractFactoryVala"
                    c:type="TeplAbstractFactoryVala*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-abstract-factory-vala.c"
                   line="109">a #GtkApplication.</doc>
              <type name="Gtk.Application" c:type="GtkApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="Application"
           c:symbol-prefix="application"
           c:type="TeplApplication"
           parent="GObject.Object"
           glib:type-name="TeplApplication"
           glib:get-type="tepl_application_get_type"
           glib:type-struct="ApplicationClass">
      <source-position filename="tepl-application.h" line="55"/>
      <function name="get_default"
                c:identifier="tepl_application_get_default"
                version="2.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="322">Convenience function that calls g_application_get_default() followed by
tepl_application_get_from_gtk_application(). The object returned by
g_application_get_default() must be a #GtkApplication.</doc>
        <source-position filename="tepl-application.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application.c"
               line="329">the default #TeplApplication.</doc>
          <type name="Application" c:type="TeplApplication*"/>
        </return-value>
      </function>
      <function name="get_from_gtk_application"
                c:identifier="tepl_application_get_from_gtk_application"
                version="2.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="287">Returns the #TeplApplication of @gtk_app. The returned object is guaranteed
to be the same for the lifetime of @gtk_app.</doc>
        <source-position filename="tepl-application.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application.c"
               line="294">the #TeplApplication of @gtk_app.</doc>
          <type name="Application" c:type="TeplApplication*"/>
        </return-value>
        <parameters>
          <parameter name="gtk_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="289">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_active_main_window"
              c:identifier="tepl_application_get_active_main_window"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="399">Like gtk_application_get_active_window(), but returns the main window in the
sense of tepl_application_window_is_main_window().</doc>
        <source-position filename="tepl-application.h" line="69"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-application.c"
               line="406">the active main #GtkApplicationWindow,
or %NULL.</doc>
          <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="401">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_app_action_info_store"
              c:identifier="tepl_application_get_app_action_info_store"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="358">Returns an initially empty #AmtkActionInfoStore reserved for the
application-specific actions. Libraries should not add #AmtkActionInfo's to
this store. Libraries should provide their own store if they want to share
#AmtkActionInfo's.</doc>
        <source-position filename="tepl-application.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application.c"
               line="367">the #AmtkActionInfoStore reserved for the
application.</doc>
          <type name="Amtk.ActionInfoStore" c:type="AmtkActionInfoStore*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="360">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_application"
              c:identifier="tepl_application_get_application"
              version="2.0">
        <source-position filename="tepl-application.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application.c"
               line="347">the #GtkApplication of @tepl_app.</doc>
          <type name="Gtk.Application" c:type="GtkApplication*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="345">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tepl_action_info_store"
              c:identifier="tepl_application_get_tepl_action_info_store"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="379">The returned #AmtkActionInfoStore contains #AmtkActionInfo's for all the
#GAction's listed in the [class description of
TeplApplicationWindow][tepl-application-window-gactions] and the [class
description of TeplApplication][tepl-application-gactions].</doc>
        <source-position filename="tepl-application.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application.c"
               line="388">the #AmtkActionInfoStore of the Tepl library.</doc>
          <type name="Amtk.ActionInfoStore" c:type="AmtkActionInfoStore*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="381">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_activate"
              c:identifier="tepl_application_handle_activate"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="485">Connects a generic function handler for the #GApplication::activate signal.

If no main windows exist, it creates one with
tepl_abstract_factory_create_main_window(). If a main window already exists,
it calls gtk_window_present() on the most recently focused window of the
application.</doc>
        <source-position filename="tepl-application.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="487">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_open"
              c:identifier="tepl_application_handle_open"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="574">Connects a generic function handler for the #GApplication::open signal.

It calls tepl_application_window_open_file() for each #GFile to open, on the
active main window as returned by tepl_application_get_active_main_window().
If the active main window is %NULL, it creates one with
tepl_abstract_factory_create_main_window().</doc>
        <source-position filename="tepl-application.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="576">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open_simple"
              c:identifier="tepl_application_open_simple"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="434">Calls g_application_open() with a single file and an empty hint.</doc>
        <source-position filename="tepl-application.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="436">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application.c"
                 line="437">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <property name="application"
                version="2.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-application.c"
             line="259">The #GtkApplication.</doc>
        <type name="Gtk.Application"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ApplicationPrivate" c:type="TeplApplicationPrivate*"/>
      </field>
    </class>
    <record name="ApplicationClass"
            c:type="TeplApplicationClass"
            glib:is-gtype-struct-for="Application">
      <source-position filename="tepl-application.h" line="55"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ApplicationPrivate"
            c:type="TeplApplicationPrivate"
            disguised="1">
      <source-position filename="tepl-application.h" line="41"/>
    </record>
    <class name="ApplicationWindow"
           c:symbol-prefix="application_window"
           c:type="TeplApplicationWindow"
           parent="GObject.Object"
           glib:type-name="TeplApplicationWindow"
           glib:get-type="tepl_application_window_get_type"
           glib:type-struct="ApplicationWindowClass">
      <source-position filename="tepl-application-window.h" line="54"/>
      <implements name="TabGroup"/>
      <function name="get_from_gtk_application_window"
                c:identifier="tepl_application_window_get_from_gtk_application_window"
                version="2.0">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="968">Returns the #TeplApplicationWindow of @gtk_window. The returned object is
guaranteed to be the same for the lifetime of @gtk_window.</doc>
        <source-position filename="tepl-application-window.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application-window.c"
               line="975">the #TeplApplicationWindow of @gtk_window.</doc>
          <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
        </return-value>
        <parameters>
          <parameter name="gtk_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="970">a #GtkApplicationWindow.</doc>
            <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
          </parameter>
        </parameters>
      </function>
      <function name="is_main_window"
                c:identifier="tepl_application_window_is_main_window"
                version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="1232">Returns %TRUE iff @gtk_window has an associated #TeplTabGroup (i.e. if
tepl_application_window_set_tab_group() has been called).

This function takes a #GtkApplicationWindow parameter to avoid creating the
#TeplApplicationWindow object if it hasn't been created.</doc>
        <source-position filename="tepl-application-window.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application-window.c"
               line="1242">whether @gtk_window is considered a main application window.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="gtk_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1234">a #GtkApplicationWindow.</doc>
            <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_application_window"
              c:identifier="tepl_application_window_get_application_window"
              version="2.0">
        <source-position filename="tepl-application-window.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application-window.c"
               line="1007">the #GtkApplicationWindow of @tepl_window.</doc>
          <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1005">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_handle_title"
              c:identifier="tepl_application_window_get_handle_title"
              version="4.0">
        <source-position filename="tepl-application-window.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application-window.c"
               line="1308">the value of the #TeplApplicationWindow:handle-title property.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1306">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_group"
              c:identifier="tepl_application_window_get_window_group"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="1261">Gets the #GtkWindowGroup in which @tepl_window resides.

You should call this function only on main windows, to add secondary windows
to the #GtkWindowGroup.</doc>
        <source-position filename="tepl-application-window.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-application-window.c"
               line="1270">the #GtkWindowGroup.</doc>
          <type name="Gtk.WindowGroup" c:type="GtkWindowGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1263">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open_file"
              c:identifier="tepl_application_window_open_file"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="1344">Opens a file in @tepl_window. If the active tab is untouched (see
tepl_buffer_is_untouched()), then the file is loaded in that tab. Otherwise a
new tab is created.

This function is asynchronous, the file loading is done with the
tepl_tab_load_file() function. There is no way to know when the file loading
is finished.</doc>
        <source-position filename="tepl-application-window.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1346">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1347">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="jump_to" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1348">whether to set the tab where the file is loaded as the active tab.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_handle_title"
              c:identifier="tepl_application_window_set_handle_title"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="1319">Sets the #TeplApplicationWindow:handle-title property.</doc>
        <source-position filename="tepl-application-window.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1321">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
          <parameter name="handle_title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1322">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tab_group"
              c:identifier="tepl_application_window_set_tab_group"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="1168">Sets the #TeplTabGroup of @tepl_window. This function can be called only
once, it is not possible to change the #TeplTabGroup afterwards (this
restriction may be lifted in the future if there is a compelling use-case).

#TeplApplicationWindow implements the #TeplTabGroup interface by delegating
the requests to @tab_group.</doc>
        <source-position filename="tepl-application-window.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tepl_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1170">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
          <parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-application-window.c"
                 line="1171">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </parameter>
        </parameters>
      </method>
      <property name="application-window"
                version="2.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="850">The #GtkApplicationWindow.</doc>
        <type name="Gtk.ApplicationWindow"/>
      </property>
      <property name="handle-title"
                version="4.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-application-window.c"
             line="871">Whether to handle the #GtkWindow:title. The title is probably not
appropriate if a #GtkHeaderBar is used, the title is meant to be used
only for applications with a traditional UI.

If %TRUE, the title will contain:
- the #TeplBuffer:tepl-full-title of the active buffer.
- if the active view is not #GtkTextView:editable, the
  `"[Read-Only]"` string.
- the application name as returned by g_get_application_name().

If the active view is %NULL, the title contains only the application
name.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ApplicationWindowPrivate"
              c:type="TeplApplicationWindowPrivate*"/>
      </field>
    </class>
    <record name="ApplicationWindowClass"
            c:type="TeplApplicationWindowClass"
            glib:is-gtype-struct-for="ApplicationWindow">
      <source-position filename="tepl-application-window.h" line="54"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ApplicationWindowPrivate"
            c:type="TeplApplicationWindowPrivate"
            disguised="1">
      <source-position filename="tepl-application-window.h" line="40"/>
    </record>
    <class name="Buffer"
           c:symbol-prefix="buffer"
           c:type="TeplBuffer"
           parent="GtkSource.Buffer"
           glib:type-name="TeplBuffer"
           glib:get-type="tepl_buffer_get_type"
           glib:type-struct="BufferClass">
      <source-position filename="tepl-buffer.h" line="45"/>
      <constructor name="new" c:identifier="tepl_buffer_new" version="1.0">
        <source-position filename="tepl-buffer.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="405">a new #TeplBuffer.</doc>
          <type name="Buffer" c:type="TeplBuffer*"/>
        </return-value>
      </constructor>
      <virtual-method name="tepl_cursor_moved">
        <source-position filename="tepl-buffer.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_file"
              c:identifier="tepl_buffer_get_file"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="414">Returns the #TeplFile of @buffer. The returned object is guaranteed to be the
same for the lifetime of @buffer.

#TeplBuffer creates the #TeplFile with tepl_abstract_factory_create_file().</doc>
        <source-position filename="tepl-buffer.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="423">the associated #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="416">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_full_title"
              c:identifier="tepl_buffer_get_full_title"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="506">Returns a title suitable for a #GtkWindow title. It contains (in that order):
- the #TeplBuffer:tepl-short-title;
- the directory path in parenthesis if the #TeplFile:location isn't
  %NULL.</doc>
        <source-position filename="tepl-buffer.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="515">the @buffer full title. Free the return value with g_free() when no
longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="508">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection_type"
              c:identifier="tepl_buffer_get_selection_type"
              version="1.0">
        <source-position filename="tepl-buffer.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="619">the current #TeplSelectionType.</doc>
          <type name="SelectionType" c:type="TeplSelectionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="617">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_short_title"
              c:identifier="tepl_buffer_get_short_title"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="469">Returns a title suitable for a tab label. It contains (in that order):
- '*' if the buffer is modified;
- the #TeplFile:short-name;</doc>
        <source-position filename="tepl-buffer.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="477">the @buffer short title. Free the return value with g_free() when no
longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="471">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_scheme_id"
              c:identifier="tepl_buffer_get_style_scheme_id"
              version="2.0">
        <source-position filename="tepl-buffer.h" line="73"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="564">the #TeplBuffer:tepl-style-scheme-id. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="562">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_untouched"
              c:identifier="tepl_buffer_is_untouched"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="437">Returns whether @buffer is untouched.

This function is for example useful to know if we can re-use this buffer to
load a file, instead of opening a new tab or window.

For this function to return %TRUE, the @buffer must be empty, non-modified,
the undo/redo #GtkSourceBuffer history must be empty, and the
#TeplFile:location must be %NULL.</doc>
        <source-position filename="tepl-buffer.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-buffer.c"
               line="450">%TRUE if @buffer has not been touched, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="439">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_style_scheme_id"
              c:identifier="tepl_buffer_set_style_scheme_id"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="587">Sets the #TeplBuffer:tepl-style-scheme-id property.

The #GtkSourceStyleScheme is taken from the default
#GtkSourceStyleSchemeManager as returned by
gtk_source_style_scheme_manager_get_default().</doc>
        <source-position filename="tepl-buffer.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="589">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
          <parameter name="style_scheme_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-buffer.c"
                 line="590">the new value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="tepl-full-title" version="3.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="303">The full title. See tepl_buffer_get_full_title().</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tepl-short-title"
                version="3.0"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="288">The short title. See tepl_buffer_get_short_title().</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tepl-style-scheme-id"
                version="2.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="318">The #GtkSourceBuffer:style-scheme ID, as a string. This property is
useful for binding it to a #GSettings key.

When the #GtkSourceBuffer:style-scheme is %NULL,
#TeplBuffer:tepl-style-scheme-id contains the empty string.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GtkSource.Buffer" c:type="GtkSourceBuffer"/>
      </field>
      <glib:signal name="tepl-cursor-moved" when="first" version="2.0">
        <doc xml:space="preserve"
             filename="tepl-buffer.c"
             line="339">The ::tepl-cursor-moved signal is emitted when the insert mark is
moved explicitely or when the buffer changes (insert/delete).

A typical use-case for this signal is to update the cursor position
in a statusbar.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="BufferClass"
            c:type="TeplBufferClass"
            glib:is-gtype-struct-for="Buffer">
      <source-position filename="tepl-buffer.h" line="45"/>
      <field name="parent_class">
        <type name="GtkSource.BufferClass" c:type="GtkSourceBufferClass"/>
      </field>
      <field name="tepl_cursor_moved">
        <callback name="tepl_cursor_moved">
          <source-position filename="tepl-buffer.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="Buffer" c:type="TeplBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="CompressionType"
                 version="1.0"
                 glib:type-name="TeplCompressionType"
                 glib:get-type="tepl_compression_type_get_type"
                 c:type="TeplCompressionType">
      <member name="none"
              value="0"
              c:identifier="TEPL_COMPRESSION_TYPE_NONE"
              glib:nick="none">
        <doc xml:space="preserve"
             filename="tepl-file.h"
             line="88">plain text.</doc>
      </member>
      <member name="gzip"
              value="1"
              c:identifier="TEPL_COMPRESSION_TYPE_GZIP"
              glib:nick="gzip">
        <doc xml:space="preserve"
             filename="tepl-file.h"
             line="89">gzip compression.</doc>
      </member>
    </enumeration>
    <record name="Encoding"
            c:type="TeplEncoding"
            glib:type-name="TeplEncoding"
            glib:get-type="tepl_encoding_get_type"
            c:symbol-prefix="encoding">
      <source-position filename="tepl-types.h" line="36"/>
      <constructor name="new" c:identifier="tepl_encoding_new" version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="275">Creates a new #TeplEncoding from a character set such as "UTF-8" or
"ISO-8859-1".

The tepl_encoding_get_charset() function will return exactly the same string
as the @charset passed in to this constructor.</doc>
        <source-position filename="tepl-encoding.h" line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="285">the new #TeplEncoding. Free with tepl_encoding_free().</doc>
          <type name="Encoding" c:type="TeplEncoding*"/>
        </return-value>
        <parameters>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="277">a character set.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_locale"
                   c:identifier="tepl_encoding_new_from_locale"
                   version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="314">Creates a new #TeplEncoding from the current locale, as returned by
g_get_charset().</doc>
        <source-position filename="tepl-encoding.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="320">the new #TeplEncoding. Free with tepl_encoding_free().</doc>
          <type name="Encoding" c:type="TeplEncoding*"/>
        </return-value>
      </constructor>
      <constructor name="new_utf8"
                   c:identifier="tepl_encoding_new_utf8"
                   version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="300">Creates a new #TeplEncoding with the "UTF-8" character set.</doc>
        <source-position filename="tepl-encoding.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="305">the new #TeplEncoding. Free with tepl_encoding_free().</doc>
          <type name="Encoding" c:type="TeplEncoding*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="tepl_encoding_copy" version="2.0">
        <source-position filename="tepl-encoding.h" line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="208">a copy of @enc.</doc>
          <type name="Encoding" c:type="TeplEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="206">a #TeplEncoding.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equals" c:identifier="tepl_encoding_equals" version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="420">Returns whether @enc1 and @enc2 are equal. It returns %TRUE iff:
- Both @enc1 and @enc2 are %NULL;
- Or both @enc1 and @enc2 have a UTF-8 charset (see
  tepl_encoding_is_utf8());
- Or the charsets are equal according to g_ascii_strcasecmp() (because
  iconv-compatible charsets are case insensitive).</doc>
        <source-position filename="tepl-encoding.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="432">whether @enc1 and @enc2 are equal.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc1"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="422">a #TeplEncoding, or %NULL.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </instance-parameter>
          <parameter name="enc2"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="423">a #TeplEncoding, or %NULL.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="tepl_encoding_free" version="2.0">
        <source-position filename="tepl-encoding.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="222">a #TeplEncoding, or %NULL.</doc>
            <type name="Encoding" c:type="TeplEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_charset"
              c:identifier="tepl_encoding_get_charset"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="336">Gets the character set of the #TeplEncoding, such as "UTF-8" or "ISO-8859-1".</doc>
        <source-position filename="tepl-encoding.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="342">the character set of the #TeplEncoding.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="338">a #TeplEncoding.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="tepl_encoding_get_name"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="354">Gets the name of the #TeplEncoding such as "Unicode" or "Western". If the
charset is unknown by #TeplEncoding, "Unknown" is returned. The return value
is already translated by gettext.</doc>
        <source-position filename="tepl-encoding.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="362">the name of the #TeplEncoding.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="356">a #TeplEncoding.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_utf8"
              c:identifier="tepl_encoding_is_utf8"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="398">Returns whether @enc is a UTF-8 encoding.

If @enc was created with tepl_encoding_new_utf8(), the charset is "UTF-8".
But iconv supports other variants: "UTF8", "utf-8" and "utf8". This function
returns %TRUE for all UTF-8 variants supported by iconv.</doc>
        <source-position filename="tepl-encoding.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="408">whether @enc is a UTF-8 encoding.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="400">a #TeplEncoding.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="tepl_encoding_to_string"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="373">Returns the encoding name with the charset in parenthesis, for example
"Unicode (UTF-8)". If the name is unknown, just the charset is returned. The
name is translated by gettext.</doc>
        <source-position filename="tepl-encoding.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="381">a string representation. Free with g_free() when no longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-encoding.c"
                 line="375">a #TeplEncoding.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_all"
                c:identifier="tepl_encoding_get_all"
                version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="475">Gets a list of all encodings known by #TeplEncoding.</doc>
        <source-position filename="tepl-encoding.h" line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="480">a list of
#TeplEncoding's.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Encoding"/>
          </type>
        </return-value>
      </function>
      <function name="get_default_candidates"
                c:identifier="tepl_encoding_get_default_candidates"
                version="2.0">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="653">Gets the list of default candidate encodings to try when loading a file. See
gtk_source_file_loader_set_candidate_encodings().

This function returns a different list depending on the current locale (i.e.
language, country and default encoding). The UTF-8 encoding and the current
locale encoding are guaranteed to be present in the returned list.

Note that the returned list doesn't contain all encodings known by
#TeplEncoding, it is a limited list that contains only the encodings that
have the most likelihood to fit for the current locale.</doc>
        <source-position filename="tepl-encoding.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-encoding.c"
               line="667">the list of default
candidate encodings.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Encoding"/>
          </type>
        </return-value>
      </function>
    </record>
    <function-macro name="FILE_SAVER"
                    c:identifier="TEPL_FILE_SAVER"
                    introspectable="0">
      <source-position filename="tepl-file-saver.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_SAVER_CLASS"
                    c:identifier="TEPL_FILE_SAVER_CLASS"
                    introspectable="0">
      <source-position filename="tepl-file-saver.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_SAVER_GET_CLASS"
                    c:identifier="TEPL_FILE_SAVER_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-file-saver.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="File"
           c:symbol-prefix="file"
           c:type="TeplFile"
           parent="GObject.Object"
           glib:type-name="TeplFile"
           glib:get-type="tepl_file_get_type"
           glib:type-struct="FileClass">
      <source-position filename="tepl-file.h" line="42"/>
      <constructor name="new" c:identifier="tepl_file_new" version="1.0">
        <source-position filename="tepl-file.h" line="99"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="466">a new #TeplFile object.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
      </constructor>
      <method name="add_uri_to_recent_manager"
              c:identifier="tepl_file_add_uri_to_recent_manager"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="1003">If the #TeplFile:location isn't %NULL, adds its URI to the default
#GtkRecentManager with gtk_recent_manager_add_item().</doc>
        <source-position filename="tepl-file.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="1005">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="check_file_on_disk"
              c:identifier="tepl_file_check_file_on_disk"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="815">Checks synchronously the file on disk, to know whether the file is externally
modified, or has been deleted, and whether the file is read-only.

#TeplFile doesn't create a #GFileMonitor to track those properties, so
this function needs to be called instead. Creating lots of #GFileMonitor's
would take lots of resources.

Since this function is synchronous, it is advised to call it only on local
files. See tepl_file_is_local().</doc>
        <source-position filename="tepl-file.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="817">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compression_type"
              c:identifier="tepl_file_get_compression_type"
              version="1.0">
        <source-position filename="tepl-file.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="666">the compression type.</doc>
          <type name="CompressionType" c:type="TeplCompressionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="664">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding"
              c:identifier="tepl_file_get_encoding"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="589">The encoding is initially %NULL. After a successful file loading or saving
operation, the encoding is non-%NULL.</doc>
        <source-position filename="tepl-file.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="596">the character encoding.</doc>
          <type name="Encoding" c:type="const TeplEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="591">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_metadata"
              c:identifier="tepl_file_get_file_metadata"
              version="1.0">
        <source-position filename="tepl-file.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="479">the associated #TeplFileMetadata.</doc>
          <type name="FileMetadata" c:type="TeplFileMetadata*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="477">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="tepl_file_get_location"
              version="1.0">
        <source-position filename="tepl-file.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="532">the #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="530">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_type"
              c:identifier="tepl_file_get_newline_type"
              version="1.0">
        <source-position filename="tepl-file.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="631">the newline type.</doc>
          <type name="NewlineType" c:type="TeplNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="629">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_short_name"
              c:identifier="tepl_file_get_short_name"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="546">Gets the @file short name. If the #TeplFile:location isn't %NULL,
returns its display-name (see #G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME).
Otherwise returns "Untitled File N", with N the Nth untitled file of the
application, starting at 1. When an untitled file is closed, its number is
released and can be used by a later untitled file.</doc>
        <source-position filename="tepl-file.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="556">the @file short name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="548">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_deleted"
              c:identifier="tepl_file_is_deleted"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="936">Returns whether the file has been deleted. If the
#TeplFile:location is %NULL, returns %FALSE.

To have an up-to-date value, you must first call
tepl_file_check_file_on_disk().</doc>
        <source-position filename="tepl-file.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="946">whether the file has been deleted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="938">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_externally_modified"
              c:identifier="tepl_file_is_externally_modified"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="899">Returns whether the file is externally modified. If the
#TeplFile:location is %NULL, returns %FALSE.

To have an up-to-date value, you must first call
tepl_file_check_file_on_disk().</doc>
        <source-position filename="tepl-file.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="909">whether the file is externally modified.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="901">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_local" c:identifier="tepl_file_is_local" version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="788">Returns whether the file is local. If the #TeplFile:location is %NULL,
returns %FALSE.</doc>
        <source-position filename="tepl-file.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="795">whether the file is local.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="790">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_readonly"
              c:identifier="tepl_file_is_readonly"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="979">Returns whether the file is read-only. If the
#TeplFile:location is %NULL, returns %FALSE.

To have an up-to-date value, you must first call
tepl_file_check_file_on_disk().</doc>
        <source-position filename="tepl-file.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.c"
               line="989">whether the file is read-only.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="981">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_location"
              c:identifier="tepl_file_set_location"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="493">Sets the location.</doc>
        <source-position filename="tepl-file.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="495">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
          <parameter name="location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="496">the new #GFile, or %NULL.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mount_operation_factory"
              c:identifier="tepl_file_set_mount_operation_factory"
              version="1.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="680">Sets a #TeplMountOperationFactory function that will be called when a
#GMountOperation must be created. This is useful for creating a
#GtkMountOperation with the parent #GtkWindow.

If a mount operation factory isn't set, g_mount_operation_new() will be
called.</doc>
        <source-position filename="tepl-file.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="682">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="683">a #TeplMountOperationFactory to call when a
  #GMountOperation is needed.</doc>
            <type name="MountOperationFactory"
                  c:type="TeplMountOperationFactory"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="685">the data to pass to the @callback function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="tepl-file.c"
                 line="686">function to call on @user_data when the @callback is no
  longer needed, or %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <property name="compression-type"
                version="1.0"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="300">The compression type.</doc>
        <type name="CompressionType"/>
      </property>
      <property name="encoding" version="1.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="268">The character encoding, initially %NULL. After a successful file
loading or saving operation, the encoding is non-%NULL.</doc>
        <type name="Encoding"/>
      </property>
      <property name="location"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="252">The location.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="newline-type" version="1.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="284">The line ending type.</doc>
        <type name="NewlineType"/>
      </property>
      <property name="read-only" version="1.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="316">Whether the file is read-only or not. The value of this property is
not updated automatically (there is no file monitors).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="short-name" version="1.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file.c"
             line="332">The file short name. See tepl_file_get_short_name().</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FileClass"
            c:type="TeplFileClass"
            glib:is-gtype-struct-for="File">
      <source-position filename="tepl-file.h" line="42"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="FileLoader"
           c:symbol-prefix="file_loader"
           c:type="TeplFileLoader"
           parent="GObject.Object"
           glib:type-name="TeplFileLoader"
           glib:get-type="tepl_file_loader_get_type"
           glib:type-struct="FileLoaderClass">
      <source-position filename="tepl-file-loader.h" line="61"/>
      <constructor name="new"
                   c:identifier="tepl_file_loader_new"
                   version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="531">Creates a new #TeplFileLoader object. The content is read from the #TeplFile
location.

If not already done, call tepl_file_set_location() before calling this
constructor. The previous location is anyway not needed, because as soon as
the file loading begins, the @buffer is emptied. Setting the #TeplFile
location directly permits to update the UI, to display the good location when
the file is loading.</doc>
        <source-position filename="tepl-file-loader.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="545">a new #TeplFileLoader object.</doc>
          <type name="FileLoader" c:type="TeplFileLoader*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="533">the #TeplBuffer to load the content into.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="534">the #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer"
              c:identifier="tepl_file_loader_get_buffer"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="68"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="565">the #TeplBuffer to load the content
into.</doc>
          <type name="Buffer" c:type="TeplBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="563">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_chunk_size"
              c:identifier="tepl_file_loader_get_chunk_size"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="666">the chunk size.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="664">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding"
              c:identifier="tepl_file_loader_get_encoding"
              version="2.0">
        <source-position filename="tepl-file-loader.h" line="97"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="1190">the detected file encoding, or %NULL.</doc>
          <type name="Encoding" c:type="const TeplEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1188">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="tepl_file_loader_get_file"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="70"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="584">the #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="582">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="tepl_file_loader_get_location"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="72"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="602">the #GFile to load.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="600">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_size"
              c:identifier="tepl_file_loader_get_max_size"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="620">the maximum content size, or -1 for unlimited.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="618">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_type"
              c:identifier="tepl_file_loader_get_newline_type"
              version="2.0">
        <source-position filename="tepl-file-loader.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="1208">the detected newline type.</doc>
          <type name="NewlineType" c:type="TeplNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1206">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_async"
              c:identifier="tepl_file_loader_load_async"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="1061">Loads asynchronously the file content into the #TeplBuffer.

See the #GAsyncResult documentation to know how to use this function.</doc>
        <source-position filename="tepl-file-loader.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1063">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1064">the I/O priority of the request. E.g. %G_PRIORITY_LOW,
  %G_PRIORITY_DEFAULT or %G_PRIORITY_HIGH.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1066">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="progress_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1067">function to call back with
  progress information, or %NULL if progress information is not needed.</doc>
            <type name="Gio.FileProgressCallback"
                  c:type="GFileProgressCallback"/>
          </parameter>
          <parameter name="progress_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1069">user data to pass to @progress_callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="progress_callback_notify"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1070">function to call on
  @progress_callback_data when the @progress_callback is no longer needed, or
  %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1073">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1075">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_finish"
              c:identifier="tepl_file_loader_load_finish"
              version="1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="1129">Finishes a file loading started with tepl_file_loader_load_async().</doc>
        <source-position filename="tepl-file-loader.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-loader.c"
               line="1137">whether the content has been loaded successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1131">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="1132">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_chunk_size"
              c:identifier="tepl_file_loader_set_chunk_size"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="683">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
          <parameter name="chunk_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="684">the new chunk size.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_size"
              c:identifier="tepl_file_loader_set_max_size"
              version="1.0">
        <source-position filename="tepl-file-loader.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="637">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
          <parameter name="max_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-loader.c"
                 line="638">the new maximum size, or -1 for unlimited.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="422">The #TeplBuffer to load the content into. The #TeplFileLoader object
has a weak reference to the buffer.</doc>
        <type name="Buffer"/>
      </property>
      <property name="chunk-size"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="495">The chunk size, in bytes. The content is loaded chunk by chunk. It
permits to avoid allocating a too big contiguous memory area, as well
as reporting progress information after each chunk read.

A small chunk size is better when loading a remote file with a slow
connection. For local files, the chunk size can be larger.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="file"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="439">The #TeplFile. The #TeplFileLoader object has a weak
reference to the file.</doc>
        <type name="File"/>
      </property>
      <property name="location"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="456">The #GFile to load. By default the location is taken from the
#TeplFile at construction time.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="max-size"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-loader.c"
             line="473">The maximum content size, in bytes. Keep in mind that all the
content is loaded in memory, and when loaded into a #GtkTextBuffer
it takes more memory than just the content size.

Set to -1 for unlimited size.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FileLoaderClass"
            c:type="TeplFileLoaderClass"
            glib:is-gtype-struct-for="FileLoader">
      <source-position filename="tepl-file-loader.h" line="61"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="FileLoaderError"
                 version="1.0"
                 glib:type-name="TeplFileLoaderError"
                 glib:get-type="tepl_file_loader_error_get_type"
                 c:type="TeplFileLoaderError"
                 glib:error-domain="tepl-file-loader-error">
      <doc xml:space="preserve"
           filename="tepl-file-loader.h"
           line="40">An error code used with the %TEPL_FILE_LOADER_ERROR domain.</doc>
      <member name="too_big"
              value="0"
              c:identifier="TEPL_FILE_LOADER_ERROR_TOO_BIG"
              glib:nick="too-big">
        <doc xml:space="preserve"
             filename="tepl-file-loader.h"
             line="42">The file is too big.</doc>
      </member>
      <member name="encoding_auto_detection_failed"
              value="1"
              c:identifier="TEPL_FILE_LOADER_ERROR_ENCODING_AUTO_DETECTION_FAILED"
              glib:nick="encoding-auto-detection-failed">
        <doc xml:space="preserve"
             filename="tepl-file-loader.h"
             line="43">It is not possible to
  detect the encoding automatically.</doc>
      </member>
      <function name="quark" c:identifier="tepl_file_loader_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="FileMetadata"
           c:symbol-prefix="file_metadata"
           c:type="TeplFileMetadata"
           parent="GObject.Object"
           glib:type-name="TeplFileMetadata"
           glib:get-type="tepl_file_metadata_get_type"
           glib:type-struct="FileMetadataClass">
      <source-position filename="tepl-file-metadata.h" line="42"/>
      <constructor name="new"
                   c:identifier="tepl_file_metadata_new"
                   version="1.0">
        <source-position filename="tepl-file-metadata.h" line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="243">a new #TeplFileMetadata object.</doc>
          <type name="FileMetadata" c:type="TeplFileMetadata*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="241">the #TeplFile that the metadata will belong to.</doc>
            <type name="File" c:type="TeplFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get" c:identifier="tepl_file_metadata_get" version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="274">Gets the value of a metadata stored in the @metadata object memory.</doc>
        <source-position filename="tepl-file-metadata.h" line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="281">the value of the metadata, or %NULL if the metadata
  doesn't exist. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="276">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="277">the name of the metadata.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="tepl_file_metadata_get_file"
              version="1.0">
        <source-position filename="tepl-file-metadata.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="260">the #TeplFile that the metadata belong to.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="258">a #TeplFileMetadata object.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load"
              c:identifier="tepl_file_metadata_load"
              version="1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="357">Loads synchronously the metadata from #TeplFile:location. The loaded
metadata values can then be accessed with tepl_file_metadata_get().

If the metadata are loaded successfully, this function deletes all previous
metadata stored in the @metadata object memory.

The file at #TeplFile:location, if non-%NULL, must exist on the
filesystem, otherwise an error is returned.

If #TeplFile:location is %NULL, %FALSE is simply returned.</doc>
        <source-position filename="tepl-file-metadata.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="374">whether the metadata was loaded successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="359">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="360">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_async"
              c:identifier="tepl_file_metadata_load_async"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="494">The asynchronous version of tepl_file_metadata_load().

If the metadata is loaded from the metadata manager (i.e. not with GVfs),
this function loads the metadata synchronously. A future version might fix
this.

See the #GAsyncResult documentation to know how to use this function.</doc>
        <source-position filename="tepl-file-metadata.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="496">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="497">the I/O priority of the request. E.g. %G_PRIORITY_LOW,
  %G_PRIORITY_DEFAULT or %G_PRIORITY_HIGH.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="499">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="500">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="502">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_finish"
              c:identifier="tepl_file_metadata_load_finish"
              version="1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="567">Finishes the metadata loading started with tepl_file_metadata_load_async().</doc>
        <source-position filename="tepl-file-metadata.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="575">whether the metadata was loaded successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="569">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="570">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save"
              c:identifier="tepl_file_metadata_save"
              version="1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="590">Saves synchronously the metadata for #TeplFile:location.

The file at #TeplFile:location, if non-%NULL, must exist on the
filesystem, otherwise an error is returned.

If #TeplFile:location is %NULL, %FALSE is simply returned.</doc>
        <source-position filename="tepl-file-metadata.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="603">whether the metadata was saved successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="592">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="593">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_async"
              c:identifier="tepl_file_metadata_save_async"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="704">The asynchronous version of tepl_file_metadata_save().

If the metadata is saved with the metadata manager (i.e. not with GVfs), this
function saves the metadata synchronously. A future version might fix this.

See the #GAsyncResult documentation to know how to use this function.</doc>
        <source-position filename="tepl-file-metadata.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="706">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="707">the I/O priority of the request. E.g. %G_PRIORITY_LOW,
  %G_PRIORITY_DEFAULT or %G_PRIORITY_HIGH.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="709">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="710">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="712">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_finish"
              c:identifier="tepl_file_metadata_save_finish"
              version="1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="774">Finishes the metadata saving started with tepl_file_metadata_save_async().</doc>
        <source-position filename="tepl-file-metadata.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-metadata.c"
               line="782">whether the metadata was saved successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="776">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="777">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="tepl_file_metadata_set" version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="310">Sets the value of a metadata. It's preferable that @key starts with a
namespace, to not get metadata conflicts between applications.

This function just stores the new metadata value in the @metadata object
memory.</doc>
        <source-position filename="tepl-file-metadata.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="312">a #TeplFileMetadata.</doc>
            <type name="FileMetadata" c:type="TeplFileMetadata*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="313">the name of the metadata.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-metadata.c"
                 line="314">the value of the metadata, or %NULL to unset.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="file"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-metadata.c"
             line="206">The #TeplFile that the metadata belong to.</doc>
        <type name="File"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FileMetadataClass"
            c:type="TeplFileMetadataClass"
            glib:is-gtype-struct-for="FileMetadata">
      <source-position filename="tepl-file-metadata.h" line="42"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="FileSaver"
           c:symbol-prefix="file_saver"
           c:type="TeplFileSaver"
           parent="GObject.Object"
           glib:type-name="TeplFileSaver"
           glib:get-type="tepl_file_saver_get_type"
           glib:type-struct="FileSaverClass">
      <source-position filename="tepl-file-saver.h" line="94"/>
      <constructor name="new" c:identifier="tepl_file_saver_new" version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="971">Creates a new #TeplFileSaver object. The @buffer will be saved to the
#TeplFile's location.

This constructor is suitable for a simple "save" operation, when the @file
already contains a non-%NULL #TeplFile:location.</doc>
        <source-position filename="tepl-file-saver.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="982">a new #TeplFileSaver object.</doc>
          <type name="FileSaver" c:type="TeplFileSaver*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="973">the #TeplBuffer to save.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="974">the #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_target"
                   c:identifier="tepl_file_saver_new_with_target"
                   version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="998">Creates a new #TeplFileSaver object with a target location. When the
file saving is finished successfully, @target_location is set to the @file's
#TeplFile:location property. If an error occurs, the previous valid
location is still available in #TeplFile.

This constructor adds %TEPL_FILE_SAVER_FLAGS_IGNORE_MODIFICATION_TIME to the
#TeplFileSaver:flags property.

This constructor is suitable for a "save as" operation, or for saving a new
buffer for the first time.</doc>
        <source-position filename="tepl-file-saver.h" line="103"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1015">a new #TeplFileSaver object.</doc>
          <type name="FileSaver" c:type="TeplFileSaver*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1000">the #TeplBuffer to save.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1001">the #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </parameter>
          <parameter name="target_location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1002">the #GFile where to save the buffer to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer"
              c:identifier="tepl_file_saver_get_buffer"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1039">the #TeplBuffer to save.</doc>
          <type name="Buffer" c:type="TeplBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1037">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compression_type"
              c:identifier="tepl_file_saver_get_compression_type"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1203">the compression type.</doc>
          <type name="CompressionType" c:type="TeplCompressionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1201">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding"
              c:identifier="tepl_file_saver_get_encoding"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1125">the encoding.</doc>
          <type name="Encoding" c:type="const TeplEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1123">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="tepl_file_saver_get_file"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1054">the #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1052">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="tepl_file_saver_get_flags"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1239">the flags.</doc>
          <type name="FileSaverFlags" c:type="TeplFileSaverFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1237">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="tepl_file_saver_get_location"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1069">the #GFile where to save the buffer to.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1067">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_type"
              c:identifier="tepl_file_saver_get_newline_type"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1164">the newline type.</doc>
          <type name="NewlineType" c:type="TeplNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1162">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_async"
              c:identifier="tepl_file_saver_save_async"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="1250">Saves asynchronously the buffer into the file. See the #GAsyncResult
documentation to know how to use this function.</doc>
        <source-position filename="tepl-file-saver.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1252">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1253">the I/O priority of the request. E.g. %G_PRIORITY_LOW,
  %G_PRIORITY_DEFAULT or %G_PRIORITY_HIGH.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1255">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="progress_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1256">function to call back with
  progress information, or %NULL if progress information is not needed.</doc>
            <type name="Gio.FileProgressCallback"
                  c:type="GFileProgressCallback"/>
          </parameter>
          <parameter name="progress_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1258">user data to pass to @progress_callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="progress_callback_notify"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1259">function to call on
  @progress_callback_data when the @progress_callback is no longer needed, or
  %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1262">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1264">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_finish"
              c:identifier="tepl_file_saver_save_finish"
              version="1.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="1339">Finishes a file saving started with tepl_file_saver_save_async().

If the file has been saved successfully, the following #TeplFile
properties will be updated: the location, the encoding, the newline type and
the compression type.

gtk_text_buffer_set_modified() is called with %FALSE if the file has been
saved successfully.</doc>
        <source-position filename="tepl-file-saver.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file-saver.c"
               line="1354">whether the file was saved successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1341">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1342">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_compression_type"
              c:identifier="tepl_file_saver_set_compression_type"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="1175">Sets the compression type. By default the compression type is taken from the
#TeplFile.</doc>
        <source-position filename="tepl-file-saver.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1177">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="compression_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1178">the new compression type.</doc>
            <type name="CompressionType" c:type="TeplCompressionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_encoding"
              c:identifier="tepl_file_saver_set_encoding"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="1080">Sets the encoding. If @encoding is %NULL, the UTF-8 encoding will be set.
By default the encoding is taken from the #TeplFile.</doc>
        <source-position filename="tepl-file-saver.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1082">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="encoding"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1083">the new encoding, or %NULL for UTF-8.</doc>
            <type name="Encoding" c:type="const TeplEncoding*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="tepl_file_saver_set_flags"
              version="1.0">
        <source-position filename="tepl-file-saver.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1216">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1217">the new flags.</doc>
            <type name="FileSaverFlags" c:type="TeplFileSaverFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_newline_type"
              c:identifier="tepl_file_saver_set_newline_type"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="1136">Sets the newline type. By default the newline type is taken from the
#TeplFile.</doc>
        <source-position filename="tepl-file-saver.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1138">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="newline_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-file-saver.c"
                 line="1139">the new newline type.</doc>
            <type name="NewlineType" c:type="TeplNewlineType"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="349">The #TeplBuffer to save. The #TeplFileSaver object has a weak
reference to the buffer.</doc>
        <type name="GtkSource.Buffer"/>
      </property>
      <property name="compression-type"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="438">The compression type.</doc>
        <type name="GtkSource.CompressionType"/>
      </property>
      <property name="encoding"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="403">The file's encoding.</doc>
        <type name="Encoding"/>
      </property>
      <property name="file"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="367">The #TeplFile. The #TeplFileSaver object has a weak
reference to the file.</doc>
        <type name="File"/>
      </property>
      <property name="flags"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="456">File saving flags.</doc>
        <type name="FileSaverFlags"/>
      </property>
      <property name="location"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="385">The #GFile where to save the buffer. By default the location is taken
from the #TeplFile at construction time.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="newline-type"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.c"
             line="420">The newline type.</doc>
        <type name="GtkSource.NewlineType"/>
      </property>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FileSaverPrivate" c:type="TeplFileSaverPrivate*"/>
      </field>
    </class>
    <record name="FileSaverClass"
            c:type="TeplFileSaverClass"
            glib:is-gtype-struct-for="FileSaver">
      <source-position filename="tepl-file-saver.h" line="94"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="FileSaverError"
                 version="1.0"
                 glib:type-name="TeplFileSaverError"
                 glib:get-type="tepl_file_saver_error_get_type"
                 c:type="TeplFileSaverError"
                 glib:error-domain="gtk-source-file-saver-error">
      <doc xml:space="preserve"
           filename="tepl-file-saver.h"
           line="48">An error code used with the %TEPL_FILE_SAVER_ERROR domain.</doc>
      <member name="invalid_chars"
              value="0"
              c:identifier="TEPL_FILE_SAVER_ERROR_INVALID_CHARS"
              glib:nick="invalid-chars">
        <doc xml:space="preserve"
             filename="tepl-file-saver.h"
             line="50">The buffer contains invalid
  characters.</doc>
      </member>
      <member name="externally_modified"
              value="1"
              c:identifier="TEPL_FILE_SAVER_ERROR_EXTERNALLY_MODIFIED"
              glib:nick="externally-modified">
        <doc xml:space="preserve"
             filename="tepl-file-saver.h"
             line="52">The file is externally
  modified.</doc>
      </member>
      <function name="quark" c:identifier="tepl_file_saver_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="FileSaverFlags"
              version="1.0"
              glib:type-name="TeplFileSaverFlags"
              glib:get-type="tepl_file_saver_flags_get_type"
              c:type="TeplFileSaverFlags">
      <doc xml:space="preserve"
           filename="tepl-file-saver.h"
           line="64">Flags to define the behavior of a #TeplFileSaver.</doc>
      <member name="none"
              value="0"
              c:identifier="TEPL_FILE_SAVER_FLAGS_NONE"
              glib:nick="none">
        <doc xml:space="preserve"
             filename="tepl-file-saver.h"
             line="66">No flags.</doc>
      </member>
      <member name="ignore_invalid_chars"
              value="1"
              c:identifier="TEPL_FILE_SAVER_FLAGS_IGNORE_INVALID_CHARS"
              glib:nick="ignore-invalid-chars">
        <doc xml:space="preserve"
             filename="tepl-file-saver.h"
             line="67">Ignore invalid characters.</doc>
      </member>
      <member name="ignore_modification_time"
              value="2"
              c:identifier="TEPL_FILE_SAVER_FLAGS_IGNORE_MODIFICATION_TIME"
              glib:nick="ignore-modification-time">
        <doc xml:space="preserve"
             filename="tepl-file-saver.h"
             line="68">Save file despite external modifications.</doc>
      </member>
      <member name="create_backup"
              value="4"
              c:identifier="TEPL_FILE_SAVER_FLAGS_CREATE_BACKUP"
              glib:nick="create-backup">
        <doc xml:space="preserve"
             filename="tepl-file-saver.h"
             line="69">Create a backup before saving the file.</doc>
      </member>
    </bitfield>
    <record name="FileSaverPrivate"
            c:type="TeplFileSaverPrivate"
            disguised="1">
      <source-position filename="tepl-file-saver.h" line="44"/>
    </record>
    <class name="FoldRegion"
           c:symbol-prefix="fold_region"
           c:type="TeplFoldRegion"
           parent="GObject.Object"
           glib:type-name="TeplFoldRegion"
           glib:get-type="tepl_fold_region_get_type"
           glib:type-struct="FoldRegionClass">
      <source-position filename="tepl-fold-region.h" line="42"/>
      <constructor name="new"
                   c:identifier="tepl_fold_region_new"
                   version="1.0">
        <source-position filename="tepl-fold-region.h" line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl-fold-region.c"
               line="261">a new #TeplFoldRegion.</doc>
          <type name="FoldRegion" c:type="TeplFoldRegion*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="257">a #GtkTextBuffer.</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="258">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="259">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_bounds"
              c:identifier="tepl_fold_region_get_bounds"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-fold-region.c"
             line="371">Obtains iterators pointing to the start and end of the #TeplFoldRegion.</doc>
        <source-position filename="tepl-fold-region.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-fold-region.c"
               line="379">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="fold_region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="373">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="374">iterator to initialize.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="375">iterator to initialize.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="tepl_fold_region_get_buffer"
              version="1.0">
        <source-position filename="tepl-fold-region.h" line="49"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-fold-region.c"
               line="288">the #GtkTextBuffer where the fold region
  is applied.</doc>
          <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="fold_region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="286">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_folded"
              c:identifier="tepl_fold_region_get_folded"
              version="1.0">
        <source-position filename="tepl-fold-region.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-fold-region.c"
               line="308">whether the #TeplFoldRegion is folded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="fold_region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="306">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_bounds"
              c:identifier="tepl_fold_region_set_bounds"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-fold-region.c"
             line="415">Sets the start and end of the #TeplFoldRegion.</doc>
        <source-position filename="tepl-fold-region.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fold_region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="417">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="418">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="419">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_folded"
              c:identifier="tepl_fold_region_set_folded"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-fold-region.c"
             line="323">Folds or unfolds the region.</doc>
        <source-position filename="tepl-fold-region.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fold_region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="325">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
          <parameter name="folded" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-fold-region.c"
                 line="326">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-fold-region.c"
             line="215">The #GtkTextBuffer where the fold region is applied. The
#TeplFoldRegion object has a weak reference to the buffer.</doc>
        <type name="Gtk.TextBuffer"/>
      </property>
      <property name="folded"
                version="1.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-fold-region.c"
             line="232">Whether the #TeplFoldRegion is folded or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FoldRegionClass"
            c:type="TeplFoldRegionClass"
            glib:is-gtype-struct-for="FoldRegion">
      <source-position filename="tepl-fold-region.h" line="42"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="GutterRendererFolds"
           c:symbol-prefix="gutter_renderer_folds"
           c:type="TeplGutterRendererFolds"
           parent="GtkSource.GutterRenderer"
           glib:type-name="TeplGutterRendererFolds"
           glib:get-type="tepl_gutter_renderer_folds_get_type"
           glib:type-struct="GutterRendererFoldsClass">
      <source-position filename="tepl-gutter-renderer-folds.h" line="43"/>
      <constructor name="new"
                   c:identifier="tepl_gutter_renderer_folds_new"
                   version="1.0">
        <source-position filename="tepl-gutter-renderer-folds.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-gutter-renderer-folds.c"
               line="283">a new #TeplGutterRendererFolds.</doc>
          <type name="GtkSource.GutterRenderer"
                c:type="GtkSourceGutterRenderer*"/>
        </return-value>
      </constructor>
      <method name="set_state"
              c:identifier="tepl_gutter_renderer_folds_set_state"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-gutter-renderer-folds.c"
             line="292">Sets the folding state of the next cell to be drawn.

This function is intended to be called from a subclass' draw method before
chaining-up to its parent's draw method.</doc>
        <source-position filename="tepl-gutter-renderer-folds.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-gutter-renderer-folds.c"
                 line="294">a #TeplGutterRendererFolds.</doc>
            <type name="GutterRendererFolds"
                  c:type="TeplGutterRendererFolds*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-gutter-renderer-folds.c"
                 line="295">a #TeplGutterRendererFoldsState.</doc>
            <type name="GutterRendererFoldsState"
                  c:type="TeplGutterRendererFoldsState"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GtkSource.GutterRenderer"
              c:type="GtkSourceGutterRenderer"/>
      </field>
    </class>
    <record name="GutterRendererFoldsClass"
            c:type="TeplGutterRendererFoldsClass"
            glib:is-gtype-struct-for="GutterRendererFolds">
      <source-position filename="tepl-gutter-renderer-folds.h" line="43"/>
      <field name="parent_class">
        <type name="GtkSource.GutterRendererClass"
              c:type="GtkSourceGutterRendererClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="GutterRendererFoldsState"
              version="1.0"
              glib:type-name="TeplGutterRendererFoldsState"
              glib:get-type="tepl_gutter_renderer_folds_state_get_type"
              c:type="TeplGutterRendererFoldsState">
      <doc xml:space="preserve"
           filename="tepl-gutter-renderer-folds.h"
           line="45">The folding state at a certain line in the #GtkTextBuffer.

Since #TeplGutterRendererFolds has a flat view of the folding tree, some
states can be combined; for example, %TEPL_GUTTER_RENDERER_FOLDS_STATE_END
and %TEPL_GUTTER_RENDERER_FOLDS_STATE_CONTINUE.</doc>
      <member name="none"
              value="0"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_NONE"
              glib:nick="none">
        <doc xml:space="preserve"
             filename="tepl-gutter-renderer-folds.h"
             line="47">No code folding here.</doc>
      </member>
      <member name="start_folded"
              value="1"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_START_FOLDED"
              glib:nick="start-folded">
        <doc xml:space="preserve"
             filename="tepl-gutter-renderer-folds.h"
             line="48">Start of currently folded
  fold region.</doc>
      </member>
      <member name="start_opened"
              value="2"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_START_OPENED"
              glib:nick="start-opened">
        <doc xml:space="preserve"
             filename="tepl-gutter-renderer-folds.h"
             line="50">Start of currently opened
  fold region.</doc>
      </member>
      <member name="continue"
              value="4"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_CONTINUE"
              glib:nick="continue">
        <doc xml:space="preserve"
             filename="tepl-gutter-renderer-folds.h"
             line="52">Fold region continues.</doc>
      </member>
      <member name="end"
              value="8"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_END"
              glib:nick="end">
        <doc xml:space="preserve"
             filename="tepl-gutter-renderer-folds.h"
             line="53">End of fold region.</doc>
      </member>
    </bitfield>
    <function-macro name="IS_ABSTRACT_FACTORY"
                    c:identifier="TEPL_IS_ABSTRACT_FACTORY"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ABSTRACT_FACTORY_CLASS"
                    c:identifier="TEPL_IS_ABSTRACT_FACTORY_CLASS"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ABSTRACT_FACTORY_VALA"
                    c:identifier="TEPL_IS_ABSTRACT_FACTORY_VALA"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory-vala.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ABSTRACT_FACTORY_VALA_CLASS"
                    c:identifier="TEPL_IS_ABSTRACT_FACTORY_VALA_CLASS"
                    introspectable="0">
      <source-position filename="tepl-abstract-factory-vala.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION"
                    c:identifier="TEPL_IS_APPLICATION"
                    introspectable="0">
      <source-position filename="tepl-application.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION_CLASS"
                    c:identifier="TEPL_IS_APPLICATION_CLASS"
                    introspectable="0">
      <source-position filename="tepl-application.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION_WINDOW"
                    c:identifier="TEPL_IS_APPLICATION_WINDOW"
                    introspectable="0">
      <source-position filename="tepl-application-window.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION_WINDOW_CLASS"
                    c:identifier="TEPL_IS_APPLICATION_WINDOW_CLASS"
                    introspectable="0">
      <source-position filename="tepl-application-window.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE_SAVER"
                    c:identifier="TEPL_IS_FILE_SAVER"
                    introspectable="0">
      <source-position filename="tepl-file-saver.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE_SAVER_CLASS"
                    c:identifier="TEPL_IS_FILE_SAVER_CLASS"
                    introspectable="0">
      <source-position filename="tepl-file-saver.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NOTEBOOK"
                    c:identifier="TEPL_IS_NOTEBOOK"
                    introspectable="0">
      <source-position filename="tepl-notebook.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NOTEBOOK_CLASS"
                    c:identifier="TEPL_IS_NOTEBOOK_CLASS"
                    introspectable="0">
      <source-position filename="tepl-notebook.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TAB"
                    c:identifier="TEPL_IS_TAB"
                    introspectable="0">
      <source-position filename="tepl-tab.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TAB_CLASS"
                    c:identifier="TEPL_IS_TAB_CLASS"
                    introspectable="0">
      <source-position filename="tepl-tab.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TAB_GROUP"
                    c:identifier="TEPL_IS_TAB_GROUP"
                    introspectable="0">
      <source-position filename="tepl-tab-group.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TAB_LABEL"
                    c:identifier="TEPL_IS_TAB_LABEL"
                    introspectable="0">
      <source-position filename="tepl-tab-label.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TAB_LABEL_CLASS"
                    c:identifier="TEPL_IS_TAB_LABEL_CLASS"
                    introspectable="0">
      <source-position filename="tepl-tab-label.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="InfoBar"
           c:symbol-prefix="info_bar"
           c:type="TeplInfoBar"
           parent="Gtk.InfoBar"
           glib:type-name="TeplInfoBar"
           glib:get-type="tepl_info_bar_get_type"
           glib:type-struct="InfoBarClass">
      <source-position filename="tepl-info-bar.h" line="41"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="tepl_info_bar_new" version="1.0">
        <source-position filename="tepl-info-bar.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-info-bar.c"
               line="137">a new #TeplInfoBar.</doc>
          <type name="InfoBar" c:type="TeplInfoBar*"/>
        </return-value>
      </constructor>
      <constructor name="new_simple"
                   c:identifier="tepl_info_bar_new_simple"
                   version="2.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="146">Creates a new #TeplInfoBar with an icon (depending on @msg_type), a primary
message and a secondary message.</doc>
        <source-position filename="tepl-info-bar.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-info-bar.c"
               line="155">a new #TeplInfoBar.</doc>
          <type name="InfoBar" c:type="TeplInfoBar*"/>
        </return-value>
        <parameters>
          <parameter name="msg_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="148">the message type.</doc>
            <type name="Gtk.MessageType" c:type="GtkMessageType"/>
          </parameter>
          <parameter name="primary_msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="149">the primary message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="secondary_msg"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="150">the secondary message, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="create_label"
                c:identifier="tepl_info_bar_create_label"
                version="1.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="373">Utility function to create a #GtkLabel suitable for a #GtkInfoBar. The
wrapping and alignment is configured. The label is also set as selectable,
for example to copy an error message and search an explanation on the web.</doc>
        <source-position filename="tepl-info-bar.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-info-bar.c"
               line="380">a new #GtkLabel suitable for a #GtkInfoBar.</doc>
          <type name="Gtk.Label" c:type="GtkLabel*"/>
        </return-value>
      </function>
      <method name="add_close_button"
              c:identifier="tepl_info_bar_add_close_button"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="349">Calls gtk_info_bar_set_show_close_button(), and additionnally closes the
@info_bar when the #GtkInfoBar::response signal is received with the
@response_id %GTK_RESPONSE_CLOSE.</doc>
        <source-position filename="tepl-info-bar.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="351">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_content_widget"
              c:identifier="tepl_info_bar_add_content_widget"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="320">Adds @content to @info_bar.

#TeplInfoBar has an internal container, to be able to add the icon and add
primary or secondary messages. The internal container is added to the content
area, as returned by gtk_info_bar_get_content_area(). So if you use a
#TeplInfoBar and you need to add a custom #GtkWidget, it is better to use
this function instead of adding the #GtkWidget directly to the content area.</doc>
        <source-position filename="tepl-info-bar.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="322">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="323">a #GtkWidget.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_icon"
              c:identifier="tepl_info_bar_add_icon"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="211">Adds an icon on the left, determined by the message type. So before calling
this function, gtk_info_bar_set_message_type() must have been called.

The icon is not updated when the message type changes. Another #TeplInfoBar
must be created in that case.</doc>
        <source-position filename="tepl-info-bar.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="213">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_primary_message"
              c:identifier="tepl_info_bar_add_primary_message"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="252">Adds a primary message.</doc>
        <source-position filename="tepl-info-bar.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="254">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="primary_msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="255">a primary message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_secondary_message"
              c:identifier="tepl_info_bar_add_secondary_message"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-info-bar.c"
             line="286">Adds a secondary message.</doc>
        <source-position filename="tepl-info-bar.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="288">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="secondary_msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-info-bar.c"
                 line="289">a secondary message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.InfoBar" c:type="GtkInfoBar"/>
      </field>
    </class>
    <record name="InfoBarClass"
            c:type="TeplInfoBarClass"
            glib:is-gtype-struct-for="InfoBar">
      <source-position filename="tepl-info-bar.h" line="41"/>
      <field name="parent_class">
        <type name="Gtk.InfoBarClass" c:type="GtkInfoBarClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="MountOperationFactory"
              c:type="TeplMountOperationFactory"
              version="1.0"
              introspectable="0">
      <doc xml:space="preserve"
           filename="tepl-file.h"
           line="44">Type definition for a function that will be called to create a
#GMountOperation. This is useful for creating a #GtkMountOperation.</doc>
      <source-position filename="tepl-file.h" line="54"/>
      <return-value>
        <type name="Gio.MountOperation" c:type="GMountOperation*"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-file.h"
               line="46">a #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </parameter>
        <parameter name="userdata"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl-file.h"
               line="47">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="NOTEBOOK"
                    c:identifier="TEPL_NOTEBOOK"
                    introspectable="0">
      <source-position filename="tepl-notebook.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NOTEBOOK_CLASS"
                    c:identifier="TEPL_NOTEBOOK_CLASS"
                    introspectable="0">
      <source-position filename="tepl-notebook.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NOTEBOOK_GET_CLASS"
                    c:identifier="TEPL_NOTEBOOK_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-notebook.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="NewlineType"
                 version="1.0"
                 glib:type-name="TeplNewlineType"
                 glib:get-type="tepl_newline_type_get_type"
                 c:type="TeplNewlineType">
      <member name="lf"
              value="0"
              c:identifier="TEPL_NEWLINE_TYPE_LF"
              glib:nick="lf">
        <doc xml:space="preserve"
             filename="tepl-file.h"
             line="59">line feed, used on UNIX.</doc>
      </member>
      <member name="cr"
              value="1"
              c:identifier="TEPL_NEWLINE_TYPE_CR"
              glib:nick="cr">
        <doc xml:space="preserve"
             filename="tepl-file.h"
             line="60">carriage return, used on Mac.</doc>
      </member>
      <member name="cr_lf"
              value="2"
              c:identifier="TEPL_NEWLINE_TYPE_CR_LF"
              glib:nick="cr-lf">
        <doc xml:space="preserve"
             filename="tepl-file.h"
             line="61">carriage return followed by a line feed, used
  on Windows.</doc>
      </member>
    </enumeration>
    <class name="Notebook"
           c:symbol-prefix="notebook"
           c:type="TeplNotebook"
           parent="Gtk.Notebook"
           glib:type-name="TeplNotebook"
           glib:get-type="tepl_notebook_get_type"
           glib:type-struct="NotebookClass">
      <source-position filename="tepl-notebook.h" line="54"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="TabGroup"/>
      <constructor name="new" c:identifier="tepl_notebook_new" version="3.0">
        <source-position filename="tepl-notebook.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-notebook.c"
               line="318">a new #TeplNotebook.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="Gtk.Notebook" c:type="GtkNotebook"/>
      </field>
      <field name="priv">
        <type name="NotebookPrivate" c:type="TeplNotebookPrivate*"/>
      </field>
    </class>
    <record name="NotebookClass"
            c:type="TeplNotebookClass"
            glib:is-gtype-struct-for="Notebook">
      <source-position filename="tepl-notebook.h" line="54"/>
      <field name="parent_class">
        <type name="Gtk.NotebookClass" c:type="GtkNotebookClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="NotebookPrivate" c:type="TeplNotebookPrivate" disguised="1">
      <source-position filename="tepl-notebook.h" line="40"/>
    </record>
    <enumeration name="SelectionType"
                 version="1.0"
                 glib:type-name="TeplSelectionType"
                 glib:get-type="tepl_selection_type_get_type"
                 c:type="TeplSelectionType">
      <member name="no_selection"
              value="0"
              c:identifier="TEPL_SELECTION_TYPE_NO_SELECTION"
              glib:nick="no-selection">
        <doc xml:space="preserve"
             filename="tepl-buffer.h"
             line="49">No selection.</doc>
      </member>
      <member name="on_same_line"
              value="1"
              c:identifier="TEPL_SELECTION_TYPE_ON_SAME_LINE"
              glib:nick="on-same-line">
        <doc xml:space="preserve"
             filename="tepl-buffer.h"
             line="50">The start and end selection bounds are on
  the same line.</doc>
      </member>
      <member name="multiple_lines"
              value="2"
              c:identifier="TEPL_SELECTION_TYPE_MULTIPLE_LINES"
              glib:nick="multiple-lines">
        <doc xml:space="preserve"
             filename="tepl-buffer.h"
             line="52">The selection spans multiple lines.</doc>
      </member>
    </enumeration>
    <function-macro name="TAB" c:identifier="TEPL_TAB" introspectable="0">
      <source-position filename="tepl-tab.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_CLASS"
                    c:identifier="TEPL_TAB_CLASS"
                    introspectable="0">
      <source-position filename="tepl-tab.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_GET_CLASS"
                    c:identifier="TEPL_TAB_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-tab.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_GROUP"
                    c:identifier="TEPL_TAB_GROUP"
                    introspectable="0">
      <source-position filename="tepl-tab-group.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_GROUP_GET_INTERFACE"
                    c:identifier="TEPL_TAB_GROUP_GET_INTERFACE"
                    introspectable="0">
      <source-position filename="tepl-tab-group.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_LABEL"
                    c:identifier="TEPL_TAB_LABEL"
                    introspectable="0">
      <source-position filename="tepl-tab-label.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_LABEL_CLASS"
                    c:identifier="TEPL_TAB_LABEL_CLASS"
                    introspectable="0">
      <source-position filename="tepl-tab-label.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_LABEL_GET_CLASS"
                    c:identifier="TEPL_TAB_LABEL_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl-tab-label.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Tab"
           c:symbol-prefix="tab"
           c:type="TeplTab"
           parent="Gtk.Grid"
           glib:type-name="TeplTab"
           glib:get-type="tepl_tab_get_type"
           glib:type-struct="TabClass">
      <source-position filename="tepl-tab.h" line="82"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <implements name="TabGroup"/>
      <constructor name="new" c:identifier="tepl_tab_new" version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="392">Creates a new #TeplTab with a new #TeplView. The new #TeplView can be
retrieved afterwards with tepl_tab_get_view().</doc>
        <source-position filename="tepl-tab.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab.c"
               line="398">a new #TeplTab.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_view"
                   c:identifier="tepl_tab_new_with_view"
                   version="3.0">
        <source-position filename="tepl-tab.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab.c"
               line="411">a new #TeplTab.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="409">the #TeplView that will be contained in the tab.</doc>
            <type name="View" c:type="TeplView*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="close_request">
        <source-position filename="tepl-tab.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pack_info_bar">
        <source-position filename="tepl-tab.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="info_bar" transfer-ownership="none">
            <type name="Gtk.InfoBar" c:type="GtkInfoBar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pack_view">
        <source-position filename="tepl-tab.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <type name="View" c:type="TeplView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_info_bar"
              c:identifier="tepl_tab_add_info_bar"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="457">Attaches @info_bar to @tab.

This function calls the ::pack_info_bar virtual function.</doc>
        <source-position filename="tepl-tab.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="459">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="460">a #GtkInfoBar.</doc>
            <type name="Gtk.InfoBar" c:type="GtkInfoBar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="tepl_tab_get_buffer"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="439">A convenience function that calls gtk_text_view_get_buffer() on the
#TeplTab:view associated with the @tab.</doc>
        <source-position filename="tepl-tab.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab.c"
               line="446">the #TeplBuffer of the #TeplTab:view.</doc>
          <type name="Buffer" c:type="TeplBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="441">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_view" c:identifier="tepl_tab_get_view" version="3.0">
        <source-position filename="tepl-tab.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab.c"
               line="428">the #TeplView contained in @tab.</doc>
          <type name="View" c:type="TeplView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="426">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_file" c:identifier="tepl_tab_load_file" version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="547">Unconditionally loads a file in @tab, regardless if there are unsaved changes
in the #GtkTextBuffer. The previous buffer content is lost.

This function is asynchronous, there is no way to know when the file loading
is finished.</doc>
        <source-position filename="tepl-tab.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="549">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="550">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_as_async"
              c:identifier="tepl_tab_save_as_async"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="721">Shows a #GtkFileChooser to save the @tab to a different location, creates an
appropriate #TeplFileSaver and asynchronously runs it.

See the #GAsyncResult documentation to know how to use this function.</doc>
        <source-position filename="tepl-tab.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="723">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="724">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="726">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_as_async_simple"
              c:identifier="tepl_tab_save_as_async_simple"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="807">The same as tepl_tab_save_as_async(), but without callback.

This function is useful when you don't need to know:
- when the operation is finished;
- and whether the operation ran successfully.</doc>
        <source-position filename="tepl-tab.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="809">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_as_finish"
              c:identifier="tepl_tab_save_as_finish"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="776">Finishes a tab saving started with tepl_tab_save_as_async().</doc>
        <source-position filename="tepl-tab.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab.c"
               line="783">whether the tab was saved successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="778">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="779">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_async"
              c:identifier="tepl_tab_save_async"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="585">Saves asynchronously the content of the @tab. The #TeplFile:location must not
be %NULL.

See the #GAsyncResult documentation to know how to use this function.</doc>
        <source-position filename="tepl-tab.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="587">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="588">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="590">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_async_simple"
              c:identifier="tepl_tab_save_async_simple"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="649">The same as tepl_tab_save_async(), but without callback.

This function is useful when you don't need to know:
- when the operation is finished;
- and whether the operation ran successfully.</doc>
        <source-position filename="tepl-tab.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="651">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_finish"
              c:identifier="tepl_tab_save_finish"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="621">Finishes a tab saving started with tepl_tab_save_async().</doc>
        <source-position filename="tepl-tab.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab.c"
               line="628">whether the tab was saved successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="623">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab.c"
                 line="624">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="view"
                version="3.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="312">The #TeplView contained in the tab. When this property is set, the
::pack_view virtual function is called.</doc>
        <type name="View"/>
      </property>
      <field name="parent">
        <type name="Gtk.Grid" c:type="GtkGrid"/>
      </field>
      <field name="priv">
        <type name="TabPrivate" c:type="TeplTabPrivate*"/>
      </field>
      <glib:signal name="close-request" when="last" version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab.c"
             line="334">The ::close-request signal is emitted when there is a request to
close the #TeplTab, for example if the user clicks on a close button.

The default object method handler does the following:
- If the buffer is not modified (according to
  gtk_text_buffer_get_modified()), close the tab.
- Else, show a message dialog to propose to save the file before
  closing.

To override the default object method handler, either override the
virtual function in a #TeplTab subclass or connect to the signal and
call g_signal_stop_emission_by_name().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TabClass"
            c:type="TeplTabClass"
            glib:is-gtype-struct-for="Tab">
      <source-position filename="tepl-tab.h" line="82"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl-tab.h"
             line="51">The parent class.</doc>
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="pack_view">
        <callback name="pack_view">
          <source-position filename="tepl-tab.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tab" transfer-ownership="none">
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <type name="View" c:type="TeplView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pack_info_bar">
        <callback name="pack_info_bar">
          <source-position filename="tepl-tab.h" line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tab" transfer-ownership="none">
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
            <parameter name="info_bar" transfer-ownership="none">
              <type name="Gtk.InfoBar" c:type="GtkInfoBar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close_request">
        <callback name="close_request">
          <source-position filename="tepl-tab.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tab" transfer-ownership="none">
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <interface name="TabGroup"
               c:symbol-prefix="tab_group"
               c:type="TeplTabGroup"
               glib:type-name="TeplTabGroup"
               glib:get-type="tepl_tab_group_get_type"
               glib:type-struct="TabGroupInterface">
      <source-position filename="tepl-tab-group.h" line="74"/>
      <virtual-method name="append_tab_vfunc">
        <source-position filename="tepl-tab-group.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_active_tab"
                      invoker="get_active_tab"
                      version="3.0">
        <source-position filename="tepl-tab-group.h" line="67"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="213">the #TeplTab currently shown in
@tab_group.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="211">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_tabs" invoker="get_tabs" version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="120">Gets the list of #TeplTab's contained in @tab_group.

If @tab_group contains non-#TeplTab children, those will not be present in the
returned list. In other words, it is &lt;emphasis&gt;not&lt;/emphasis&gt; guaranteed that
the index of a #TeplTab in the returned #GList has the same child index in
the @tab_group container.</doc>
        <source-position filename="tepl-tab-group.h" line="65"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="131">the list of all the
#TeplTab's contained in @tab_group.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Tab"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="122">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_active_tab"
                      invoker="set_active_tab"
                      version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="225">Sets the #TeplTabGroup:active-tab. @tab must be part of @tab_group.</doc>
        <source-position filename="tepl-tab-group.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="227">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="228">a #TeplTab part of @tab_group.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="append_tab"
              c:identifier="tepl_tab_group_append_tab"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="294">Appends @tab to @tab_group.</doc>
        <source-position filename="tepl-tab-group.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="296">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="297">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
          <parameter name="jump_to" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="298">whether to set @tab as the active tab after appending it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_active_buffer"
              c:identifier="tepl_tab_group_get_active_buffer"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="273">Convenience function.</doc>
        <source-position filename="tepl-tab-group.h" line="91"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="279">the #TeplBuffer of the active tab.</doc>
          <type name="Buffer" c:type="TeplBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="275">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_tab"
              c:identifier="tepl_tab_group_get_active_tab"
              version="3.0">
        <source-position filename="tepl-tab-group.h" line="84"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="213">the #TeplTab currently shown in
@tab_group.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="211">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_view"
              c:identifier="tepl_tab_group_get_active_view"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="252">Convenience function.</doc>
        <source-position filename="tepl-tab-group.h" line="89"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="258">the #TeplView of the active tab.</doc>
          <type name="View" c:type="TeplView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="254">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffers"
              c:identifier="tepl_tab_group_get_buffers"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="176">Convenience function.</doc>
        <source-position filename="tepl-tab-group.h" line="82"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="182">like
tepl_tab_group_get_tabs(), but returns #TeplBuffer's.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Buffer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="178">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tabs"
              c:identifier="tepl_tab_group_get_tabs"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="120">Gets the list of #TeplTab's contained in @tab_group.

If @tab_group contains non-#TeplTab children, those will not be present in the
returned list. In other words, it is &lt;emphasis&gt;not&lt;/emphasis&gt; guaranteed that
the index of a #TeplTab in the returned #GList has the same child index in
the @tab_group container.</doc>
        <source-position filename="tepl-tab-group.h" line="78"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="131">the list of all the
#TeplTab's contained in @tab_group.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Tab"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="122">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_views"
              c:identifier="tepl_tab_group_get_views"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="143">Convenience function.</doc>
        <source-position filename="tepl-tab-group.h" line="80"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl-tab-group.c"
               line="149">like
tepl_tab_group_get_tabs(), but returns #TeplView's.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="View"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="145">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active_tab"
              c:identifier="tepl_tab_group_set_active_tab"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="225">Sets the #TeplTabGroup:active-tab. @tab must be part of @tab_group.</doc>
        <source-position filename="tepl-tab-group.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="227">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="228">a #TeplTab part of @tab_group.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </method>
      <property name="active-buffer" version="3.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="104">The #TeplBuffer of the active tab.</doc>
        <type name="Buffer"/>
      </property>
      <property name="active-tab"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="74">The #TeplTab currently shown.</doc>
        <type name="Tab"/>
      </property>
      <property name="active-view" version="3.0" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-tab-group.c"
             line="89">The #TeplView of the active tab.</doc>
        <type name="View"/>
      </property>
    </interface>
    <record name="TabGroupInterface"
            c:type="TeplTabGroupInterface"
            glib:is-gtype-struct-for="TabGroup"
            version="3.0">
      <doc xml:space="preserve"
           filename="tepl-tab-group.h"
           line="39">The virtual function table for #TeplTabGroup. When implementing one of the
vfunc, you can assume that the pre-conditions are already checked (the
parameters are valid).</doc>
      <source-position filename="tepl-tab-group.h" line="74"/>
      <field name="parent_interface">
        <doc xml:space="preserve"
             filename="tepl-tab-group.h"
             line="41">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_tabs">
        <callback name="get_tabs">
          <source-position filename="tepl-tab-group.h" line="65"/>
          <return-value transfer-ownership="container">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="131">the list of all the
#TeplTab's contained in @tab_group.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Tab"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="tab_group" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-tab-group.c"
                   line="122">a #TeplTabGroup.</doc>
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_active_tab">
        <callback name="get_active_tab">
          <source-position filename="tepl-tab-group.h" line="67"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl-tab-group.c"
                 line="213">the #TeplTab currently shown in
@tab_group.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </return-value>
          <parameters>
            <parameter name="tab_group" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-tab-group.c"
                   line="211">a #TeplTabGroup.</doc>
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_active_tab">
        <callback name="set_active_tab">
          <source-position filename="tepl-tab-group.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tab_group" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-tab-group.c"
                   line="227">a #TeplTabGroup.</doc>
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
            <parameter name="tab" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl-tab-group.c"
                   line="228">a #TeplTab part of @tab_group.</doc>
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="append_tab_vfunc">
        <callback name="append_tab_vfunc">
          <source-position filename="tepl-tab-group.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tab_group" transfer-ownership="none">
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
            <parameter name="tab" transfer-ownership="none">
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="TabLabel"
           c:symbol-prefix="tab_label"
           c:type="TeplTabLabel"
           parent="Gtk.Grid"
           glib:type-name="TeplTabLabel"
           glib:get-type="tepl_tab_label_get_type"
           glib:type-struct="TabLabelClass">
      <source-position filename="tepl-tab-label.h" line="67"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="tepl_tab_label_new" version="3.0">
        <source-position filename="tepl-tab-label.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-tab-label.c"
               line="357">a new #TeplTabLabel.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-label.c"
                 line="355">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="get_tooltip_markup">
        <source-position filename="tepl-tab-label.h" line="63"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_label" transfer-ownership="none">
            <type name="TabLabel" c:type="TeplTabLabel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_tab"
              c:identifier="tepl_tab_label_get_tab"
              version="3.0">
        <source-position filename="tepl-tab-label.h" line="73"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl-tab-label.c"
               line="374">the #TeplTabLabel:tab.</doc>
          <type name="Tab" c:type="TeplTab*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-label.c"
                 line="372">a #TeplTabLabel.</doc>
            <type name="TabLabel" c:type="TeplTabLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_tooltip"
              c:identifier="tepl_tab_label_update_tooltip"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl-tab-label.c"
             line="385">Asks #TeplTabLabel to update its tooltip. The ::get_tooltip_markup virtual
function is called and the result is set with
gtk_widget_set_tooltip_markup().</doc>
        <source-position filename="tepl-tab-label.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab_label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-tab-label.c"
                 line="387">a #TeplTabLabel.</doc>
            <type name="TabLabel" c:type="TeplTabLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="tab"
                version="3.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl-tab-label.c"
             line="293">The associated #TeplTab. #TeplTabLabel has a weak reference to the
#TeplTab.</doc>
        <type name="Tab"/>
      </property>
      <field name="parent">
        <type name="Gtk.Grid" c:type="GtkGrid"/>
      </field>
      <field name="priv">
        <type name="TabLabelPrivate" c:type="TeplTabLabelPrivate*"/>
      </field>
    </class>
    <record name="TabLabelClass"
            c:type="TeplTabLabelClass"
            glib:is-gtype-struct-for="TabLabel">
      <source-position filename="tepl-tab-label.h" line="67"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl-tab-label.h"
             line="51">The parent class.</doc>
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="get_tooltip_markup">
        <callback name="get_tooltip_markup">
          <source-position filename="tepl-tab-label.h" line="63"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="tab_label" transfer-ownership="none">
              <type name="TabLabel" c:type="TeplTabLabel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="TabLabelPrivate" c:type="TeplTabLabelPrivate" disguised="1">
      <source-position filename="tepl-tab-label.h" line="40"/>
    </record>
    <record name="TabPrivate" c:type="TeplTabPrivate" disguised="1">
      <source-position filename="tepl-tab.h" line="40"/>
    </record>
    <class name="View"
           c:symbol-prefix="view"
           c:type="TeplView"
           parent="GtkSource.View"
           glib:type-name="TeplView"
           glib:get-type="tepl_view_get_type"
           glib:type-struct="ViewClass">
      <source-position filename="tepl-view.h" line="41"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="tepl_view_new" version="1.0">
        <source-position filename="tepl-view.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-view.c"
               line="63">a new #TeplView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="copy_clipboard"
              c:identifier="tepl_view_copy_clipboard"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="105">Copies the clipboard.</doc>
        <source-position filename="tepl-view.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="107">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="cut_clipboard"
              c:identifier="tepl_view_cut_clipboard"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="72">Cuts the clipboard and then scrolls to the cursor position.</doc>
        <source-position filename="tepl-view.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="74">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="delete_selection"
              c:identifier="tepl_view_delete_selection"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="162">Deletes the text currently selected in the #GtkTextBuffer associated
to the view and then scrolls to the cursor position.</doc>
        <source-position filename="tepl-view.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="164">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="goto_line"
              c:identifier="tepl_view_goto_line"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="240">Places the cursor at the position returned by
gtk_text_buffer_get_iter_at_line(), and scrolls to that position.</doc>
        <source-position filename="tepl-view.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-view.c"
               line="248">%TRUE if the cursor has been moved exactly to @line, %FALSE if that
  line didn't exist.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="242">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="243">a line number, counting from 0.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="goto_line_offset"
              c:identifier="tepl_view_goto_line_offset"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="273">Places the cursor at the position returned by
gtk_text_buffer_get_iter_at_line_offset(), and scrolls to that position.</doc>
        <source-position filename="tepl-view.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-view.c"
               line="282">%TRUE if the cursor has been moved exactly to @line and
  @line_offset, %FALSE if that position didn't exist.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="275">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="276">a line number, counting from 0.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="line_offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="277">the line offset, in characters (not bytes).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="paste_clipboard"
              c:identifier="tepl_view_paste_clipboard"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="131">Pastes the clipboard and then scrolls to the cursor position.</doc>
        <source-position filename="tepl-view.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="133">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="scroll_to_cursor"
              c:identifier="tepl_view_scroll_to_cursor"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="215">Scrolls the @view to the cursor position.</doc>
        <source-position filename="tepl-view.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="217">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="select_all"
              c:identifier="tepl_view_select_all"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="192">Selects all the text.</doc>
        <source-position filename="tepl-view.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="194">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="select_lines"
              c:identifier="tepl_view_select_lines"
              version="2.0">
        <doc xml:space="preserve"
             filename="tepl-view.c"
             line="313">Selects the lines between @start_line and @end_line included, counting from
zero. And then scrolls to the cursor.

Possible use-case: line numbers coming from a compilation output, to go to
the place where a warning or error occurred.</doc>
        <source-position filename="tepl-view.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="315">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
          <parameter name="start_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="316">start of the region to select.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="end_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl-view.c"
                 line="317">end of the region to select.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GtkSource.View" c:type="GtkSourceView"/>
      </field>
    </class>
    <record name="ViewClass"
            c:type="TeplViewClass"
            glib:is-gtype-struct-for="View">
      <source-position filename="tepl-view.h" line="41"/>
      <field name="parent_class">
        <type name="GtkSource.ViewClass" c:type="GtkSourceViewClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <function name="encoding_get_all"
              c:identifier="tepl_encoding_get_all"
              moved-to="Encoding.get_all"
              version="2.0">
      <doc xml:space="preserve"
           filename="tepl-encoding.c"
           line="475">Gets a list of all encodings known by #TeplEncoding.</doc>
      <source-position filename="tepl-encoding.h" line="58"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="480">a list of
#TeplEncoding's.</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="Encoding"/>
        </type>
      </return-value>
    </function>
    <function name="encoding_get_default_candidates"
              c:identifier="tepl_encoding_get_default_candidates"
              moved-to="Encoding.get_default_candidates"
              version="2.0">
      <doc xml:space="preserve"
           filename="tepl-encoding.c"
           line="653">Gets the list of default candidate encodings to try when loading a file. See
gtk_source_file_loader_set_candidate_encodings().

This function returns a different list depending on the current locale (i.e.
language, country and default encoding). The UTF-8 encoding and the current
locale encoding are guaranteed to be present in the returned list.

Note that the returned list doesn't contain all encodings known by
#TeplEncoding, it is a limited list that contains only the encodings that
have the most likelihood to fit for the current locale.</doc>
      <source-position filename="tepl-encoding.h" line="60"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-encoding.c"
             line="667">the list of default
candidate encodings.</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="Encoding"/>
        </type>
      </return-value>
    </function>
    <function name="file_loader_error_quark"
              c:identifier="tepl_file_loader_error_quark"
              moved-to="FileLoaderError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_saver_error_quark"
              c:identifier="tepl_file_saver_error_quark"
              moved-to="FileSaverError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="finalize" c:identifier="tepl_finalize" version="3.0">
      <doc xml:space="preserve"
           filename="tepl-init.c"
           line="45">Free the resources allocated by Tepl. For example it unrefs the singleton
objects. It also properly shutdowns the metadata manager by calling
tepl_metadata_manager_shutdown().

This function also calls amtk_finalize() and gtk_source_finalize().

It is not mandatory to call this function, it's just to be friendlier to
memory debugging tools (but if you don't call this function and you use the
metadata manager, you should call tepl_metadata_manager_shutdown()). This
function is meant to be called at the end of main(). It can be called several
times.</doc>
      <source-position filename="tepl-init.h" line="32"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="init" c:identifier="tepl_init" version="3.0">
      <doc xml:space="preserve"
           filename="tepl-init.c"
           line="26">Initializes the Tepl library (e.g. for the internationalization).

This function can be called several times, but is meant to be called at the
beginning of main(), before any other Tepl function call.

This function also calls amtk_init() and gtk_source_init().</doc>
      <source-position filename="tepl-init.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="iter_get_line_indentation"
              c:identifier="tepl_iter_get_line_indentation"
              version="2.0">
      <doc xml:space="preserve"
           filename="tepl-iter.c"
           line="59">Gets the indentation, as a string, of the line at @iter. @iter can be
anywhere in the line.

Possible use-case: to implement an action that inserts some text in a
#GtkTextBuffer. If the text to insert spans multiple lines, it is usually
desired to keep the same indentation level.</doc>
      <source-position filename="tepl-iter.h" line="31"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-iter.c"
             line="70">the line indentation at @iter. Free with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="iter" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-iter.c"
               line="61">a #GtkTextIter.</doc>
          <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
        </parameter>
      </parameters>
    </function>
    <function name="menu_shell_append_edit_actions"
              c:identifier="tepl_menu_shell_append_edit_actions"
              version="3.0">
      <doc xml:space="preserve"
           filename="tepl-menu-shell.c"
           line="31">Appends #GtkMenuItem's to @menu_shell for the following #GAction's:
- `"win.tepl-cut"`
- `"win.tepl-copy"`
- `"win.tepl-paste"`
- `"win.tepl-delete"`
- `"win.tepl-select-all"`

See the [list of GActions implemented in
TeplApplicationWindow][tepl-application-window-gactions]. This function
correctly uses the %AMTK_FACTORY_IGNORE_ACCELS_FOR_APP flag to create the
#GtkMenuItem's.</doc>
      <source-position filename="tepl-menu-shell.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="menu_shell" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-menu-shell.c"
               line="33">a #GtkMenuShell.</doc>
          <type name="Gtk.MenuShell" c:type="GtkMenuShell*"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_manager_init"
              c:identifier="tepl_metadata_manager_init"
              version="1.0">
      <doc xml:space="preserve"
           filename="tepl-metadata-manager.c"
           line="113">This function initializes the metadata manager.

The @metadata_path must be different for each process. It is advised for your
application to rely on #GApplication process uniqueness.

A good place to store the metadata is in a sub-directory of the user data
directory. See g_get_user_data_dir().</doc>
      <source-position filename="tepl-metadata-manager.h" line="32"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="metadata_path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-metadata-manager.c"
               line="115">the filename where the metadata is stored.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_manager_shutdown"
              c:identifier="tepl_metadata_manager_shutdown"
              version="1.0">
      <doc xml:space="preserve"
           filename="tepl-metadata-manager.c"
           line="150">This function saves synchronously metadata if they need to be saved, and
frees the internal data of the metadata manager.

See also tepl_finalize(), which calls this function.</doc>
      <source-position filename="tepl-metadata-manager.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="utils_get_file_extension"
              c:identifier="tepl_utils_get_file_extension"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl-utils.c"
           line="210">Examples:
- "file.pdf" returns ".pdf".
- "file.PDF" returns ".pdf".
- "file.tar.gz" returns ".gz".
- "path/to/file.pdf" returns ".pdf".
- "file" (without an extension) returns "" (the empty string).</doc>
      <source-position filename="tepl-utils.h" line="45"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-utils.c"
             line="221">the @filename's extension with the dot, in lowercase. Free with
g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="212">a filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_file_shortname"
              c:identifier="tepl_utils_get_file_shortname"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl-utils.c"
           line="233">Returns @filename without its extension. With the “extension” having the same
definition as in tepl_utils_get_file_extension(); in other words it returns
the other part of @filename.</doc>
      <source-position filename="tepl-utils.h" line="47"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-utils.c"
             line="241">the @filename without its extension. Free with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="235">a filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_replace_home_dir_with_tilde"
              c:identifier="tepl_utils_replace_home_dir_with_tilde"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl-utils.c"
           line="250">Replaces the home directory with a tilde, if the home directory is present in
the @filename.</doc>
      <source-position filename="tepl-utils.h" line="49"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-utils.c"
             line="257">the new filename. Free with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="252">the filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_str_end_truncate"
              c:identifier="tepl_utils_str_end_truncate"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl-utils.c"
           line="116">Like tepl_utils_str_middle_truncate() but the “…” character is at the end.</doc>
      <source-position filename="tepl-utils.h" line="36"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-utils.c"
             line="124">the truncated string. Free with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="118">a UTF-8 string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="truncate_length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="119">truncate the string at that length, in UTF-8 characters
  (not bytes).</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_str_middle_truncate"
              c:identifier="tepl_utils_str_middle_truncate"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl-utils.c"
           line="96">If @str is longer than @truncate_length, then this function returns @str
truncated in the middle with a “…” character. Otherwise it just returns a
copy of @str.</doc>
      <source-position filename="tepl-utils.h" line="33"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-utils.c"
             line="106">the truncated string. Free with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="98">a UTF-8 string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="truncate_length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="99">truncate the string at that length, in UTF-8 characters
  (not bytes).</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_str_replace"
              c:identifier="tepl_utils_str_replace"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl-utils.c"
           line="134">Replaces all occurences of @search by @replacement.

The function does only one pass, for example:
|[
tepl_utils_str_replace ("aaaa", "aa", "a");
]|
returns "aa", not "a".</doc>
      <source-position filename="tepl-utils.h" line="39"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl-utils.c"
             line="148">A newly allocated string with the replacements. Free with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="136">a string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="search" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="137">the search string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="replacement" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl-utils.c"
               line="138">the replacement string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
