<?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:doc="http://www.gtk.org/introspection/doc/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="300"/>
  <package name="libgedit-tepl-6"/>
  <c:include name="tepl/tepl.h"/>
  <doc:format name="unknown"/>
  <namespace name="Tepl"
             version="6"
             shared-library="libgedit-tepl-6.so.0.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/tepl-abstract-factory.h" line="20"/>
      <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/tepl-abstract-factory.h" line="21"/>
      <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/tepl-abstract-factory.h" line="24"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION"
                    c:identifier="TEPL_APPLICATION"
                    introspectable="0">
      <source-position filename="tepl/tepl-application.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_CLASS"
                    c:identifier="TEPL_APPLICATION_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-application.h" line="19"/>
      <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/tepl-application.h" line="22"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_WINDOW"
                    c:identifier="TEPL_APPLICATION_WINDOW"
                    introspectable="0">
      <source-position filename="tepl/tepl-application-window.h" line="18"/>
      <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/tepl-application-window.h" line="19"/>
      <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/tepl-application-window.h" line="22"/>
      <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/tepl-abstract-factory.h" line="75"/>
      <function name="get_singleton"
                c:identifier="tepl_abstract_factory_get_singleton"
                version="3.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.c"
             line="125">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/tepl-abstract-factory.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="133">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">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="45">Virtual function pointer for
  tepl_abstract_factory_create_file(). By default the #TeplFile is created
  with tepl_file_new().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="228">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/tepl-abstract-factory.c"
                 line="226">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/tepl-abstract-factory.c"
             line="161">Creates a main #GtkApplicationWindow in the sense of
tepl_application_window_is_main_window().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="59"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="169">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/tepl-abstract-factory.c"
                 line="163">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="164">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_metadata_manager_file"
                      invoker="create_metadata_manager_file"
                      version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.c"
             line="239">Creates a new #GFile that is then intended to be used as an argument to
tepl_metadata_manager_load_from_disk() and
tepl_metadata_manager_save_to_disk(). This function just creates the #GFile
object, it doesn't call any #TeplMetadataManager function.</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="69"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="248">a new #GFile, or %NULL if the vfunc is
not implemented.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="241">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_prefs_dialog"
                      invoker="create_prefs_dialog"
                      version="6.13">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="51">Virtual function pointer for
  tepl_abstract_factory_create_prefs_dialog(). By default the
  #TeplPrefsDialog is created with tepl_prefs_dialog_new().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="71"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="270">a new #TeplPrefsDialog, or %NULL if
  the vfunc is not implemented.</doc>
          <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="268">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_tab" invoker="create_tab" version="3.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="40">Virtual function pointer for tepl_abstract_factory_create_tab().
  By default the #TeplTab is created with tepl_tab_new().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="192">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/tepl-abstract-factory.c"
                 line="190">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/tepl-abstract-factory.c"
             line="203">Creates a new tab label for @tab, suitable for gtk_notebook_set_tab_label().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="210">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/tepl-abstract-factory.c"
                 line="205">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="206">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/tepl-abstract-factory.h" line="98"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="228">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/tepl-abstract-factory.c"
                 line="226">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/tepl-abstract-factory.c"
             line="161">Creates a main #GtkApplicationWindow in the sense of
tepl_application_window_is_main_window().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="87"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="169">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/tepl-abstract-factory.c"
                 line="163">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="164">a #GtkApplication.</doc>
            <type name="Gtk.Application" c:type="GtkApplication*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_metadata_manager_file"
              c:identifier="tepl_abstract_factory_create_metadata_manager_file"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.c"
             line="239">Creates a new #GFile that is then intended to be used as an argument to
tepl_metadata_manager_load_from_disk() and
tepl_metadata_manager_save_to_disk(). This function just creates the #GFile
object, it doesn't call any #TeplMetadataManager function.</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="101"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="248">a new #GFile, or %NULL if the vfunc is
not implemented.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="241">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_prefs_dialog"
              c:identifier="tepl_abstract_factory_create_prefs_dialog"
              version="6.13">
        <source-position filename="tepl/tepl-abstract-factory.h" line="105"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="270">a new #TeplPrefsDialog, or %NULL if
  the vfunc is not implemented.</doc>
          <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="268">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_tab"
              c:identifier="tepl_abstract_factory_create_tab"
              version="3.0">
        <source-position filename="tepl/tepl-abstract-factory.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="192">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/tepl-abstract-factory.c"
                 line="190">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/tepl-abstract-factory.c"
             line="203">Creates a new tab label for @tab, suitable for gtk_notebook_set_tab_label().</doc>
        <source-position filename="tepl/tepl-abstract-factory.h" line="94"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-abstract-factory.c"
               line="210">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/tepl-abstract-factory.c"
                 line="205">the #TeplAbstractFactory.</doc>
            <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="206">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/tepl-abstract-factory.c"
             line="96">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/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/tepl-abstract-factory.c"
                 line="98">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/tepl-abstract-factory.h" line="75"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="36">The parent class.</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_main_window">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="37">Virtual function pointer for
  tepl_abstract_factory_create_main_window(). It is not implemented by
  default.</doc>
        <callback name="create_main_window">
          <source-position filename="tepl/tepl-abstract-factory.h" line="59"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="169">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/tepl-abstract-factory.c"
                   line="163">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-abstract-factory.c"
                   line="164">a #GtkApplication.</doc>
              <type name="Gtk.Application" c:type="GtkApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_tab">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="40">Virtual function pointer for tepl_abstract_factory_create_tab().
  By default the #TeplTab is created with tepl_tab_new().</doc>
        <callback name="create_tab">
          <source-position filename="tepl/tepl-abstract-factory.h" line="62"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="192">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/tepl-abstract-factory.c"
                   line="190">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_tab_label">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="42">Virtual function pointer for
  tepl_abstract_factory_create_tab_label(). By default the tab label is
  created with tepl_tab_label_new().</doc>
        <callback name="create_tab_label">
          <source-position filename="tepl/tepl-abstract-factory.h" line="64"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="210">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/tepl-abstract-factory.c"
                   line="205">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
            <parameter name="tab" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-abstract-factory.c"
                   line="206">a #TeplTab.</doc>
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_file">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="45">Virtual function pointer for
  tepl_abstract_factory_create_file(). By default the #TeplFile is created
  with tepl_file_new().</doc>
        <callback name="create_file">
          <source-position filename="tepl/tepl-abstract-factory.h" line="67"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="228">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/tepl-abstract-factory.c"
                   line="226">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_metadata_manager_file">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="48">Virtual function pointer for
  tepl_abstract_factory_create_metadata_manager_file(). It is not implemented
  by default.</doc>
        <callback name="create_metadata_manager_file">
          <source-position filename="tepl/tepl-abstract-factory.h" line="69"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="248">a new #GFile, or %NULL if the vfunc is
not implemented.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-abstract-factory.c"
                   line="241">the #TeplAbstractFactory.</doc>
              <type name="AbstractFactory" c:type="TeplAbstractFactory*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_prefs_dialog">
        <doc xml:space="preserve"
             filename="tepl/tepl-abstract-factory.h"
             line="51">Virtual function pointer for
  tepl_abstract_factory_create_prefs_dialog(). By default the
  #TeplPrefsDialog is created with tepl_prefs_dialog_new().</doc>
        <callback name="create_prefs_dialog">
          <source-position filename="tepl/tepl-abstract-factory.h" line="71"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-abstract-factory.c"
                 line="270">a new #TeplPrefsDialog, or %NULL if
  the vfunc is not implemented.</doc>
            <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-abstract-factory.c"
                   line="268">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="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/tepl-application.h" line="40"/>
      <function name="get_default"
                c:identifier="tepl_application_get_default"
                version="2.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-application.c"
             line="314">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/tepl-application.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application.c"
               line="321">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/tepl-application.c"
             line="279">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/tepl-application.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application.c"
               line="286">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/tepl-application.c"
                 line="281">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/tepl-application.c"
             line="391">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/tepl-application.h" line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-application.c"
               line="398">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/tepl-application.c"
                 line="393">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/tepl-application.c"
             line="350">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/tepl-application.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application.c"
               line="359">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/tepl-application.c"
                 line="352">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_application"
              c:identifier="tepl_application_get_application"
              glib:get-property="application"
              version="2.0">
        <source-position filename="tepl/tepl-application.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application.c"
               line="339">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/tepl-application.c"
                 line="337">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/tepl-application.c"
             line="371">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/tepl-application.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application.c"
               line="380">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/tepl-application.c"
                 line="373">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/tepl-application.c"
             line="477">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/tepl-application.h" line="68"/>
        <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/tepl-application.c"
                 line="479">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_metadata"
              c:identifier="tepl_application_handle_metadata"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-application.c"
             line="640">This function:
- Connects to the #GApplication::startup signal to call
  tepl_metadata_manager_load_from_disk().
- Connects to the #GApplication::shutdown signal to call
  tepl_metadata_manager_save_to_disk() with @trim set to %TRUE.

It gets the #GFile by calling
tepl_abstract_factory_create_metadata_manager_file().</doc>
        <source-position filename="tepl/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/tepl-application.c"
                 line="642">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/tepl-application.c"
             line="560">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/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/tepl-application.c"
                 line="562">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/tepl-application.c"
             line="426">Calls g_application_open() with a single file and an empty hint.</doc>
        <source-position filename="tepl/tepl-application.h" line="64"/>
        <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/tepl-application.c"
                 line="428">a #TeplApplication.</doc>
            <type name="Application" c:type="TeplApplication*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-application.c"
                 line="429">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"
                getter="get_application">
        <doc xml:space="preserve"
             filename="tepl/tepl-application.c"
             line="251">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/tepl-application.h" line="40"/>
      <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"
            opaque="1">
      <source-position filename="tepl/tepl-application.h" line="26"/>
    </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/tepl-application-window.h" line="40"/>
      <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/tepl-application-window.c"
             line="404">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/tepl-application-window.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application-window.c"
               line="411">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/tepl-application-window.c"
                 line="406">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/tepl-application-window.c"
             line="614">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/tepl-application-window.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application-window.c"
               line="624">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/tepl-application-window.c"
                 line="616">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"
              glib:get-property="application-window"
              version="2.0">
        <source-position filename="tepl/tepl-application-window.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application-window.c"
               line="443">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/tepl-application-window.c"
                 line="441">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"
              glib:get-property="handle-title"
              version="4.0">
        <source-position filename="tepl/tepl-application-window.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application-window.c"
               line="690">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/tepl-application-window.c"
                 line="688">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/tepl-application-window.c"
             line="643">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/tepl-application-window.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-application-window.c"
               line="652">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/tepl-application-window.c"
                 line="645">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/tepl-application-window.c"
             line="726">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/tepl-application-window.h" line="69"/>
        <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/tepl-application-window.c"
                 line="728">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-application-window.c"
                 line="729">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="jump_to" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-application-window.c"
                 line="730">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"
              glib:set-property="handle-title"
              version="4.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-application-window.c"
             line="701">Sets the #TeplApplicationWindow:handle-title property.</doc>
        <source-position filename="tepl/tepl-application-window.h" line="65"/>
        <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/tepl-application-window.c"
                 line="703">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
          <parameter name="handle_title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-application-window.c"
                 line="704">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/tepl-application-window.c"
             line="550">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/tepl-application-window.h" line="52"/>
        <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/tepl-application-window.c"
                 line="552">a #TeplApplicationWindow.</doc>
            <type name="ApplicationWindow" c:type="TeplApplicationWindow*"/>
          </instance-parameter>
          <parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-application-window.c"
                 line="553">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"
                getter="get_application_window">
        <doc xml:space="preserve"
             filename="tepl/tepl-application-window.c"
             line="286">The #GtkApplicationWindow.</doc>
        <type name="Gtk.ApplicationWindow"/>
      </property>
      <property name="handle-title"
                version="4.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_handle_title"
                getter="get_handle_title"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="tepl/tepl-application-window.c"
             line="307">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/tepl-application-window.h" line="40"/>
      <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"
            opaque="1">
      <source-position filename="tepl/tepl-application-window.h" line="26"/>
    </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/tepl-buffer.h" line="32"/>
      <constructor name="new" c:identifier="tepl_buffer_new" version="1.0">
        <source-position filename="tepl/tepl-buffer.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="349">a new #TeplBuffer.</doc>
          <type name="Buffer" c:type="TeplBuffer*"/>
        </return-value>
      </constructor>
      <virtual-method name="tepl_cursor_moved">
        <source-position filename="tepl/tepl-buffer.h" line="29"/>
        <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="connect_style_scheme_settings"
              c:identifier="tepl_buffer_connect_style_scheme_settings"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="646">Connects #TeplSettings:style-scheme-id to #GtkSourceBuffer:style-scheme.</doc>
        <source-position filename="tepl/tepl-buffer.h" line="77"/>
        <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/tepl-buffer.c"
                 line="648">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="tepl_buffer_get_file"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="358">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/tepl-buffer.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="367">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/tepl-buffer.c"
                 line="360">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/tepl-buffer.c"
             line="532">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/tepl-buffer.h" line="74"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="541">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/tepl-buffer.c"
                 line="534">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata"
              c:identifier="tepl_buffer_get_metadata"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="381">Returns the #TeplMetadata of @buffer. The returned object is guaranteed to be
the same for the lifetime of @buffer.</doc>
        <source-position filename="tepl/tepl-buffer.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="388">the associated #TeplMetadata.</doc>
          <type name="Metadata" c:type="TeplMetadata*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-buffer.c"
                 line="383">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/tepl-buffer.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="676">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/tepl-buffer.c"
                 line="674">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/tepl-buffer.c"
             line="494">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/tepl-buffer.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="502">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/tepl-buffer.c"
                 line="496">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/tepl-buffer.c"
             line="462">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/tepl-buffer.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-buffer.c"
               line="475">%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/tepl-buffer.c"
                 line="464">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_metadata_from_metadata_manager"
              c:identifier="tepl_buffer_load_metadata_from_metadata_manager"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="402">Calls tepl_metadata_manager_copy_from() for #TeplFile:location (if not %NULL)
to the associated #TeplMetadata of @buffer.</doc>
        <source-position filename="tepl/tepl-buffer.h" line="60"/>
        <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/tepl-buffer.c"
                 line="404">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_metadata_into_metadata_manager"
              c:identifier="tepl_buffer_save_metadata_into_metadata_manager"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="432">Calls tepl_metadata_manager_merge_into() for #TeplFile:location (if not
%NULL) from the associated #TeplMetadata of @buffer.</doc>
        <source-position filename="tepl/tepl-buffer.h" line="64"/>
        <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/tepl-buffer.c"
                 line="434">a #TeplBuffer.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="tepl-full-title"
                version="3.0"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="266">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"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.c"
             line="251">The short title. See tepl_buffer_get_short_title().</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/tepl-buffer.c"
             line="283">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/tepl-buffer.h" line="32"/>
      <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/tepl-buffer.h" line="29"/>
          <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>
    <function-macro name="FILE" c:identifier="TEPL_FILE" introspectable="0">
      <source-position filename="tepl/tepl-file.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_CLASS"
                    c:identifier="TEPL_FILE_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-file.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_GET_CLASS"
                    c:identifier="TEPL_FILE_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-file.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_LOADER"
                    c:identifier="TEPL_FILE_LOADER"
                    introspectable="0">
      <source-position filename="tepl/tepl-file-loader.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_LOADER_CLASS"
                    c:identifier="TEPL_FILE_LOADER_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-file-loader.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_LOADER_GET_CLASS"
                    c:identifier="TEPL_FILE_LOADER_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-file-loader.h" line="23"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILE_SAVER"
                    c:identifier="TEPL_FILE_SAVER"
                    introspectable="0">
      <source-position filename="tepl/tepl-file-saver.h" line="21"/>
      <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/tepl-file-saver.h" line="22"/>
      <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/tepl-file-saver.h" line="25"/>
      <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/tepl-file.h" line="39"/>
      <constructor name="new" c:identifier="tepl_file_new" version="1.0">
        <source-position filename="tepl/tepl-file.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.c"
               line="354">a new #TeplFile object.</doc>
          <type name="File" c:type="TeplFile*"/>
        </return-value>
      </constructor>
      <function name="chooser_set_modal"
                c:identifier="tepl_file_chooser_set_modal"
                version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-chooser.c"
             line="16">Calls either gtk_native_dialog_set_modal() or gtk_window_set_modal()
depending on the @chooser type.</doc>
        <source-position filename="tepl/tepl-file-chooser.h" line="17"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-chooser.c"
                 line="18">a #GtkFileChooser.</doc>
            <type name="Gtk.FileChooser" c:type="GtkFileChooser*"/>
          </parameter>
          <parameter name="modal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-chooser.c"
                 line="19">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="chooser_set_parent"
                c:identifier="tepl_file_chooser_set_parent"
                version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-chooser.c"
             line="44">Sets or unsets a parent #GtkWindow for the @chooser dialog. It calls the
right functions depending on the type of @chooser.</doc>
        <source-position filename="tepl/tepl-file-chooser.h" line="21"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-chooser.c"
                 line="46">a #GtkFileChooser.</doc>
            <type name="Gtk.FileChooser" c:type="GtkFileChooser*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-chooser.c"
                 line="47">a #GtkWindow, or %NULL.</doc>
            <type name="Gtk.Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </function>
      <function name="chooser_show"
                c:identifier="tepl_file_chooser_show"
                version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-chooser.c"
             line="79">Calls gtk_native_dialog_show() or gtk_window_present() depending on the type
of @chooser.</doc>
        <source-position filename="tepl/tepl-file-chooser.h" line="25"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-chooser.c"
                 line="81">a #GtkFileChooser.</doc>
            <type name="Gtk.FileChooser" c:type="GtkFileChooser*"/>
          </parameter>
        </parameters>
      </function>
      <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/tepl-file.c"
             line="585">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/tepl-file.h" line="112"/>
        <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/tepl-file.c"
                 line="587">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_full_name"
              c:identifier="tepl_file_get_full_name"
              glib:get-property="full-name"
              version="6.4">
        <source-position filename="tepl/tepl-file.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.c"
               line="441">the value of the #TeplFile:full-name property. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file.c"
                 line="439">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="tepl_file_get_location"
              glib:get-property="location"
              version="1.0">
        <source-position filename="tepl/tepl-file.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.c"
               line="398">the value of the #TeplFile:location property.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file.c"
                 line="396">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"
              glib:get-property="newline-type"
              version="1.0">
        <source-position filename="tepl/tepl-file.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.c"
               line="481">the value of the #TeplFile:newline-type property.</doc>
          <type name="NewlineType" c:type="TeplNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file.c"
                 line="479">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"
              glib:get-property="short-name"
              version="5.0">
        <source-position filename="tepl/tepl-file.h" line="97"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.c"
               line="413">the value of the #TeplFile:short-name property. Free with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file.c"
                 line="411">a #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_location"
              c:identifier="tepl_file_set_location"
              glib:set-property="location"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.c"
             line="363">Sets the #TeplFile:location property.</doc>
        <source-position filename="tepl/tepl-file.h" line="93"/>
        <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/tepl-file.c"
                 line="365">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/tepl-file.c"
                 line="366">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/tepl-file.c"
             line="492">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/tepl-file.h" line="106"/>
        <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/tepl-file.c"
                 line="494">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/tepl-file.c"
                 line="495">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/tepl-file.c"
                 line="497">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/tepl-file.c"
                 line="498">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="full-name"
                transfer-ownership="none"
                getter="get_full_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.c"
             line="226">Convenience property for the full name of a #TeplFile.

When the #TeplFile:location is %NULL, this property has the same
value as the #TeplFile:short-name.

When the #TeplFile:location is not %NULL, this property contains the
full path to the location. It uses:
- g_file_get_parse_name()
- tepl_utils_replace_home_dir_with_tilde()</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="location"
                version="1.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_location"
                getter="get_location">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.c"
             line="165">The location.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="newline-type"
                version="1.0"
                transfer-ownership="none"
                getter="get_newline_type"
                default-value="TEPL_NEWLINE_TYPE_LF">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.c"
             line="181">The line ending type.</doc>
        <type name="NewlineType"/>
      </property>
      <property name="short-name"
                version="1.0"
                transfer-ownership="none"
                getter="get_short_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.c"
             line="197">The file short name.

When the #TeplFile:location is %NULL, the default instance of
#GflsUnsavedDocumentTitles is used to get a title.

When the #TeplFile:location is not %NULL, this property contains the
display-name (see #G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME). However,
requesting the display-name can take some time (for example for a
remote file with a slow network connection). When the
#TeplFile:location property is set, the display-name is fetched
asynchronously. When the display-name is available, this property is
notified. In the meantime – after the #TeplFile:location is set but
before receiving the display-name – a fallback implementation is used
that does no blocking I/O (but it may return a different result
compared to the real display-name).</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FilePrivate" c:type="TeplFilePrivate*"/>
      </field>
    </class>
    <record name="FileClass"
            c:type="TeplFileClass"
            glib:is-gtype-struct-for="File">
      <source-position filename="tepl/tepl-file.h" line="39"/>
      <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/tepl-file-loader.h" line="41"/>
      <constructor name="new"
                   c:identifier="tepl_file_loader_new"
                   version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-loader.c"
             line="234">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/tepl-file-loader.h" line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-loader.c"
               line="248">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/tepl-file-loader.c"
                 line="236">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/tepl-file-loader.c"
                 line="237">the #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer"
              c:identifier="tepl_file_loader_get_buffer"
              glib:get-property="buffer"
              version="1.0">
        <source-position filename="tepl/tepl-file-loader.h" line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-loader.c"
               line="268">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/tepl-file-loader.c"
                 line="266">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="tepl_file_loader_get_file"
              glib:get-property="file"
              version="1.0">
        <source-position filename="tepl/tepl-file-loader.h" line="54"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-loader.c"
               line="284">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/tepl-file-loader.c"
                 line="282">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="tepl_file_loader_get_location"
              glib:get-property="location"
              version="1.0">
        <source-position filename="tepl/tepl-file-loader.h" line="57"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-loader.c"
               line="299">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/tepl-file-loader.c"
                 line="297">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="5.0"
              glib:finish-func="load_finish">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-loader.c"
             line="389">Loads asynchronously the file content into the #TeplBuffer.

See the #GAsyncResult documentation to know how to use this function.</doc>
        <source-position filename="tepl/tepl-file-loader.h" line="60"/>
        <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/tepl-file-loader.c"
                 line="391">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-loader.c"
                 line="392">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/tepl-file-loader.c"
                 line="394">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/tepl-file-loader.c"
                 line="395">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/tepl-file-loader.c"
                 line="397">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/tepl-file-loader.c"
             line="445">Finishes a file loading started with tepl_file_loader_load_async().</doc>
        <source-position filename="tepl/tepl-file-loader.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-loader.c"
               line="453">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/tepl-file-loader.c"
                 line="447">a #TeplFileLoader.</doc>
            <type name="FileLoader" c:type="TeplFileLoader*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-loader.c"
                 line="448">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-loader.c"
             line="174">The #TeplBuffer to load the content into. The #TeplFileLoader object
has a weak reference to the buffer.</doc>
        <type name="Buffer"/>
      </property>
      <property name="file"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_file">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-loader.c"
             line="191">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"
                getter="get_location">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-loader.c"
             line="208">The #GFile to load. By default the location is taken from the
#TeplFile at construction time.</doc>
        <type name="Gio.File"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FileLoaderPrivate" c:type="TeplFileLoaderPrivate*"/>
      </field>
    </class>
    <record name="FileLoaderClass"
            c:type="TeplFileLoaderClass"
            glib:is-gtype-struct-for="FileLoader">
      <source-position filename="tepl/tepl-file-loader.h" line="41"/>
      <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="FileLoaderPrivate"
            c:type="TeplFileLoaderPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-file-loader.h" line="27"/>
    </record>
    <record name="FilePrivate"
            c:type="TeplFilePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-file.h" line="25"/>
    </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/tepl-file-saver.h" line="58"/>
      <constructor name="new" c:identifier="tepl_file_saver_new" version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="320">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/tepl-file-saver.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="331">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/tepl-file-saver.c"
                 line="322">the #TeplBuffer to save.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="323">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/tepl-file-saver.c"
             line="347">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 is suitable for a "save as" operation, or for saving a new
buffer for the first time.</doc>
        <source-position filename="tepl/tepl-file-saver.h" line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="361">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/tepl-file-saver.c"
                 line="349">the #TeplBuffer to save.</doc>
            <type name="Buffer" c:type="TeplBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="350">the #TeplFile.</doc>
            <type name="File" c:type="TeplFile*"/>
          </parameter>
          <parameter name="target_location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="351">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"
              glib:get-property="buffer"
              version="1.0">
        <source-position filename="tepl/tepl-file-saver.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="384">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/tepl-file-saver.c"
                 line="382">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="tepl_file_saver_get_file"
              glib:get-property="file"
              version="1.0">
        <source-position filename="tepl/tepl-file-saver.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="399">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/tepl-file-saver.c"
                 line="397">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="tepl_file_saver_get_flags"
              glib:get-property="flags"
              version="1.0">
        <source-position filename="tepl/tepl-file-saver.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="489">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/tepl-file-saver.c"
                 line="487">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="tepl_file_saver_get_location"
              glib:get-property="location"
              version="1.0">
        <source-position filename="tepl/tepl-file-saver.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="414">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/tepl-file-saver.c"
                 line="412">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"
              glib:get-property="newline-type"
              version="1.0">
        <source-position filename="tepl/tepl-file-saver.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="453">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/tepl-file-saver.c"
                 line="451">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="5.0"
              glib:finish-func="save_finish">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="559">Saves asynchronously the buffer into the file. See the #GAsyncResult
documentation to know how to use this function.</doc>
        <source-position filename="tepl/tepl-file-saver.h" line="96"/>
        <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/tepl-file-saver.c"
                 line="561">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="562">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/tepl-file-saver.c"
                 line="564">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/tepl-file-saver.c"
                 line="565">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/tepl-file-saver.c"
                 line="567">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/tepl-file-saver.c"
             line="609">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 and the newline type.

gtk_text_buffer_set_modified() is called with %FALSE if the file has been
saved successfully.</doc>
        <source-position filename="tepl/tepl-file-saver.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file-saver.c"
               line="623">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/tepl-file-saver.c"
                 line="611">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="612">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="tepl_file_saver_set_flags"
              glib:set-property="flags"
              version="1.0">
        <source-position filename="tepl/tepl-file-saver.h" line="89"/>
        <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/tepl-file-saver.c"
                 line="466">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="467">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"
              glib:set-property="newline-type"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="425">Sets the newline type. By default the newline type is taken from the
#TeplFile.</doc>
        <source-position filename="tepl/tepl-file-saver.h" line="82"/>
        <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/tepl-file-saver.c"
                 line="427">a #TeplFileSaver.</doc>
            <type name="FileSaver" c:type="TeplFileSaver*"/>
          </instance-parameter>
          <parameter name="newline_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-file-saver.c"
                 line="428">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"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="223">The #TeplBuffer to save. The #TeplFileSaver object has a weak
reference to the buffer.</doc>
        <type name="Buffer"/>
      </property>
      <property name="file"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_file">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="240">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"
                setter="set_flags"
                getter="get_flags"
                default-value="TEPL_FILE_SAVER_FLAGS_NONE">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="291">File saving flags.</doc>
        <type name="FileSaverFlags"/>
      </property>
      <property name="location"
                version="1.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_location">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="257">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"
                setter="set_newline_type"
                getter="get_newline_type"
                default-value="TEPL_NEWLINE_TYPE_LF">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.c"
             line="274">The newline type.</doc>
        <type name="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/tepl-file-saver.h" line="58"/>
      <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>
    <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/tepl-file-saver.h"
           line="31">Flags to define the behavior of a #TeplFileSaver.</doc>
      <member name="none"
              value="0"
              c:identifier="TEPL_FILE_SAVER_FLAGS_NONE"
              glib:nick="none"
              glib:name="TEPL_FILE_SAVER_FLAGS_NONE">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.h"
             line="33">No flags.</doc>
      </member>
      <member name="create_backup"
              value="1"
              c:identifier="TEPL_FILE_SAVER_FLAGS_CREATE_BACKUP"
              glib:nick="create-backup"
              glib:name="TEPL_FILE_SAVER_FLAGS_CREATE_BACKUP">
        <doc xml:space="preserve"
             filename="tepl/tepl-file-saver.h"
             line="34">Create a backup before saving the file.</doc>
      </member>
    </bitfield>
    <record name="FileSaverPrivate"
            c:type="TeplFileSaverPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-file-saver.h" line="29"/>
    </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/tepl-fold-region.h" line="27"/>
      <constructor name="new"
                   c:identifier="tepl_fold_region_new"
                   version="1.0">
        <source-position filename="tepl/tepl-fold-region.h" line="31"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-fold-region.c"
               line="242">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/tepl-fold-region.c"
                 line="238">a #GtkTextBuffer.</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-fold-region.c"
                 line="239">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-fold-region.c"
                 line="240">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/tepl-fold-region.c"
             line="352">Obtains iterators pointing to the start and end of the #TeplFoldRegion.</doc>
        <source-position filename="tepl/tepl-fold-region.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-fold-region.c"
               line="360">%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/tepl-fold-region.c"
                 line="354">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/tepl-fold-region.c"
                 line="355">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/tepl-fold-region.c"
                 line="356">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"
              glib:get-property="buffer"
              version="1.0">
        <source-position filename="tepl/tepl-fold-region.h" line="36"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-fold-region.c"
               line="269">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/tepl-fold-region.c"
                 line="267">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_folded"
              c:identifier="tepl_fold_region_get_folded"
              glib:get-property="folded"
              version="1.0">
        <source-position filename="tepl/tepl-fold-region.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-fold-region.c"
               line="289">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/tepl-fold-region.c"
                 line="287">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/tepl-fold-region.c"
             line="396">Sets the start and end of the #TeplFoldRegion.</doc>
        <source-position filename="tepl/tepl-fold-region.h" line="51"/>
        <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/tepl-fold-region.c"
                 line="398">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-fold-region.c"
                 line="399">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-fold-region.c"
                 line="400">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"
              glib:set-property="folded"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-fold-region.c"
             line="304">Folds or unfolds the region.</doc>
        <source-position filename="tepl/tepl-fold-region.h" line="42"/>
        <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/tepl-fold-region.c"
                 line="306">a #TeplFoldRegion.</doc>
            <type name="FoldRegion" c:type="TeplFoldRegion*"/>
          </instance-parameter>
          <parameter name="folded" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-fold-region.c"
                 line="307">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"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="tepl/tepl-fold-region.c"
             line="196">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"
                setter="set_folded"
                getter="get_folded"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="tepl/tepl-fold-region.c"
             line="213">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/tepl-fold-region.h" line="27"/>
      <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>
    <function-macro name="GOTO_LINE_BAR"
                    c:identifier="TEPL_GOTO_LINE_BAR"
                    introspectable="0">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GOTO_LINE_BAR_CLASS"
                    c:identifier="TEPL_GOTO_LINE_BAR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="19"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GOTO_LINE_BAR_GET_CLASS"
                    c:identifier="TEPL_GOTO_LINE_BAR_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="22"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="GotoLineBar"
           c:symbol-prefix="goto_line_bar"
           c:type="TeplGotoLineBar"
           parent="Gtk.Grid"
           glib:type-name="TeplGotoLineBar"
           glib:get-type="tepl_goto_line_bar_get_type"
           glib:type-struct="GotoLineBarClass">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="40"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new"
                   c:identifier="tepl_goto_line_bar_new"
                   version="5.0">
        <source-position filename="tepl/tepl-goto-line-bar.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-goto-line-bar.c"
               line="261">a new #TeplGotoLineBar widget.</doc>
          <type name="GotoLineBar" c:type="TeplGotoLineBar*"/>
        </return-value>
      </constructor>
      <method name="grab_focus_to_entry"
              c:identifier="tepl_goto_line_bar_grab_focus_to_entry"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-goto-line-bar.c"
             line="296">Calls gtk_widget_grab_focus() to the #GtkSearchEntry of @bar.</doc>
        <source-position filename="tepl/tepl-goto-line-bar.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-goto-line-bar.c"
                 line="298">a #TeplGotoLineBar.</doc>
            <type name="GotoLineBar" c:type="TeplGotoLineBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_view"
              c:identifier="tepl_goto_line_bar_set_view"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-goto-line-bar.c"
             line="270">Sets the #TeplView. tepl_view_goto_line() will be called on @view when the
user types a line number in the #GtkSearchEntry of @bar.

Only one #TeplView can be associated per #TeplGotoLineBar.</doc>
        <source-position filename="tepl/tepl-goto-line-bar.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-goto-line-bar.c"
                 line="272">a #TeplGotoLineBar.</doc>
            <type name="GotoLineBar" c:type="TeplGotoLineBar*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-goto-line-bar.c"
                 line="273">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Grid" c:type="GtkGrid"/>
      </field>
      <field name="priv">
        <type name="GotoLineBarPrivate" c:type="TeplGotoLineBarPrivate*"/>
      </field>
    </class>
    <record name="GotoLineBarClass"
            c:type="TeplGotoLineBarClass"
            glib:is-gtype-struct-for="GotoLineBar">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="40"/>
      <field name="parent_class">
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="GotoLineBarPrivate"
            c:type="TeplGotoLineBarPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="26"/>
    </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/tepl-gutter-renderer-folds.h" line="28"/>
      <constructor name="new"
                   c:identifier="tepl_gutter_renderer_folds_new"
                   version="1.0">
        <source-position filename="tepl/tepl-gutter-renderer-folds.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-gutter-renderer-folds.c"
               line="268">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/tepl-gutter-renderer-folds.c"
             line="277">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/tepl-gutter-renderer-folds.h"
                         line="62"/>
        <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/tepl-gutter-renderer-folds.c"
                 line="279">a #TeplGutterRendererFolds.</doc>
            <type name="GutterRendererFolds"
                  c:type="TeplGutterRendererFolds*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-gutter-renderer-folds.c"
                 line="280">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/tepl-gutter-renderer-folds.h" line="28"/>
      <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/tepl-gutter-renderer-folds.h"
           line="30">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"
              glib:name="TEPL_GUTTER_RENDERER_FOLDS_STATE_NONE">
        <doc xml:space="preserve"
             filename="tepl/tepl-gutter-renderer-folds.h"
             line="32">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"
              glib:name="TEPL_GUTTER_RENDERER_FOLDS_STATE_START_FOLDED">
        <doc xml:space="preserve"
             filename="tepl/tepl-gutter-renderer-folds.h"
             line="33">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"
              glib:name="TEPL_GUTTER_RENDERER_FOLDS_STATE_START_OPENED">
        <doc xml:space="preserve"
             filename="tepl/tepl-gutter-renderer-folds.h"
             line="35">Start of currently opened
  fold region.</doc>
      </member>
      <member name="continue"
              value="4"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_CONTINUE"
              glib:nick="continue"
              glib:name="TEPL_GUTTER_RENDERER_FOLDS_STATE_CONTINUE">
        <doc xml:space="preserve"
             filename="tepl/tepl-gutter-renderer-folds.h"
             line="37">Fold region continues.</doc>
      </member>
      <member name="end"
              value="8"
              c:identifier="TEPL_GUTTER_RENDERER_FOLDS_STATE_END"
              glib:nick="end"
              glib:name="TEPL_GUTTER_RENDERER_FOLDS_STATE_END">
        <doc xml:space="preserve"
             filename="tepl/tepl-gutter-renderer-folds.h"
             line="38">End of fold region.</doc>
      </member>
    </bitfield>
    <function-macro name="INFO_BAR"
                    c:identifier="TEPL_INFO_BAR"
                    introspectable="0">
      <source-position filename="tepl/tepl-info-bar.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFO_BAR_CLASS"
                    c:identifier="TEPL_INFO_BAR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-info-bar.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFO_BAR_GET_CLASS"
                    c:identifier="TEPL_INFO_BAR_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-info-bar.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ABSTRACT_FACTORY"
                    c:identifier="TEPL_IS_ABSTRACT_FACTORY"
                    introspectable="0">
      <source-position filename="tepl/tepl-abstract-factory.h" line="22"/>
      <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/tepl-abstract-factory.h" line="23"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION"
                    c:identifier="TEPL_IS_APPLICATION"
                    introspectable="0">
      <source-position filename="tepl/tepl-application.h" line="20"/>
      <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/tepl-application.h" line="21"/>
      <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/tepl-application-window.h" line="20"/>
      <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/tepl-application-window.h" line="21"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE"
                    c:identifier="TEPL_IS_FILE"
                    introspectable="0">
      <source-position filename="tepl/tepl-file.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE_CLASS"
                    c:identifier="TEPL_IS_FILE_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-file.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE_LOADER"
                    c:identifier="TEPL_IS_FILE_LOADER"
                    introspectable="0">
      <source-position filename="tepl/tepl-file-loader.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILE_LOADER_CLASS"
                    c:identifier="TEPL_IS_FILE_LOADER_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-file-loader.h" line="22"/>
      <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/tepl-file-saver.h" line="23"/>
      <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/tepl-file-saver.h" line="24"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GOTO_LINE_BAR"
                    c:identifier="TEPL_IS_GOTO_LINE_BAR"
                    introspectable="0">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="20"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GOTO_LINE_BAR_CLASS"
                    c:identifier="TEPL_IS_GOTO_LINE_BAR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-goto-line-bar.h" line="21"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFO_BAR"
                    c:identifier="TEPL_IS_INFO_BAR"
                    introspectable="0">
      <source-position filename="tepl/tepl-info-bar.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFO_BAR_CLASS"
                    c:identifier="TEPL_IS_INFO_BAR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-info-bar.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LANGUAGE_CHOOSER"
                    c:identifier="TEPL_IS_LANGUAGE_CHOOSER"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LANGUAGE_CHOOSER_DIALOG"
                    c:identifier="TEPL_IS_LANGUAGE_CHOOSER_DIALOG"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LANGUAGE_CHOOSER_DIALOG_CLASS"
                    c:identifier="TEPL_IS_LANGUAGE_CHOOSER_DIALOG_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LANGUAGE_CHOOSER_WIDGET"
                    c:identifier="TEPL_IS_LANGUAGE_CHOOSER_WIDGET"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LANGUAGE_CHOOSER_WIDGET_CLASS"
                    c:identifier="TEPL_IS_LANGUAGE_CHOOSER_WIDGET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LINE_COLUMN_INDICATOR"
                    c:identifier="TEPL_IS_LINE_COLUMN_INDICATOR"
                    introspectable="0">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_LINE_COLUMN_INDICATOR_CLASS"
                    c:identifier="TEPL_IS_LINE_COLUMN_INDICATOR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_METADATA"
                    c:identifier="TEPL_IS_METADATA"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_METADATA_CLASS"
                    c:identifier="TEPL_IS_METADATA_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_METADATA_MANAGER"
                    c:identifier="TEPL_IS_METADATA_MANAGER"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata-manager.h" line="20"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_METADATA_MANAGER_CLASS"
                    c:identifier="TEPL_IS_METADATA_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata-manager.h" line="21"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NOTEBOOK"
                    c:identifier="TEPL_IS_NOTEBOOK"
                    introspectable="0">
      <source-position filename="tepl/tepl-notebook.h" line="19"/>
      <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/tepl-notebook.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OVERWRITE_INDICATOR"
                    c:identifier="TEPL_IS_OVERWRITE_INDICATOR"
                    introspectable="0">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OVERWRITE_INDICATOR_CLASS"
                    c:identifier="TEPL_IS_OVERWRITE_INDICATOR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL"
                    c:identifier="TEPL_IS_PANEL"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL1"
                    c:identifier="TEPL_IS_PANEL1"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel1.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL1_CLASS"
                    c:identifier="TEPL_IS_PANEL1_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel1.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_ITEM"
                    c:identifier="TEPL_IS_PANEL_ITEM"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-item.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_ITEM_CLASS"
                    c:identifier="TEPL_IS_PANEL_ITEM_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-item.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_NOTEBOOK"
                    c:identifier="TEPL_IS_PANEL_NOTEBOOK"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-notebook.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_NOTEBOOK_CLASS"
                    c:identifier="TEPL_IS_PANEL_NOTEBOOK_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-notebook.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_SIMPLE"
                    c:identifier="TEPL_IS_PANEL_SIMPLE"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-simple.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_SIMPLE_CLASS"
                    c:identifier="TEPL_IS_PANEL_SIMPLE_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-simple.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_STACK"
                    c:identifier="TEPL_IS_PANEL_STACK"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-stack.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_STACK_CLASS"
                    c:identifier="TEPL_IS_PANEL_STACK_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-stack.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_SWITCHER_MENU"
                    c:identifier="TEPL_IS_PANEL_SWITCHER_MENU"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PANEL_SWITCHER_MENU_CLASS"
                    c:identifier="TEPL_IS_PANEL_SWITCHER_MENU_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PREFS_DIALOG"
                    c:identifier="TEPL_IS_PREFS_DIALOG"
                    introspectable="0">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PREFS_DIALOG_CLASS"
                    c:identifier="TEPL_IS_PREFS_DIALOG_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PROGRESS_INFO_BAR"
                    c:identifier="TEPL_IS_PROGRESS_INFO_BAR"
                    introspectable="0">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PROGRESS_INFO_BAR_CLASS"
                    c:identifier="TEPL_IS_PROGRESS_INFO_BAR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="22"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SETTINGS"
                    c:identifier="TEPL_IS_SETTINGS"
                    introspectable="0">
      <source-position filename="tepl/tepl-settings.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SETTINGS_CLASS"
                    c:identifier="TEPL_IS_SETTINGS_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-settings.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SPACE_DRAWER_PREFS"
                    c:identifier="TEPL_IS_SPACE_DRAWER_PREFS"
                    introspectable="0">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SPACE_DRAWER_PREFS_CLASS"
                    c:identifier="TEPL_IS_SPACE_DRAWER_PREFS_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STATUS_MENU_BUTTON"
                    c:identifier="TEPL_IS_STATUS_MENU_BUTTON"
                    introspectable="0">
      <source-position filename="tepl/tepl-status-menu-button.h" line="20"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STATUS_MENU_BUTTON_CLASS"
                    c:identifier="TEPL_IS_STATUS_MENU_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-status-menu-button.h" line="21"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STYLE_SCHEME_CHOOSER_FULL"
                    c:identifier="TEPL_IS_STYLE_SCHEME_CHOOSER_FULL"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STYLE_SCHEME_CHOOSER_FULL_CLASS"
                    c:identifier="TEPL_IS_STYLE_SCHEME_CHOOSER_FULL_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STYLE_SCHEME_CHOOSER_SIMPLE"
                    c:identifier="TEPL_IS_STYLE_SCHEME_CHOOSER_SIMPLE"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STYLE_SCHEME_CHOOSER_SIMPLE_CLASS"
                    c:identifier="TEPL_IS_STYLE_SCHEME_CHOOSER_SIMPLE_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TAB"
                    c:identifier="TEPL_IS_TAB"
                    introspectable="0">
      <source-position filename="tepl/tepl-tab.h" line="22"/>
      <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/tepl-tab.h" line="23"/>
      <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/tepl-tab-group.h" line="21"/>
      <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/tepl-tab-label.h" line="20"/>
      <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/tepl-tab-label.h" line="21"/>
      <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/tepl-info-bar.h" line="39"/>
      <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/tepl-info-bar.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-info-bar.c"
               line="349">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/tepl-info-bar.c"
             line="358">Creates a new #TeplInfoBar with an icon (depending on @msg_type), a primary
message and a secondary message.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-info-bar.c"
               line="367">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/tepl-info-bar.c"
                 line="360">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/tepl-info-bar.c"
                 line="361">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/tepl-info-bar.c"
                 line="362">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/tepl-info-bar.c"
             line="676">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/tepl-info-bar.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-info-bar.c"
               line="683">a new #GtkLabel suitable for a #GtkInfoBar.</doc>
          <type name="Gtk.Label" c:type="GtkLabel*"/>
        </return-value>
      </function>
      <function name="set_buttons_orientation"
                c:identifier="tepl_info_bar_set_buttons_orientation"
                version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="639">Sets the desired orientation (horizontal or vertical) for the action area as
returned by gtk_info_bar_get_action_area(). The action area is where the
buttons are placed.

The default value for a #TeplInfoBar is %GTK_ORIENTATION_VERTICAL. The reason
is because with a small #GtkWindow, if 3 or more buttons are shown
horizontally, there is not enough space for the text. And it can be worse
when the button labels are translated to another language. When the buttons
are packed vertically, there is usually no problem. A vertical action area
also follows the original design of #GtkInfoBar.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="641">a #GtkInfoBar.</doc>
            <type name="Gtk.InfoBar" c:type="GtkInfoBar*"/>
          </parameter>
          <parameter name="buttons_orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="642">the desired orientation.</doc>
            <type name="Gtk.Orientation" c:type="GtkOrientation"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_content_widget"
              c:identifier="tepl_info_bar_add_content_widget"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="543">Adds @widget to @info_bar at @location.

As described in #TeplInfoBarLocation, a #TeplInfoBar has internal containers
for the content area. So if 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/tepl-info-bar.h" line="101"/>
        <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/tepl-info-bar.c"
                 line="545">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="546">a #GtkWidget.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="547">a #TeplInfoBarLocation.</doc>
            <type name="InfoBarLocation" c:type="TeplInfoBarLocation"/>
          </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/tepl-info-bar.c"
             line="475">Adds a primary message to the %TEPL_INFO_BAR_LOCATION_ALONGSIDE_ICON
location.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="93"/>
        <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/tepl-info-bar.c"
                 line="477">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="primary_msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="478">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/tepl-info-bar.c"
             line="509">Adds a secondary message to the %TEPL_INFO_BAR_LOCATION_ALONGSIDE_ICON
location.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="97"/>
        <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/tepl-info-bar.c"
                 line="511">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="secondary_msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="512">a secondary message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_handle_close_response"
              c:identifier="tepl_info_bar_get_handle_close_response"
              glib:get-property="handle-close-response"
              version="6.0">
        <source-position filename="tepl/tepl-info-bar.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-info-bar.c"
               line="586">the value of the #TeplInfoBar:handle-close-response property.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="584">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_from_message_type"
              c:identifier="tepl_info_bar_get_icon_from_message_type"
              glib:get-property="icon-from-message-type"
              version="6.0">
        <source-position filename="tepl/tepl-info-bar.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-info-bar.c"
               line="398">the value of the #TeplInfoBar:icon-from-message-type property.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="396">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="tepl_info_bar_get_icon_name"
              glib:get-property="icon-name"
              version="6.0">
        <source-position filename="tepl/tepl-info-bar.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-info-bar.c"
               line="438">the value of the #TeplInfoBar:icon-name property.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="436">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_handle_close_response"
              c:identifier="tepl_info_bar_set_handle_close_response"
              glib:set-property="handle-close-response"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="597">Sets a new value to the #TeplInfoBar:handle-close-response property.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="109"/>
        <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/tepl-info-bar.c"
                 line="599">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="handle_close_response" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="600">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_from_message_type"
              c:identifier="tepl_info_bar_set_icon_from_message_type"
              glib:set-property="icon-from-message-type"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="409">Sets a new value to the #TeplInfoBar:icon-from-message-type property.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="82"/>
        <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/tepl-info-bar.c"
                 line="411">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="icon_from_message_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="412">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="tepl_info_bar_set_icon_name"
              glib:set-property="icon-name"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="449">Sets a new value to the #TeplInfoBar:icon-name property.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="89"/>
        <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/tepl-info-bar.c"
                 line="451">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-info-bar.c"
                 line="452">the new value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_close_button"
              c:identifier="tepl_info_bar_setup_close_button"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="621">Convenience function to set the #GtkInfoBar:show-close-button and
#TeplInfoBar:handle-close-response properties to %TRUE.</doc>
        <source-position filename="tepl/tepl-info-bar.h" line="113"/>
        <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/tepl-info-bar.c"
                 line="623">a #TeplInfoBar.</doc>
            <type name="InfoBar" c:type="TeplInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle-close-response"
                version="6.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_handle_close_response"
                getter="get_handle_close_response"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="203">If this property is %TRUE, then the #TeplInfoBar is destroyed with
gtk_widget_destroy() when the #GtkInfoBar::response signal is
received with the @response_id %GTK_RESPONSE_CLOSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon-from-message-type"
                version="6.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_icon_from_message_type"
                getter="get_icon_from_message_type"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="159">If this property is %TRUE, then an icon is shown on the left, based
on the value of the #GtkInfoBar:message-type property. For
%GTK_MESSAGE_OTHER no icon is shown.

If the #TeplInfoBar:icon-name property has a non-%NULL value, then
this property is not taken into account.

Note that setting this property doesn't change the value of the
#TeplInfoBar:icon-name property; the two properties are separate.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon-name"
                version="6.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.c"
             line="183">If set to a non-%NULL value, then an icon is shown on the left.

If this property has a non-%NULL value, then the
#TeplInfoBar:icon-from-message-type property is not taken into
account.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="Gtk.InfoBar" c:type="GtkInfoBar"/>
      </field>
      <field name="priv">
        <type name="InfoBarPrivate" c:type="TeplInfoBarPrivate*"/>
      </field>
    </class>
    <record name="InfoBarClass"
            c:type="TeplInfoBarClass"
            glib:is-gtype-struct-for="InfoBar">
      <source-position filename="tepl/tepl-info-bar.h" line="39"/>
      <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>
    <enumeration name="InfoBarLocation"
                 version="6.0"
                 glib:type-name="TeplInfoBarLocation"
                 glib:get-type="tepl_info_bar_location_get_type"
                 c:type="TeplInfoBarLocation">
      <doc xml:space="preserve"
           filename="tepl/tepl-info-bar.h"
           line="41">Location inside the content area.

The content area of a #TeplInfoBar contains a vertical container containing:
- First, an horizontal container containing:
  - A place for an optional icon.
  - The %TEPL_INFO_BAR_LOCATION_ALONGSIDE_ICON location, which is a vertical
    container that can contain: primary/secondary messages plus additional
    widgets, in the order that they are added.
- The %TEPL_INFO_BAR_LOCATION_BELOW_ICON location, which can contain
  additional widgets, in the order that they are added. So the widgets added
  here are under the icon and under the
  %TEPL_INFO_BAR_LOCATION_ALONGSIDE_ICON location.</doc>
      <member name="alongside_icon"
              value="0"
              c:identifier="TEPL_INFO_BAR_LOCATION_ALONGSIDE_ICON"
              glib:nick="alongside-icon"
              glib:name="TEPL_INFO_BAR_LOCATION_ALONGSIDE_ICON">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.h"
             line="43">on the right side of the icon.</doc>
      </member>
      <member name="below_icon"
              value="1"
              c:identifier="TEPL_INFO_BAR_LOCATION_BELOW_ICON"
              glib:nick="below-icon"
              glib:name="TEPL_INFO_BAR_LOCATION_BELOW_ICON">
        <doc xml:space="preserve"
             filename="tepl/tepl-info-bar.h"
             line="44">below the icon.</doc>
      </member>
    </enumeration>
    <record name="InfoBarPrivate"
            c:type="TeplInfoBarPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-info-bar.h" line="25"/>
    </record>
    <function-macro name="LANGUAGE_CHOOSER"
                    c:identifier="TEPL_LANGUAGE_CHOOSER"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_DIALOG"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_DIALOG"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_DIALOG_CLASS"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_DIALOG_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_DIALOG_GET_CLASS"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_DIALOG_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_GET_INTERFACE"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_GET_INTERFACE"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_WIDGET"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_WIDGET"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_WIDGET_CLASS"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_WIDGET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LANGUAGE_CHOOSER_WIDGET_GET_CLASS"
                    c:identifier="TEPL_LANGUAGE_CHOOSER_WIDGET_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LINE_COLUMN_INDICATOR"
                    c:identifier="TEPL_LINE_COLUMN_INDICATOR"
                    introspectable="0">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LINE_COLUMN_INDICATOR_CLASS"
                    c:identifier="TEPL_LINE_COLUMN_INDICATOR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LINE_COLUMN_INDICATOR_GET_CLASS"
                    c:identifier="TEPL_LINE_COLUMN_INDICATOR_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <interface name="LanguageChooser"
               c:symbol-prefix="language_chooser"
               c:type="TeplLanguageChooser"
               glib:type-name="TeplLanguageChooser"
               glib:get-type="tepl_language_chooser_get_type"
               glib:type-struct="LanguageChooserInterface">
      <source-position filename="tepl/tepl-language-chooser.h" line="47"/>
      <virtual-method name="language_activated">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.h"
             line="29">The function pointer for the
  #TeplLanguageChooser::language-activated signal.</doc>
        <source-position filename="tepl/tepl-language-chooser.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <type name="LanguageChooser" c:type="TeplLanguageChooser*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="select_language"
                      invoker="select_language"
                      version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.c"
             line="88">Selects @language in the list.</doc>
        <source-position filename="tepl/tepl-language-chooser.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-language-chooser.c"
                 line="90">a #TeplLanguageChooser.</doc>
            <type name="LanguageChooser" c:type="TeplLanguageChooser*"/>
          </instance-parameter>
          <parameter name="language"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-language-chooser.c"
                 line="91">a #GtkSourceLanguage, or %NULL for "Plain Text".</doc>
            <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="select_language"
              c:identifier="tepl_language_chooser_select_language"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.c"
             line="88">Selects @language in the list.</doc>
        <source-position filename="tepl/tepl-language-chooser.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-language-chooser.c"
                 line="90">a #TeplLanguageChooser.</doc>
            <type name="LanguageChooser" c:type="TeplLanguageChooser*"/>
          </instance-parameter>
          <parameter name="language"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-language-chooser.c"
                 line="91">a #GtkSourceLanguage, or %NULL for "Plain Text".</doc>
            <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="language-activated" when="last" version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.c"
             line="66">This signal is emitted when the user has chosen a language.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-language-chooser.c"
                 line="69">the #GtkSourceLanguage object that has been
  selected, or %NULL if "Plain Text" has been selected.</doc>
            <type name="GtkSource.Language"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <class name="LanguageChooserDialog"
           c:symbol-prefix="language_chooser_dialog"
           c:type="TeplLanguageChooserDialog"
           parent="Gtk.Dialog"
           glib:type-name="TeplLanguageChooserDialog"
           glib:get-type="tepl_language_chooser_dialog_get_type"
           glib:type-struct="LanguageChooserDialogClass">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="LanguageChooser"/>
      <constructor name="new"
                   c:identifier="tepl_language_chooser_dialog_new"
                   version="6.0">
        <source-position filename="tepl/tepl-language-chooser-dialog.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-language-chooser-dialog.c"
               line="154">a new #TeplLanguageChooserDialog widget.</doc>
          <type name="LanguageChooserDialog"
                c:type="TeplLanguageChooserDialog*"/>
        </return-value>
        <parameters>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-language-chooser-dialog.c"
                 line="152">transient parent of the dialog, or %NULL.</doc>
            <type name="Gtk.Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="Gtk.Dialog" c:type="GtkDialog"/>
      </field>
      <field name="priv">
        <type name="LanguageChooserDialogPrivate"
              c:type="TeplLanguageChooserDialogPrivate*"/>
      </field>
    </class>
    <record name="LanguageChooserDialogClass"
            c:type="TeplLanguageChooserDialogClass"
            glib:is-gtype-struct-for="LanguageChooserDialog">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="39"/>
      <field name="parent_class">
        <type name="Gtk.DialogClass" c:type="GtkDialogClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="LanguageChooserDialogPrivate"
            c:type="TeplLanguageChooserDialogPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-language-chooser-dialog.h"
                       line="25"/>
    </record>
    <record name="LanguageChooserInterface"
            c:type="TeplLanguageChooserInterface"
            glib:is-gtype-struct-for="LanguageChooser"
            version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-language-chooser.h"
           line="24">The virtual function table for #TeplLanguageChooser.</doc>
      <source-position filename="tepl/tepl-language-chooser.h" line="47"/>
      <field name="parent_interface">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.h"
             line="26">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="select_language">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.h"
             line="27">The virtual function pointer for tepl_language_chooser_select_language().
  By default, does nothing.</doc>
        <callback name="select_language">
          <source-position filename="tepl/tepl-language-chooser.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="chooser" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-language-chooser.c"
                   line="90">a #TeplLanguageChooser.</doc>
              <type name="LanguageChooser" c:type="TeplLanguageChooser*"/>
            </parameter>
            <parameter name="language"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="tepl/tepl-language-chooser.c"
                   line="91">a #GtkSourceLanguage, or %NULL for "Plain Text".</doc>
              <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="language_activated">
        <doc xml:space="preserve"
             filename="tepl/tepl-language-chooser.h"
             line="29">The function pointer for the
  #TeplLanguageChooser::language-activated signal.</doc>
        <callback name="language_activated">
          <source-position filename="tepl/tepl-language-chooser.h" line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="chooser" transfer-ownership="none">
              <type name="LanguageChooser" c:type="TeplLanguageChooser*"/>
            </parameter>
            <parameter name="language" transfer-ownership="none">
              <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="LanguageChooserWidget"
           c:symbol-prefix="language_chooser_widget"
           c:type="TeplLanguageChooserWidget"
           parent="Gtk.Grid"
           glib:type-name="TeplLanguageChooserWidget"
           glib:get-type="tepl_language_chooser_widget_get_type"
           glib:type-struct="LanguageChooserWidgetClass">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <implements name="LanguageChooser"/>
      <constructor name="new"
                   c:identifier="tepl_language_chooser_widget_new"
                   version="6.0">
        <source-position filename="tepl/tepl-language-chooser-widget.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-language-chooser-widget.c"
               line="499">a new #TeplLanguageChooserWidget.</doc>
          <type name="LanguageChooserWidget"
                c:type="TeplLanguageChooserWidget*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="Gtk.Grid" c:type="GtkGrid"/>
      </field>
      <field name="priv">
        <type name="LanguageChooserWidgetPrivate"
              c:type="TeplLanguageChooserWidgetPrivate*"/>
      </field>
    </class>
    <record name="LanguageChooserWidgetClass"
            c:type="TeplLanguageChooserWidgetClass"
            glib:is-gtype-struct-for="LanguageChooserWidget">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="39"/>
      <field name="parent_class">
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="LanguageChooserWidgetPrivate"
            c:type="TeplLanguageChooserWidgetPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-language-chooser-widget.h"
                       line="25"/>
    </record>
    <class name="LineColumnIndicator"
           c:symbol-prefix="line_column_indicator"
           c:type="TeplLineColumnIndicator"
           parent="Gtk.Bin"
           glib:type-name="TeplLineColumnIndicator"
           glib:get-type="tepl_line_column_indicator_get_type"
           glib:type-struct="LineColumnIndicatorClass">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_line_column_indicator_new"
                   version="6.4">
        <source-position filename="tepl/tepl-line-column-indicator.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-line-column-indicator.c"
               line="187">a new #TeplLineColumnIndicator widget.</doc>
          <type name="LineColumnIndicator" c:type="TeplLineColumnIndicator*"/>
        </return-value>
      </constructor>
      <method name="set_tab_group"
              c:identifier="tepl_line_column_indicator_set_tab_group"
              version="6.4">
        <doc xml:space="preserve"
             filename="tepl/tepl-line-column-indicator.c"
             line="325">Sets a #TeplTabGroup to update automatically the values for the line and
column of the current cursor position, for the current
#TeplTabGroup:active-tab.

This function can be called only once per @indicator.

Use tepl_line_column_indicator_set_view() or
tepl_line_column_indicator_set_tab_group(), but not both.</doc>
        <source-position filename="tepl/tepl-line-column-indicator.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="indicator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-line-column-indicator.c"
                 line="327">a #TeplLineColumnIndicator.</doc>
            <type name="LineColumnIndicator"
                  c:type="TeplLineColumnIndicator*"/>
          </instance-parameter>
          <parameter name="tab_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-line-column-indicator.c"
                 line="328">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_view"
              c:identifier="tepl_line_column_indicator_set_view"
              version="6.4">
        <doc xml:space="preserve"
             filename="tepl/tepl-line-column-indicator.c"
             line="290">Sets a #TeplView to update automatically the values for the line and column
of the current cursor position. If @view is %NULL, then @indicator will be
empty.

Use tepl_line_column_indicator_set_view() or
tepl_line_column_indicator_set_tab_group(), but not both.</doc>
        <source-position filename="tepl/tepl-line-column-indicator.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="indicator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-line-column-indicator.c"
                 line="292">a #TeplLineColumnIndicator.</doc>
            <type name="LineColumnIndicator"
                  c:type="TeplLineColumnIndicator*"/>
          </instance-parameter>
          <parameter name="view"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-line-column-indicator.c"
                 line="293">a #TeplView, or %NULL.</doc>
            <type name="View" c:type="TeplView*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <field name="priv">
        <type name="LineColumnIndicatorPrivate"
              c:type="TeplLineColumnIndicatorPrivate*"/>
      </field>
    </class>
    <record name="LineColumnIndicatorClass"
            c:type="TeplLineColumnIndicatorClass"
            glib:is-gtype-struct-for="LineColumnIndicator">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="LineColumnIndicatorPrivate"
            c:type="TeplLineColumnIndicatorPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-line-column-indicator.h" line="25"/>
    </record>
    <function-macro name="METADATA"
                    c:identifier="TEPL_METADATA"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_CLASS"
                    c:identifier="TEPL_METADATA_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_GET_CLASS"
                    c:identifier="TEPL_METADATA_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_MANAGER"
                    c:identifier="TEPL_METADATA_MANAGER"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata-manager.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_MANAGER_CLASS"
                    c:identifier="TEPL_METADATA_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata-manager.h" line="19"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_MANAGER_GET_CLASS"
                    c:identifier="TEPL_METADATA_MANAGER_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-metadata-manager.h" line="22"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Metadata"
           c:symbol-prefix="metadata"
           c:type="TeplMetadata"
           parent="GObject.Object"
           glib:type-name="TeplMetadata"
           glib:get-type="tepl_metadata_get_type"
           glib:type-struct="MetadataClass">
      <source-position filename="tepl/tepl-metadata.h" line="39"/>
      <constructor name="new" c:identifier="tepl_metadata_new" version="5.0">
        <source-position filename="tepl/tepl-metadata.h" line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-metadata.c"
               line="84">a new, empty #TeplMetadata object.</doc>
          <type name="Metadata" c:type="TeplMetadata*"/>
        </return-value>
      </constructor>
      <method name="get" c:identifier="tepl_metadata_get" version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata.c"
             line="93">Gets the value of a metadata stored in the @metadata object memory.

@key must follow [the requirements explained in the class
description][tepl-metadata-keys-requirements].</doc>
        <source-position filename="tepl/tepl-metadata.h" line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-metadata.c"
               line="103">the associated value (a UTF-8 string),
or %NULL. Free with g_free() when no longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata.c"
                 line="95">a #TeplMetadata.</doc>
            <type name="Metadata" c:type="TeplMetadata*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata.c"
                 line="96">a key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="tepl_metadata_set" version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata.c"
             line="117">Sets or unsets @key. This function just stores the new metadata value in the
@metadata object memory.

@key must follow [the requirements explained in the class
description][tepl-metadata-keys-requirements].</doc>
        <source-position filename="tepl/tepl-metadata.h" line="52"/>
        <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/tepl-metadata.c"
                 line="119">a #TeplMetadata.</doc>
            <type name="Metadata" c:type="TeplMetadata*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata.c"
                 line="120">a key.</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/tepl-metadata.c"
                 line="121">a nul-terminated UTF-8 string, or %NULL to unset the key.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MetadataPrivate" c:type="TeplMetadataPrivate*"/>
      </field>
    </class>
    <record name="MetadataClass"
            c:type="TeplMetadataClass"
            glib:is-gtype-struct-for="Metadata">
      <source-position filename="tepl/tepl-metadata.h" line="39"/>
      <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="MetadataManager"
           c:symbol-prefix="metadata_manager"
           c:type="TeplMetadataManager"
           parent="GObject.Object"
           glib:type-name="TeplMetadataManager"
           glib:get-type="tepl_metadata_manager_get_type"
           glib:type-struct="MetadataManagerClass">
      <source-position filename="tepl/tepl-metadata-manager.h" line="40"/>
      <function name="get_singleton"
                c:identifier="tepl_metadata_manager_get_singleton"
                version="5.0">
        <source-position filename="tepl/tepl-metadata-manager.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-metadata-manager.c"
               line="106">the #TeplMetadataManager singleton instance.</doc>
          <type name="MetadataManager" c:type="TeplMetadataManager*"/>
        </return-value>
      </function>
      <method name="copy_from"
              c:identifier="tepl_metadata_manager_copy_from"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata-manager.c"
             line="314">Copies the metadata stored in @from_manager for @for_location into
@to_metadata.

If @to_metadata already contains a key that is also present in @from_manager,
the value in @to_metadata is overwritten.

If @to_metadata already contains a key that is not present in @from_manager,
the key/value pair is kept in @to_metadata, it is not erased.</doc>
        <source-position filename="tepl/tepl-metadata-manager.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="from_manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="316">the #TeplMetadataManager.</doc>
            <type name="MetadataManager" c:type="TeplMetadataManager*"/>
          </instance-parameter>
          <parameter name="for_location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="317">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="to_metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="318">a #TeplMetadata.</doc>
            <type name="Metadata" c:type="TeplMetadata*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_disk"
              c:identifier="tepl_metadata_manager_load_from_disk"
              version="5.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata-manager.c"
             line="196">Loads synchronously all the metadata from @from_file into @manager.

A good moment to call this function is on application startup, see the
#GApplication::startup signal.</doc>
        <source-position filename="tepl/tepl-metadata-manager.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-metadata-manager.c"
               line="207">whether the operation was successful.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="198">the #TeplMetadataManager.</doc>
            <type name="MetadataManager" c:type="TeplMetadataManager*"/>
          </instance-parameter>
          <parameter name="from_file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="199">the #GFile to load metadata from.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge_into"
              c:identifier="tepl_metadata_manager_merge_into"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata-manager.c"
             line="350">Merges the metadata from @from_metadata into @into_manager for @for_location.

If a key from @from_metadata has been set to %NULL, the key/value pair is
removed from @into_manager. In other words that key/value pair will not be
saved at all when calling tepl_metadata_manager_save_to_disk().

If @into_manager already contains a key that is not present in
@from_metadata, the key/value pair is kept in @into_manager, it is not
erased.</doc>
        <source-position filename="tepl/tepl-metadata-manager.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="into_manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="352">the #TeplMetadataManager.</doc>
            <type name="MetadataManager" c:type="TeplMetadataManager*"/>
          </instance-parameter>
          <parameter name="for_location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="353">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="from_metadata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="354">a #TeplMetadata.</doc>
            <type name="Metadata" c:type="TeplMetadata*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_disk"
              c:identifier="tepl_metadata_manager_save_to_disk"
              version="5.0"
              throws="1">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata-manager.c"
             line="249">Saves synchronously all the metadata from @manager to @to_file. The parent
directories of @to_file are created if needed.

A good moment to call this function is on application shutdown, see the
#GApplication::shutdown signal.</doc>
        <source-position filename="tepl/tepl-metadata-manager.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-metadata-manager.c"
               line="262">whether the operation was successful.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="251">the #TeplMetadataManager.</doc>
            <type name="MetadataManager" c:type="TeplMetadataManager*"/>
          </instance-parameter>
          <parameter name="to_file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="252">the #GFile to save metadata to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="trim" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="253">if %TRUE, tepl_metadata_manager_trim() is called with -1.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="trim"
              c:identifier="tepl_metadata_manager_trim"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-metadata-manager.c"
             line="134">The purpose of having a maximum size is to avoid that the file on disk grows
indefinitely.

@max_number_of_locations is the maximum number of #GFile locations for which
metadata are kept. This function discards the least recently accessed
metadata if needed.

If @max_number_of_locations is -1, a default internal value is used that
should fit most applications' needs.</doc>
        <source-position filename="tepl/tepl-metadata-manager.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="136">the #TeplMetadataManager.</doc>
            <type name="MetadataManager" c:type="TeplMetadataManager*"/>
          </instance-parameter>
          <parameter name="max_number_of_locations" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-metadata-manager.c"
                 line="137">the maximum size, or -1 for the default value.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MetadataManagerPrivate"
              c:type="TeplMetadataManagerPrivate*"/>
      </field>
    </class>
    <record name="MetadataManagerClass"
            c:type="TeplMetadataManagerClass"
            glib:is-gtype-struct-for="MetadataManager">
      <source-position filename="tepl/tepl-metadata-manager.h" line="40"/>
      <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="MetadataManagerPrivate"
            c:type="TeplMetadataManagerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-metadata-manager.h" line="26"/>
    </record>
    <record name="MetadataPrivate"
            c:type="TeplMetadataPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-metadata.h" line="25"/>
    </record>
    <callback name="MountOperationFactory"
              c:type="TeplMountOperationFactory"
              version="1.0"
              introspectable="0">
      <doc xml:space="preserve"
           filename="tepl/tepl-file.h"
           line="41">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/tepl-file.h" line="51"/>
      <return-value>
        <type name="Gio.MountOperation" c:type="GMountOperation*"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.h"
               line="43">a #TeplFile.</doc>
          <type name="File" c:type="TeplFile*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-file.h"
               line="44">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/tepl-notebook.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NOTEBOOK_CLASS"
                    c:identifier="TEPL_NOTEBOOK_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-notebook.h" line="18"/>
      <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/tepl-notebook.h" line="21"/>
      <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"
              glib:name="TEPL_NEWLINE_TYPE_LF">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.h"
             line="56">line feed, used on UNIX.</doc>
      </member>
      <member name="cr"
              value="1"
              c:identifier="TEPL_NEWLINE_TYPE_CR"
              glib:nick="cr"
              glib:name="TEPL_NEWLINE_TYPE_CR">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.h"
             line="57">carriage return, used on Mac.</doc>
      </member>
      <member name="cr_lf"
              value="2"
              c:identifier="TEPL_NEWLINE_TYPE_CR_LF"
              glib:nick="cr-lf"
              glib:name="TEPL_NEWLINE_TYPE_CR_LF">
        <doc xml:space="preserve"
             filename="tepl/tepl-file.h"
             line="58">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/tepl-notebook.h" line="39"/>
      <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/tepl-notebook.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-notebook.c"
               line="303">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/tepl-notebook.h" line="39"/>
      <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"
            opaque="1">
      <source-position filename="tepl/tepl-notebook.h" line="25"/>
    </record>
    <function-macro name="OVERWRITE_INDICATOR"
                    c:identifier="TEPL_OVERWRITE_INDICATOR"
                    introspectable="0">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OVERWRITE_INDICATOR_CLASS"
                    c:identifier="TEPL_OVERWRITE_INDICATOR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OVERWRITE_INDICATOR_GET_CLASS"
                    c:identifier="TEPL_OVERWRITE_INDICATOR_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="OverwriteIndicator"
           c:symbol-prefix="overwrite_indicator"
           c:type="TeplOverwriteIndicator"
           parent="Gtk.Bin"
           glib:type-name="TeplOverwriteIndicator"
           glib:get-type="tepl_overwrite_indicator_get_type"
           glib:type-struct="OverwriteIndicatorClass">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_overwrite_indicator_new"
                   version="6.4">
        <source-position filename="tepl/tepl-overwrite-indicator.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-overwrite-indicator.c"
               line="210">a new #TeplOverwriteIndicator.</doc>
          <type name="OverwriteIndicator" c:type="TeplOverwriteIndicator*"/>
        </return-value>
      </constructor>
      <method name="get_overwrite"
              c:identifier="tepl_overwrite_indicator_get_overwrite"
              glib:get-property="overwrite"
              version="6.4">
        <source-position filename="tepl/tepl-overwrite-indicator.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-overwrite-indicator.c"
               line="223">the value of the #TeplOverwriteIndicator:overwrite property.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="indicator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-overwrite-indicator.c"
                 line="221">a #TeplOverwriteIndicator.</doc>
            <type name="OverwriteIndicator" c:type="TeplOverwriteIndicator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_overwrite"
              c:identifier="tepl_overwrite_indicator_set_overwrite"
              glib:set-property="overwrite"
              version="6.4">
        <doc xml:space="preserve"
             filename="tepl/tepl-overwrite-indicator.c"
             line="234">Sets a new value to the #TeplOverwriteIndicator:overwrite property.</doc>
        <source-position filename="tepl/tepl-overwrite-indicator.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="indicator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-overwrite-indicator.c"
                 line="236">a #TeplOverwriteIndicator.</doc>
            <type name="OverwriteIndicator" c:type="TeplOverwriteIndicator*"/>
          </instance-parameter>
          <parameter name="overwrite" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-overwrite-indicator.c"
                 line="237">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_view"
              c:identifier="tepl_overwrite_indicator_set_view"
              version="6.4">
        <doc xml:space="preserve"
             filename="tepl/tepl-overwrite-indicator.c"
             line="315">Sets a #GtkTextView to update automatically the state of @indicator according
to @view. If @view is %NULL, then @indicator will be empty.</doc>
        <source-position filename="tepl/tepl-overwrite-indicator.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="indicator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-overwrite-indicator.c"
                 line="317">a #TeplOverwriteIndicator.</doc>
            <type name="OverwriteIndicator" c:type="TeplOverwriteIndicator*"/>
          </instance-parameter>
          <parameter name="view"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-overwrite-indicator.c"
                 line="318">a #GtkTextView, or %NULL.</doc>
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
        </parameters>
      </method>
      <property name="overwrite"
                version="6.4"
                writable="1"
                transfer-ownership="none"
                setter="set_overwrite"
                getter="get_overwrite"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="tepl/tepl-overwrite-indicator.c"
             line="153">- If %TRUE, indicates the overwrite mode.
- If %FALSE, indicates the insert mode.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <field name="priv">
        <type name="OverwriteIndicatorPrivate"
              c:type="TeplOverwriteIndicatorPrivate*"/>
      </field>
    </class>
    <record name="OverwriteIndicatorClass"
            c:type="TeplOverwriteIndicatorClass"
            glib:is-gtype-struct-for="OverwriteIndicator">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="OverwriteIndicatorPrivate"
            c:type="TeplOverwriteIndicatorPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-overwrite-indicator.h" line="25"/>
    </record>
    <function-macro name="PANEL" c:identifier="TEPL_PANEL" introspectable="0">
      <source-position filename="tepl/tepl-panel.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL1"
                    c:identifier="TEPL_PANEL1"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel1.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL1_CLASS"
                    c:identifier="TEPL_PANEL1_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel1.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL1_GET_CLASS"
                    c:identifier="TEPL_PANEL1_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel1.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_GET_INTERFACE"
                    c:identifier="TEPL_PANEL_GET_INTERFACE"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_ITEM"
                    c:identifier="TEPL_PANEL_ITEM"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-item.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_ITEM_CLASS"
                    c:identifier="TEPL_PANEL_ITEM_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-item.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_ITEM_GET_CLASS"
                    c:identifier="TEPL_PANEL_ITEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-item.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_NOTEBOOK"
                    c:identifier="TEPL_PANEL_NOTEBOOK"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-notebook.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_NOTEBOOK_CLASS"
                    c:identifier="TEPL_PANEL_NOTEBOOK_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-notebook.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_NOTEBOOK_GET_CLASS"
                    c:identifier="TEPL_PANEL_NOTEBOOK_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-notebook.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_SIMPLE"
                    c:identifier="TEPL_PANEL_SIMPLE"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-simple.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_SIMPLE_CLASS"
                    c:identifier="TEPL_PANEL_SIMPLE_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-simple.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_SIMPLE_GET_CLASS"
                    c:identifier="TEPL_PANEL_SIMPLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-simple.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_STACK"
                    c:identifier="TEPL_PANEL_STACK"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-stack.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_STACK_CLASS"
                    c:identifier="TEPL_PANEL_STACK_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-stack.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_STACK_GET_CLASS"
                    c:identifier="TEPL_PANEL_STACK_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-stack.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_SWITCHER_MENU"
                    c:identifier="TEPL_PANEL_SWITCHER_MENU"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_SWITCHER_MENU_CLASS"
                    c:identifier="TEPL_PANEL_SWITCHER_MENU_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PANEL_SWITCHER_MENU_GET_CLASS"
                    c:identifier="TEPL_PANEL_SWITCHER_MENU_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PREFS_DIALOG"
                    c:identifier="TEPL_PREFS_DIALOG"
                    introspectable="0">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PREFS_DIALOG_CLASS"
                    c:identifier="TEPL_PREFS_DIALOG_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PREFS_DIALOG_GET_CLASS"
                    c:identifier="TEPL_PREFS_DIALOG_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PROGRESS_INFO_BAR"
                    c:identifier="TEPL_PROGRESS_INFO_BAR"
                    introspectable="0">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="19"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PROGRESS_INFO_BAR_CLASS"
                    c:identifier="TEPL_PROGRESS_INFO_BAR_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PROGRESS_INFO_BAR_GET_CLASS"
                    c:identifier="TEPL_PROGRESS_INFO_BAR_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="23"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <interface name="Panel"
               c:symbol-prefix="panel"
               c:type="TeplPanel"
               glib:type-name="TeplPanel"
               glib:get-type="tepl_panel_get_type"
               glib:type-struct="PanelInterface">
      <source-position filename="tepl/tepl-panel.h" line="50"/>
      <virtual-method name="add" invoker="add" version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.c"
             line="44">Adds an item to the panel.</doc>
        <source-position filename="tepl/tepl-panel.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="46">a #TeplPanel.</doc>
            <type name="Panel" c:type="TeplPanel*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="47">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove" invoker="remove" version="6.8">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.c"
             line="63">Removes an item from the panel.</doc>
        <source-position filename="tepl/tepl-panel.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="65">a #TeplPanel.</doc>
            <type name="Panel" c:type="TeplPanel*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="66">the #TeplPanelItem to remove.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_active" invoker="set_active" version="6.8">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.c"
             line="82">Sets @item to be the one that is currently shown in @panel.

Only one #TeplPanelItem is shown at a time in a #TeplPanel.</doc>
        <source-position filename="tepl/tepl-panel.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="84">a #TeplPanel.</doc>
            <type name="Panel" c:type="TeplPanel*"/>
          </instance-parameter>
          <parameter name="item"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="85">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="tepl_panel_add" version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.c"
             line="44">Adds an item to the panel.</doc>
        <source-position filename="tepl/tepl-panel.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="46">a #TeplPanel.</doc>
            <type name="Panel" c:type="TeplPanel*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="47">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="tepl_panel_remove" version="6.8">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.c"
             line="63">Removes an item from the panel.</doc>
        <source-position filename="tepl/tepl-panel.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="65">a #TeplPanel.</doc>
            <type name="Panel" c:type="TeplPanel*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="66">the #TeplPanelItem to remove.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_active"
              c:identifier="tepl_panel_set_active"
              version="6.8">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.c"
             line="82">Sets @item to be the one that is currently shown in @panel.

Only one #TeplPanelItem is shown at a time in a #TeplPanel.</doc>
        <source-position filename="tepl/tepl-panel.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="84">a #TeplPanel.</doc>
            <type name="Panel" c:type="TeplPanel*"/>
          </instance-parameter>
          <parameter name="item"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel.c"
                 line="85">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <class name="Panel1"
           c:symbol-prefix="panel1"
           c:type="TeplPanel1"
           parent="Gtk.Grid"
           glib:type-name="TeplPanel1"
           glib:get-type="tepl_panel1_get_type"
           glib:type-struct="Panel1Class">
      <source-position filename="tepl/tepl-panel1.h" line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="tepl_panel1_new" version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel1.c"
             line="67">Creates a new #TeplPanel1 containing only an empty #GtkStack that can be
retrieved with tepl_panel1_get_stack().</doc>
        <source-position filename="tepl/tepl-panel1.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel1.c"
               line="73">a new #TeplPanel1.</doc>
          <type name="Panel1" c:type="TeplPanel1*"/>
        </return-value>
      </constructor>
      <constructor name="new_for_left_side_panel"
                   c:identifier="tepl_panel1_new_for_left_side_panel"
                   version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel1.c"
             line="133">Creates a new #TeplPanel1 intended to be used as a side panel added on the
left side inside a #GtkWindow.

It contains:
- A #GtkStackSwitcher.
- A close button that hides the #TeplPanel1 when clicked.
- A #GtkStack that can be retrieved with tepl_panel1_get_stack().</doc>
        <source-position filename="tepl/tepl-panel1.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel1.c"
               line="144">a new left side #TeplPanel1.</doc>
          <type name="Panel1" c:type="TeplPanel1*"/>
        </return-value>
      </constructor>
      <method name="add_component"
              c:identifier="tepl_panel1_add_component"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel1.c"
             line="174">The equivalent of gtk_stack_add_titled(), with an optional @icon_name to set
the “icon-name” #GtkStack child property.</doc>
        <source-position filename="tepl/tepl-panel1.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="176">a #TeplPanel1.</doc>
            <type name="Panel1" c:type="TeplPanel1*"/>
          </instance-parameter>
          <parameter name="component" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="177">the child #GtkWidget to add to the #GtkStack of @panel.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="178">the name for @component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="179">a human-readable title for @component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="180">the icon name for @component, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_stack"
              c:identifier="tepl_panel1_get_stack"
              version="5.0">
        <source-position filename="tepl/tepl-panel1.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel1.c"
               line="162">the #GtkStack widget of @panel (a direct child
#GtkWidget of @panel).</doc>
          <type name="Gtk.Stack" c:type="GtkStack*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="160">a #TeplPanel1.</doc>
            <type name="Panel1" c:type="TeplPanel1*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="provide_active_component_gsetting"
              c:identifier="tepl_panel1_provide_active_component_gsetting"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel1.c"
             line="210">Provides a #GSettings key for saving and restoring the
#GtkStack:visible-child-name property of the #GtkStack belonging to @panel.

This function just stores @settings and @setting_key for further use by
tepl_panel1_restore_state_from_gsettings() and
tepl_panel1_save_state_to_gsettings(). It doesn't bind the #GSettings key to
the property, because each main window containing a #TeplPanel1 needs to be
able to have a different state, and have more control over when that state is
restored and saved. Once a #TeplPanel1 is created and fully populated, the
setting can be restored. The setting can be saved according to the current
main window before creating a new main window, and of course on application
exit.

Note that only one @settings/@setting_key pair is stored by @panel for
further use, if you call this function twice on the same @panel, the second
call overrides the first one.</doc>
        <source-position filename="tepl/tepl-panel1.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="212">a #TeplPanel1.</doc>
            <type name="Panel1" c:type="TeplPanel1*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="213">a #GSettings object.</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="setting_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="214">a #GSettings key of type string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_state_from_gsettings"
              c:identifier="tepl_panel1_restore_state_from_gsettings"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel1.c"
             line="250">Restores the state of @panel according to the provided #GSettings.

This function must be called when all components have been added to the
#GtkStack of @panel.</doc>
        <source-position filename="tepl/tepl-panel1.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="252">a #TeplPanel1.</doc>
            <type name="Panel1" c:type="TeplPanel1*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_state_to_gsettings"
              c:identifier="tepl_panel1_save_state_to_gsettings"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel1.c"
             line="292">Saves the current state of @panel to the provided #GSettings.</doc>
        <source-position filename="tepl/tepl-panel1.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel1.c"
                 line="294">a #TeplPanel1.</doc>
            <type name="Panel1" c:type="TeplPanel1*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Grid" c:type="GtkGrid"/>
      </field>
      <field name="priv">
        <type name="Panel1Private" c:type="TeplPanel1Private*"/>
      </field>
    </class>
    <record name="Panel1Class"
            c:type="TeplPanel1Class"
            glib:is-gtype-struct-for="Panel1">
      <source-position filename="tepl/tepl-panel1.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="Panel1Private"
            c:type="TeplPanel1Private"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-panel1.h" line="25"/>
    </record>
    <record name="PanelInterface"
            c:type="TeplPanelInterface"
            glib:is-gtype-struct-for="Panel"
            version="6.8">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel.h"
           line="24">The virtual function table for #TeplPanel.</doc>
      <source-position filename="tepl/tepl-panel.h" line="50"/>
      <field name="parent_interface">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.h"
             line="26">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="add">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.h"
             line="27">The virtual function pointer for tepl_panel_add().
  By default, does nothing.</doc>
        <callback name="add">
          <source-position filename="tepl/tepl-panel.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-panel.c"
                   line="46">a #TeplPanel.</doc>
              <type name="Panel" c:type="TeplPanel*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-panel.c"
                   line="47">a #TeplPanelItem.</doc>
              <type name="PanelItem" c:type="TeplPanelItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.h"
             line="29">The virtual function pointer for tepl_panel_remove().
  By default, does nothing.</doc>
        <callback name="remove">
          <source-position filename="tepl/tepl-panel.h" line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-panel.c"
                   line="65">a #TeplPanel.</doc>
              <type name="Panel" c:type="TeplPanel*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-panel.c"
                   line="66">the #TeplPanelItem to remove.</doc>
              <type name="PanelItem" c:type="TeplPanelItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_active">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel.h"
             line="31">The virtual function pointer for tepl_panel_set_active().
  By default, does nothing.</doc>
        <callback name="set_active">
          <source-position filename="tepl/tepl-panel.h" line="48"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-panel.c"
                   line="84">a #TeplPanel.</doc>
              <type name="Panel" c:type="TeplPanel*"/>
            </parameter>
            <parameter name="item"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="tepl/tepl-panel.c"
                   line="85">a #TeplPanelItem.</doc>
              <type name="PanelItem" c:type="TeplPanelItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="PanelItem"
           c:symbol-prefix="panel_item"
           c:type="TeplPanelItem"
           parent="GObject.Object"
           glib:type-name="TeplPanelItem"
           glib:get-type="tepl_panel_item_get_type"
           glib:type-struct="PanelItemClass">
      <source-position filename="tepl/tepl-panel-item.h" line="39"/>
      <constructor name="new"
                   c:identifier="tepl_panel_item_new"
                   version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="278">Creates a new #TeplPanelItem object.

See the properties for the meaning of the parameters.</doc>
        <source-position filename="tepl/tepl-panel-item.h" line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="290">a new #TeplPanelItem object.</doc>
          <type name="PanelItem" c:type="TeplPanelItem*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="280">a #GtkWidget.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="281">the name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="282">the title.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="283">the icon-name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="284">the position.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="compare"
              c:identifier="tepl_panel_item_compare"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="441">A #GCompareFunc that takes into account the #TeplPanelItem:position property
in priority, and falls back to the #TeplPanelItem:title property if two items
have the same position.</doc>
        <source-position filename="tepl/tepl-panel-item.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="450">the usual return value for a #GCompareFunc.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="443">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="444">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare_by_title"
              c:identifier="tepl_panel_item_compare_by_title"
              version="6.8">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="383">A #GCompareFunc that takes into account only the #TeplPanelItem:title
property.</doc>
        <source-position filename="tepl/tepl-panel-item.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="391">the usual return value for a #GCompareFunc.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="385">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="386">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="tepl_panel_item_get_icon_name"
              glib:get-property="icon-name"
              version="6.8">
        <source-position filename="tepl/tepl-panel-item.h" line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="359">the value of the #TeplPanelItem:icon-name property.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="357">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="tepl_panel_item_get_name"
              glib:get-property="name"
              version="6.8">
        <source-position filename="tepl/tepl-panel-item.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="331">the value of the #TeplPanelItem:name property.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="329">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position"
              c:identifier="tepl_panel_item_get_position"
              glib:get-property="position"
              version="6.11">
        <source-position filename="tepl/tepl-panel-item.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="373">the value of the #TeplPanelItem:position property.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="371">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="tepl_panel_item_get_title"
              glib:get-property="title"
              version="6.8">
        <source-position filename="tepl/tepl-panel-item.h" line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="345">the value of the #TeplPanelItem:title property.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="343">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widget"
              c:identifier="tepl_panel_item_get_widget"
              glib:get-property="widget"
              version="6.8">
        <source-position filename="tepl/tepl-panel-item.h" line="52"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-item.c"
               line="316">the value of the #TeplPanelItem:widget
  property.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-item.c"
                 line="314">a #TeplPanelItem.</doc>
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="icon-name"
                version="6.11"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="232">The icon name.

It can be shown in the UI to choose this item, for example with the
#GtkImage's #GtkImage:icon-name property.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                version="6.11"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="194">The name.

It is an ID as a UTF-8 string. It is not displayed in the UI. It
uniquely identifies an item within a list.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="position"
                version="6.11"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_position"
                default-value="0">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="251">The position.

Used to sort items in the desired order.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="title"
                version="6.11"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_title"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="213">The title.

It is a human-readable UTF-8 string that can be shown in the UI to
choose this item.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="widget"
                version="6.11"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_widget">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-item.c"
             line="178">The #GtkWidget (the main content).</doc>
        <type name="Gtk.Widget"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PanelItemPrivate" c:type="TeplPanelItemPrivate*"/>
      </field>
    </class>
    <record name="PanelItemClass"
            c:type="TeplPanelItemClass"
            glib:is-gtype-struct-for="PanelItem">
      <source-position filename="tepl/tepl-panel-item.h" line="39"/>
      <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="PanelItemPrivate"
            c:type="TeplPanelItemPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-panel-item.h" line="25"/>
    </record>
    <class name="PanelNotebook"
           c:symbol-prefix="panel_notebook"
           c:type="TeplPanelNotebook"
           parent="GObject.Object"
           glib:type-name="TeplPanelNotebook"
           glib:get-type="tepl_panel_notebook_get_type"
           glib:type-struct="PanelNotebookClass">
      <source-position filename="tepl/tepl-panel-notebook.h" line="39"/>
      <constructor name="new"
                   c:identifier="tepl_panel_notebook_new"
                   version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-notebook.c"
             line="187">Creates a new #TeplPanelNotebook.

@notebook needs to be empty (no pages), and should be pre-configured. Then
the #TeplPanelNotebook will handle @notebook, so you should not modify it
afterwards.</doc>
        <source-position filename="tepl/tepl-panel-notebook.h" line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-notebook.c"
               line="198">a new #TeplPanelNotebook object.</doc>
          <type name="PanelNotebook" c:type="TeplPanelNotebook*"/>
        </return-value>
        <parameters>
          <parameter name="panel_simple" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-notebook.c"
                 line="189">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </parameter>
          <parameter name="notebook" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-notebook.c"
                 line="190">a #GtkNotebook.</doc>
            <type name="Gtk.Notebook" c:type="GtkNotebook*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PanelNotebookPrivate" c:type="TeplPanelNotebookPrivate*"/>
      </field>
    </class>
    <record name="PanelNotebookClass"
            c:type="TeplPanelNotebookClass"
            glib:is-gtype-struct-for="PanelNotebook">
      <source-position filename="tepl/tepl-panel-notebook.h" line="39"/>
      <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="PanelNotebookPrivate"
            c:type="TeplPanelNotebookPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-panel-notebook.h" line="25"/>
    </record>
    <class name="PanelSimple"
           c:symbol-prefix="panel_simple"
           c:type="TeplPanelSimple"
           parent="GObject.Object"
           glib:type-name="TeplPanelSimple"
           glib:get-type="tepl_panel_simple_get_type"
           glib:type-struct="PanelSimpleClass">
      <source-position filename="tepl/tepl-panel-simple.h" line="49"/>
      <implements name="Panel"/>
      <constructor name="new"
                   c:identifier="tepl_panel_simple_new"
                   version="6.11">
        <source-position filename="tepl/tepl-panel-simple.h" line="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-simple.c"
               line="323">a new #TeplPanelSimple object.</doc>
          <type name="PanelSimple" c:type="TeplPanelSimple*"/>
        </return-value>
      </constructor>
      <virtual-method name="add_item">
        <source-position filename="tepl/tepl-panel-simple.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="changed">
        <source-position filename="tepl/tepl-panel-simple.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_item">
        <source-position filename="tepl/tepl-panel-simple.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="PanelItem" c:type="TeplPanelItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_active_item"
              c:identifier="tepl_panel_simple_get_active_item"
              glib:get-property="active-item"
              version="6.11">
        <source-position filename="tepl/tepl-panel-simple.h" line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-simple.c"
               line="362">the value of the
  #TeplPanelSimple:active-item property.</doc>
          <type name="PanelItem" c:type="TeplPanelItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="360">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_item_name"
              c:identifier="tepl_panel_simple_get_active_item_name"
              glib:get-property="active-item-name"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="373">A convenience function.</doc>
        <source-position filename="tepl/tepl-panel-simple.h" line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-simple.c"
               line="379">the name of the #TeplPanelSimple:active-item.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="375">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_items"
              c:identifier="tepl_panel_simple_get_items"
              version="6.11">
        <source-position filename="tepl/tepl-panel-simple.h" line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-simple.c"
               line="336">all the items of
  @panel.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PanelItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="334">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_several_items"
              c:identifier="tepl_panel_simple_has_several_items"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="438">A convenience function. Useful to implement a switcher widget.</doc>
        <source-position filename="tepl/tepl-panel-simple.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-simple.c"
               line="444">whether @panel has more than one #TeplPanelItem.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="440">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active_item_name"
              c:identifier="tepl_panel_simple_set_active_item_name"
              glib:set-property="active-item-name"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="394">A convenience function that calls tepl_panel_set_active() with the
#TeplPanelItem named @name (if found).</doc>
        <source-position filename="tepl/tepl-panel-simple.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="396">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="397">a name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="active-item"
                version="6.11"
                writable="1"
                transfer-ownership="none"
                getter="get_active_item">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="234">The #TeplPanelItem currently shown.</doc>
        <type name="PanelItem"/>
      </property>
      <property name="active-item-name"
                version="6.11"
                writable="1"
                transfer-ownership="none"
                setter="set_active_item_name"
                getter="get_active_item_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="249">The name of the #TeplPanelSimple:active-item.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PanelSimplePrivate" c:type="TeplPanelSimplePrivate*"/>
      </field>
      <glib:signal name="add-item" when="last" version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="168">The ::add-item signal is emitted when a #TeplPanelItem needs to be
added.

It is a %G_SIGNAL_RUN_LAST signal: the item is added by the
#TeplPanelSimple's method handler for this signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="171">the #TeplPanelItem being added.</doc>
            <type name="PanelItem"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="changed" when="first" version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="210">The ::changed signal is for convenience: it is emitted when the
#TeplPanelSimple::add-item and #TeplPanelSimple::remove-item signals
are emitted, and also when the #TeplPanelSimple:active-item property
changes.

It is a %G_SIGNAL_RUN_FIRST signal: the action is already done.

This signal is useful if you don't need the more detailed information
on what has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="remove-item" when="last" version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-simple.c"
             line="189">The ::remove-item signal is emitted when a #TeplPanelItem needs to be
removed.

It is a %G_SIGNAL_RUN_LAST signal: the item is removed by the
#TeplPanelSimple's method handler for this signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-simple.c"
                 line="192">the #TeplPanelItem being removed.</doc>
            <type name="PanelItem"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PanelSimpleClass"
            c:type="TeplPanelSimpleClass"
            glib:is-gtype-struct-for="PanelSimple">
      <source-position filename="tepl/tepl-panel-simple.h" line="49"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="add_item">
        <callback name="add_item">
          <source-position filename="tepl/tepl-panel-simple.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelSimple" c:type="TeplPanelSimple*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <type name="PanelItem" c:type="TeplPanelItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_item">
        <callback name="remove_item">
          <source-position filename="tepl/tepl-panel-simple.h" line="43"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelSimple" c:type="TeplPanelSimple*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <type name="PanelItem" c:type="TeplPanelItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <source-position filename="tepl/tepl-panel-simple.h" line="46"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <type name="PanelSimple" c:type="TeplPanelSimple*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PanelSimplePrivate"
            c:type="TeplPanelSimplePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-panel-simple.h" line="25"/>
    </record>
    <class name="PanelStack"
           c:symbol-prefix="panel_stack"
           c:type="TeplPanelStack"
           parent="GObject.Object"
           glib:type-name="TeplPanelStack"
           glib:get-type="tepl_panel_stack_get_type"
           glib:type-struct="PanelStackClass">
      <source-position filename="tepl/tepl-panel-stack.h" line="39"/>
      <constructor name="new"
                   c:identifier="tepl_panel_stack_new"
                   version="6.11">
        <source-position filename="tepl/tepl-panel-stack.h" line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-stack.c"
               line="86">a new #TeplPanelStack object.</doc>
          <type name="PanelStack" c:type="TeplPanelStack*"/>
        </return-value>
        <parameters>
          <parameter name="panel_simple"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-stack.c"
                 line="83">a #TeplPanelSimple, or %NULL to create one.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </parameter>
          <parameter name="stack"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-stack.c"
                 line="84">a #GtkStack, or %NULL to create one.</doc>
            <type name="Gtk.Stack" c:type="GtkStack*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_panel_simple"
              c:identifier="tepl_panel_stack_get_panel_simple"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-stack.c"
             line="138">Gets the #TeplPanelSimple of @panel_stack.

It permits to alter the #TeplPanelStack content through the #TeplPanel
functions.</doc>
        <source-position filename="tepl/tepl-panel-stack.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-stack.c"
               line="147">the #TeplPanelSimple of @panel_stack.</doc>
          <type name="PanelSimple" c:type="TeplPanelSimple*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel_stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-stack.c"
                 line="140">a #TeplPanelStack.</doc>
            <type name="PanelStack" c:type="TeplPanelStack*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stack"
              c:identifier="tepl_panel_stack_get_stack"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-panel-stack.c"
             line="157">Gets the #GtkStack of @panel_stack.

The #GtkStack is exposed in the public API because it is useful for creating
a #GtkStackSwitcher.

If you need to alter the #TeplPanelStack content, you must use
tepl_panel_stack_get_panel_simple() instead.</doc>
        <source-position filename="tepl/tepl-panel-stack.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-stack.c"
               line="169">the #GtkStack of @panel_stack.</doc>
          <type name="Gtk.Stack" c:type="GtkStack*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel_stack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-stack.c"
                 line="159">a #TeplPanelStack.</doc>
            <type name="PanelStack" c:type="TeplPanelStack*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PanelStackPrivate" c:type="TeplPanelStackPrivate*"/>
      </field>
    </class>
    <record name="PanelStackClass"
            c:type="TeplPanelStackClass"
            glib:is-gtype-struct-for="PanelStack">
      <source-position filename="tepl/tepl-panel-stack.h" line="39"/>
      <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="PanelStackPrivate"
            c:type="TeplPanelStackPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-panel-stack.h" line="25"/>
    </record>
    <class name="PanelSwitcherMenu"
           c:symbol-prefix="panel_switcher_menu"
           c:type="TeplPanelSwitcherMenu"
           parent="Gtk.Bin"
           glib:type-name="TeplPanelSwitcherMenu"
           glib:get-type="tepl_panel_switcher_menu_get_type"
           glib:type-struct="PanelSwitcherMenuClass">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_panel_switcher_menu_new"
                   version="6.11">
        <source-position filename="tepl/tepl-panel-switcher-menu.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-panel-switcher-menu.c"
               line="277">a new #TeplPanelSwitcherMenu widget.</doc>
          <type name="PanelSwitcherMenu" c:type="TeplPanelSwitcherMenu*"/>
        </return-value>
        <parameters>
          <parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-panel-switcher-menu.c"
                 line="275">a #TeplPanelSimple.</doc>
            <type name="PanelSimple" c:type="TeplPanelSimple*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <field name="priv">
        <type name="PanelSwitcherMenuPrivate"
              c:type="TeplPanelSwitcherMenuPrivate*"/>
      </field>
    </class>
    <record name="PanelSwitcherMenuClass"
            c:type="TeplPanelSwitcherMenuClass"
            glib:is-gtype-struct-for="PanelSwitcherMenu">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PanelSwitcherMenuPrivate"
            c:type="TeplPanelSwitcherMenuPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-panel-switcher-menu.h" line="25"/>
    </record>
    <class name="PrefsDialog"
           c:symbol-prefix="prefs_dialog"
           c:type="TeplPrefsDialog"
           parent="Gtk.Dialog"
           glib:type-name="TeplPrefsDialog"
           glib:get-type="tepl_prefs_dialog_get_type"
           glib:type-struct="PrefsDialogClass">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_prefs_dialog_new"
                   version="6.13">
        <source-position filename="tepl/tepl-prefs-dialog.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs-dialog.c"
               line="126">a new #TeplPrefsDialog.</doc>
          <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
        </return-value>
      </constructor>
      <function name="get_singleton"
                c:identifier="tepl_prefs_dialog_get_singleton"
                version="6.2">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs-dialog.c"
             line="137">The singleton instance is created with
tepl_abstract_factory_create_prefs_dialog().</doc>
        <source-position filename="tepl/tepl-prefs-dialog.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs-dialog.c"
               line="143">the #TeplPrefsDialog singleton instance.</doc>
          <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
        </return-value>
      </function>
      <method name="add_reset_all_button"
              c:identifier="tepl_prefs_dialog_add_reset_all_button"
              version="6.13">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs-dialog.c"
             line="233">Adds a “Reset All” button. When the button is clicked and the user confirms,
the #TeplPrefsDialog::reset-all signal is emitted.</doc>
        <source-position filename="tepl/tepl-prefs-dialog.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-prefs-dialog.c"
                 line="235">a #TeplPrefsDialog.</doc>
            <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="show_for_parent"
              c:identifier="tepl_prefs_dialog_show_for_parent"
              version="6.2">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs-dialog.c"
             line="169">This function sets the #GtkWindow:transient-for property and presents
@dialog.</doc>
        <source-position filename="tepl/tepl-prefs-dialog.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-prefs-dialog.c"
                 line="171">a #TeplPrefsDialog.</doc>
            <type name="PrefsDialog" c:type="TeplPrefsDialog*"/>
          </instance-parameter>
          <parameter name="parent_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-prefs-dialog.c"
                 line="172">the parent #GtkWindow.</doc>
            <type name="Gtk.Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Dialog" c:type="GtkDialog"/>
      </field>
      <field name="priv">
        <type name="PrefsDialogPrivate" c:type="TeplPrefsDialogPrivate*"/>
      </field>
      <glib:signal name="reset-all" when="first" version="6.13">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs-dialog.c"
             line="67">The ::reset-all signal is emitted when the user has requested to
reset all preferences.

Applications should connect to this signal to perform the operation.
tepl_settings_reset_all() may be useful for that.

See tepl_prefs_dialog_add_reset_all_button().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="PrefsDialogClass"
            c:type="TeplPrefsDialogClass"
            glib:is-gtype-struct-for="PrefsDialog">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.DialogClass" c:type="GtkDialogClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PrefsDialogPrivate"
            c:type="TeplPrefsDialogPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-prefs-dialog.h" line="25"/>
    </record>
    <class name="ProgressInfoBar"
           c:symbol-prefix="progress_info_bar"
           c:type="TeplProgressInfoBar"
           parent="InfoBar"
           glib:type-name="TeplProgressInfoBar"
           glib:get-type="tepl_progress_info_bar_get_type"
           glib:type-struct="ProgressInfoBarClass">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="41"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new"
                   c:identifier="tepl_progress_info_bar_new"
                   version="6.0">
        <source-position filename="tepl/tepl-progress-info-bar.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-progress-info-bar.c"
               line="165">a new #TeplProgressInfoBar widget.</doc>
          <type name="ProgressInfoBar" c:type="TeplProgressInfoBar*"/>
        </return-value>
        <parameters>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-progress-info-bar.c"
                 line="158">a value for the #TeplInfoBar:icon-name property, or
  %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="markup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-progress-info-bar.c"
                 line="160">if not %NULL, tepl_progress_info_bar_set_markup() is
  called.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="has_cancel_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-progress-info-bar.c"
                 line="162">a value for the #TeplProgressInfoBar:has-cancel-button
  property.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="pulse"
              c:identifier="tepl_progress_info_bar_pulse"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-progress-info-bar.c"
             line="245">Calls gtk_progress_bar_pulse() on the #GtkProgressBar contained within the
@info_bar.</doc>
        <source-position filename="tepl/tepl-progress-info-bar.h" line="64"/>
        <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/tepl-progress-info-bar.c"
                 line="247">a #TeplProgressInfoBar.</doc>
            <type name="ProgressInfoBar" c:type="TeplProgressInfoBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_fraction"
              c:identifier="tepl_progress_info_bar_set_fraction"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-progress-info-bar.c"
             line="226">Calls gtk_progress_bar_set_fraction() on the #GtkProgressBar contained within
the @info_bar.</doc>
        <source-position filename="tepl/tepl-progress-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/tepl-progress-info-bar.c"
                 line="228">a #TeplProgressInfoBar.</doc>
            <type name="ProgressInfoBar" c:type="TeplProgressInfoBar*"/>
          </instance-parameter>
          <parameter name="fraction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-progress-info-bar.c"
                 line="229">fraction of the task that's been completed.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_markup"
              c:identifier="tepl_progress_info_bar_set_markup"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-progress-info-bar.c"
             line="188">Calls gtk_label_set_markup() on the #GtkLabel contained within the @info_bar.</doc>
        <source-position filename="tepl/tepl-progress-info-bar.h" line="52"/>
        <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/tepl-progress-info-bar.c"
                 line="190">a #TeplProgressInfoBar.</doc>
            <type name="ProgressInfoBar" c:type="TeplProgressInfoBar*"/>
          </instance-parameter>
          <parameter name="markup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-progress-info-bar.c"
                 line="191">markup text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="tepl_progress_info_bar_set_text"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-progress-info-bar.c"
             line="207">Calls gtk_label_set_text() on the #GtkLabel contained within the @info_bar.</doc>
        <source-position filename="tepl/tepl-progress-info-bar.h" line="56"/>
        <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/tepl-progress-info-bar.c"
                 line="209">a #TeplProgressInfoBar.</doc>
            <type name="ProgressInfoBar" c:type="TeplProgressInfoBar*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-progress-info-bar.c"
                 line="210">text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="has-cancel-button"
                version="6.0"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="tepl/tepl-progress-info-bar.c"
             line="117">Whether to add a Cancel button in the action area of the #GtkInfoBar,
with the %GTK_RESPONSE_CANCEL response.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="InfoBar" c:type="TeplInfoBar"/>
      </field>
      <field name="priv">
        <type name="ProgressInfoBarPrivate"
              c:type="TeplProgressInfoBarPrivate*"/>
      </field>
    </class>
    <record name="ProgressInfoBarClass"
            c:type="TeplProgressInfoBarClass"
            glib:is-gtype-struct-for="ProgressInfoBar">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="41"/>
      <field name="parent_class">
        <type name="InfoBarClass" c:type="TeplInfoBarClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ProgressInfoBarPrivate"
            c:type="TeplProgressInfoBarPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-progress-info-bar.h" line="27"/>
    </record>
    <function-macro name="SETTINGS"
                    c:identifier="TEPL_SETTINGS"
                    introspectable="0">
      <source-position filename="tepl/tepl-settings.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SETTINGS_CLASS"
                    c:identifier="TEPL_SETTINGS_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-settings.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SETTINGS_GET_CLASS"
                    c:identifier="TEPL_SETTINGS_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-settings.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SPACE_DRAWER_PREFS"
                    c:identifier="TEPL_SPACE_DRAWER_PREFS"
                    introspectable="0">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SPACE_DRAWER_PREFS_CLASS"
                    c:identifier="TEPL_SPACE_DRAWER_PREFS_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SPACE_DRAWER_PREFS_GET_CLASS"
                    c:identifier="TEPL_SPACE_DRAWER_PREFS_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STATUS_MENU_BUTTON"
                    c:identifier="TEPL_STATUS_MENU_BUTTON"
                    introspectable="0">
      <source-position filename="tepl/tepl-status-menu-button.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STATUS_MENU_BUTTON_CLASS"
                    c:identifier="TEPL_STATUS_MENU_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-status-menu-button.h" line="19"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STATUS_MENU_BUTTON_GET_CLASS"
                    c:identifier="TEPL_STATUS_MENU_BUTTON_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-status-menu-button.h" line="22"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STYLE_SCHEME_CHOOSER_FULL"
                    c:identifier="TEPL_STYLE_SCHEME_CHOOSER_FULL"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STYLE_SCHEME_CHOOSER_FULL_CLASS"
                    c:identifier="TEPL_STYLE_SCHEME_CHOOSER_FULL_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STYLE_SCHEME_CHOOSER_FULL_GET_CLASS"
                    c:identifier="TEPL_STYLE_SCHEME_CHOOSER_FULL_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STYLE_SCHEME_CHOOSER_SIMPLE"
                    c:identifier="TEPL_STYLE_SCHEME_CHOOSER_SIMPLE"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="17"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STYLE_SCHEME_CHOOSER_SIMPLE_CLASS"
                    c:identifier="TEPL_STYLE_SCHEME_CHOOSER_SIMPLE_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="18"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STYLE_SCHEME_CHOOSER_SIMPLE_GET_CLASS"
                    c:identifier="TEPL_STYLE_SCHEME_CHOOSER_SIMPLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="21"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <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"
              glib:name="TEPL_SELECTION_TYPE_NO_SELECTION">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.h"
             line="36">No selection.</doc>
      </member>
      <member name="on_same_line"
              value="1"
              c:identifier="TEPL_SELECTION_TYPE_ON_SAME_LINE"
              glib:nick="on-same-line"
              glib:name="TEPL_SELECTION_TYPE_ON_SAME_LINE">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.h"
             line="37">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"
              glib:name="TEPL_SELECTION_TYPE_MULTIPLE_LINES">
        <doc xml:space="preserve"
             filename="tepl/tepl-buffer.h"
             line="39">The selection spans multiple lines.</doc>
      </member>
    </enumeration>
    <class name="Settings"
           c:symbol-prefix="settings"
           c:type="TeplSettings"
           parent="GObject.Object"
           glib:type-name="TeplSettings"
           glib:get-type="tepl_settings_get_type"
           glib:type-struct="SettingsClass">
      <source-position filename="tepl/tepl-settings.h" line="39"/>
      <function name="get_range_uint"
                c:identifier="tepl_settings_get_range_uint"
                version="6.2">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="677">This function introspects a #GSettings key to get its range, if the key as a
"u" type (unsigned integer). %FALSE is returned if the introspection failed.

See g_settings_schema_key_get_range() for more flexibility.</doc>
        <source-position filename="tepl/tepl-settings.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-settings.c"
               line="689">whether the operation was successful.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="679">a #GSettings.</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="680">a key part of @settings.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="681">the minimum value allowed by the range.</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
          <parameter name="max"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="682">the maximum value allowed by the range.</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_singleton"
                c:identifier="tepl_settings_get_singleton"
                version="6.2">
        <source-position filename="tepl/tepl-settings.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-settings.c"
               line="253">the #TeplSettings singleton instance.</doc>
          <type name="Settings" c:type="TeplSettings*"/>
        </return-value>
      </function>
      <function name="reset_all"
                c:identifier="tepl_settings_reset_all"
                version="6.13">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="753">Resets all the #GSettings keys belonging to @schema_id.</doc>
        <source-position filename="tepl/tepl-settings.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="schema_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="755">a #GSettings schema id.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_selected_font"
              c:identifier="tepl_settings_get_selected_font"
              version="6.2">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="355">If tepl_settings_provide_font_settings() has *not* been called, this function
always returns the current value of the system's fixed width (monospace)
font.

If tepl_settings_provide_font_settings() *has* been called, this function
returns the font name depending on the boolean value of
@use_default_font_key.

See also the #TeplSettings::font-changed signal,
tepl_utils_override_font_string() and tepl_prefs_create_font_component().</doc>
        <source-position filename="tepl/tepl-settings.h" line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-settings.c"
               line="370">the selected font name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="357">the #TeplSettings instance.</doc>
            <type name="Settings" c:type="TeplSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_scheme_id"
              c:identifier="tepl_settings_get_style_scheme_id"
              glib:get-property="style-scheme-id"
              version="6.11">
        <source-position filename="tepl/tepl-settings.h" line="91"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-settings.c"
               line="592">the value of the
  #TeplSettings:style-scheme-id property.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="590">the #TeplSettings instance.</doc>
            <type name="Settings" c:type="TeplSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_theme_variant"
              c:identifier="tepl_settings_handle_theme_variant"
              version="6.10">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="445">This function permits to setup correctly the GTK theme variant to use.

If @theme_variant_settings and @theme_variant_setting_key are %NULL, only the
system's settings will be taken into account.

If @theme_variant_settings and @theme_variant_setting_key are provided, they
are taken into account according to #TeplSettingsThemeVariant.

You should call this function only once, as subsequent calls are ignored (the
setting used cannot be reconfigured).</doc>
        <source-position filename="tepl/tepl-settings.h" line="80"/>
        <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/tepl-settings.c"
                 line="447">the #TeplSettings instance.</doc>
            <type name="Settings" c:type="TeplSettings*"/>
          </instance-parameter>
          <parameter name="theme_variant_settings"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="448">a #GSettings object, or %NULL.</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="theme_variant_setting_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="449">a #GSettings key of type enum
  #TeplSettingsThemeVariant, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_desktop_interface_settings"
              c:identifier="tepl_settings_peek_desktop_interface_settings"
              version="6.2">
        <source-position filename="tepl/tepl-settings.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-settings.c"
               line="285">the #GSettings for `"org.gnome.desktop.interface"`.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="283">the #TeplSettings instance.</doc>
            <type name="Settings" c:type="TeplSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="provide_font_settings"
              c:identifier="tepl_settings_provide_font_settings"
              version="6.2">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="295">This function can only be called once, to provide two keys:
- @use_default_font_key: must be of type boolean, to know whether to use the
  system's font (the default font), or the editor font.
- @editor_font_key: must be of type string, containing the font name to have
  a different font for the text editor, rather than using the system's font.

See tepl_settings_get_selected_font().</doc>
        <source-position filename="tepl/tepl-settings.h" line="71"/>
        <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/tepl-settings.c"
                 line="297">the #TeplSettings instance.</doc>
            <type name="Settings" c:type="TeplSettings*"/>
          </instance-parameter>
          <parameter name="font_settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="298">the #GSettings object containing the keys.</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="use_default_font_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="299">a key of type boolean.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="editor_font_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="300">a key of type string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="provide_style_scheme_settings"
              c:identifier="tepl_settings_provide_style_scheme_settings"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="522">This function can only be called once, to provide two keys:
- @key_for_light_theme_variant: must be of type string, containing the ID of
  a #GtkSourceStyleScheme that should be used when the GTK theme variant is
  light.
- @key_for_dark_theme_variant: the same, but when the GTK theme variant is
  dark.

See tepl_settings_get_style_scheme_id().</doc>
        <source-position filename="tepl/tepl-settings.h" line="85"/>
        <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/tepl-settings.c"
                 line="524">the #TeplSettings instance.</doc>
            <type name="Settings" c:type="TeplSettings*"/>
          </instance-parameter>
          <parameter name="style_scheme_settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="525">the #GSettings object containing the keys.</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="key_for_light_theme_variant"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="526">a key of type string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key_for_dark_theme_variant"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings.c"
                 line="527">a key of type string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="style-scheme-id"
                version="6.11"
                transfer-ownership="none"
                getter="get_style_scheme_id"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="167">See tepl_settings_provide_style_scheme_settings().

The value of this property depends on whether the GTK theme is light
or dark, and uses the corresponding #GSettings key.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SettingsPrivate" c:type="TeplSettingsPrivate*"/>
      </field>
      <glib:signal name="font-changed" when="first" version="6.2">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.c"
             line="136">The ::font-changed signal is emitted when the return value of
tepl_settings_get_selected_font() has potentially changed.

It takes into account the @use_default_font_key provided with
tepl_settings_provide_font_settings() to avoid unnecessary signal
emission. In other words, for example if @use_default_font_key is
%FALSE, the signal is not emitted even if the default (system's) font
has been modified.

The relation between this signal and a potential zoom in and zoom out
feature, to temporarily make the font larger or smaller (so the zoom
level not being stored in #GSettings): when this signal is emitted,
it means that the user has explicitly changed the font setting, and
as such he or she probably wants to use that font instead. So the
expected behavior in that case is to reset the zoom level. But it's
left as an exercise for another class, since #TeplSettings is only
for #GSettings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SettingsBindingGroup"
            c:type="TeplSettingsBindingGroup"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-settings-binding-group.h"
                       line="17"/>
      <method name="add"
              c:identifier="tepl_settings_binding_group_add"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings-binding-group.c"
             line="65">Adds @property_name to @group.

Each time that you call g_settings_bind() (or similar), you should call this
function too.</doc>
        <source-position filename="tepl/tepl-settings-binding-group.h"
                         line="26"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings-binding-group.c"
                 line="67">a #TeplSettingsBindingGroup.</doc>
            <type name="SettingsBindingGroup"
                  c:type="TeplSettingsBindingGroup*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings-binding-group.c"
                 line="68">the name of a #GObject property.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="tepl_settings_binding_group_free"
              version="6.11"
              introspectable="0">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings-binding-group.c"
             line="47">Frees a #TeplSettingsBindingGroup instance.</doc>
        <source-position filename="tepl/tepl-settings-binding-group.h"
                         line="23"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings-binding-group.c"
                 line="49">a #TeplSettingsBindingGroup.</doc>
            <type name="SettingsBindingGroup"
                  c:type="TeplSettingsBindingGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unbind"
              c:identifier="tepl_settings_binding_group_unbind"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings-binding-group.c"
             line="88">Calls g_settings_unbind() on @object for all properties that have been added
to @group.

This function is intended to be called in `dispose()`.</doc>
        <source-position filename="tepl/tepl-settings-binding-group.h"
                         line="30"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings-binding-group.c"
                 line="90">a #TeplSettingsBindingGroup.</doc>
            <type name="SettingsBindingGroup"
                  c:type="TeplSettingsBindingGroup*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-settings-binding-group.c"
                 line="91">a #GObject.</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="tepl_settings_binding_group_new"
                version="6.11"
                introspectable="0">
        <source-position filename="tepl/tepl-settings-binding-group.h"
                         line="20"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-settings-binding-group.c"
               line="38">a new #TeplSettingsBindingGroup instance.</doc>
          <type name="SettingsBindingGroup"
                c:type="TeplSettingsBindingGroup*"/>
        </return-value>
      </function>
    </record>
    <record name="SettingsClass"
            c:type="TeplSettingsClass"
            glib:is-gtype-struct-for="Settings">
      <source-position filename="tepl/tepl-settings.h" line="39"/>
      <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="SettingsPrivate"
            c:type="TeplSettingsPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-settings.h" line="25"/>
    </record>
    <enumeration name="SettingsThemeVariant"
                 version="6.10"
                 glib:type-name="TeplSettingsThemeVariant"
                 glib:get-type="tepl_settings_theme_variant_get_type"
                 c:type="TeplSettingsThemeVariant">
      <doc xml:space="preserve"
           filename="tepl/tepl-settings.h"
           line="41">This enum is intended to be used for controlling the GTK theme preference.</doc>
      <member name="system"
              value="0"
              c:identifier="TEPL_SETTINGS_THEME_VARIANT_SYSTEM"
              glib:nick="system"
              glib:name="TEPL_SETTINGS_THEME_VARIANT_SYSTEM">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.h"
             line="43">Follow the system's preference.</doc>
      </member>
      <member name="light"
              value="1"
              c:identifier="TEPL_SETTINGS_THEME_VARIANT_LIGHT"
              glib:nick="light"
              glib:name="TEPL_SETTINGS_THEME_VARIANT_LIGHT">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.h"
             line="44">Force a light theme.</doc>
      </member>
      <member name="dark"
              value="2"
              c:identifier="TEPL_SETTINGS_THEME_VARIANT_DARK"
              glib:nick="dark"
              glib:name="TEPL_SETTINGS_THEME_VARIANT_DARK">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings.h"
             line="45">Force a dark theme.</doc>
      </member>
    </enumeration>
    <record name="SignalGroup"
            c:type="TeplSignalGroup"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-signal-group.h" line="17"/>
      <method name="add"
              c:identifier="tepl_signal_group_add"
              version="6.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="tepl/tepl-signal-group.c"
             line="111">Adds a signal handler ID to the #TeplSignalGroup. The signal handler must
have been connected to the same #GObject instance as provided to the
tepl_signal_group_new() function when creating @group.</doc>
        <source-position filename="tepl/tepl-signal-group.h" line="26"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-signal-group.c"
                 line="113">a #TeplSignalGroup.</doc>
            <type name="SignalGroup" c:type="TeplSignalGroup*"/>
          </instance-parameter>
          <parameter name="signal_handler_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-signal-group.c"
                 line="114">a signal handler ID.</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </method>
      <function name="clear"
                c:identifier="tepl_signal_group_clear"
                version="6.0"
                introspectable="0">
        <doc xml:space="preserve"
             filename="tepl/tepl-signal-group.c"
             line="88">Like g_clear_object() but for a #TeplSignalGroup.

If the #GObject instance of the #TeplSignalGroup is still alive, this
function disconnects all the signal handlers that were added with
tepl_signal_group_add().

The #TeplSignalGroup, if non-%NULL, is freed when calling this function.</doc>
        <source-position filename="tepl/tepl-signal-group.h" line="23"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="group_pointer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-signal-group.c"
                 line="90">a pointer to a #TeplSignalGroup.</doc>
            <type name="SignalGroup" c:type="TeplSignalGroup**"/>
          </parameter>
        </parameters>
      </function>
      <function name="new"
                c:identifier="tepl_signal_group_new"
                version="6.0"
                introspectable="0">
        <doc xml:space="preserve"
             filename="tepl/tepl-signal-group.c"
             line="32">Creates a new #TeplSignalGroup for @object. The #TeplSignalGroup will have a
weak reference to @object.</doc>
        <source-position filename="tepl/tepl-signal-group.h" line="20"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="tepl/tepl-signal-group.c"
               line="39">a new #TeplSignalGroup for @object. Free with
  tepl_signal_group_clear() when no longer needed.</doc>
          <type name="SignalGroup" c:type="TeplSignalGroup*"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-signal-group.c"
                 line="34">a #GObject.</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <class name="SpaceDrawerPrefs"
           c:symbol-prefix="space_drawer_prefs"
           c:type="TeplSpaceDrawerPrefs"
           parent="Gtk.Grid"
           glib:type-name="TeplSpaceDrawerPrefs"
           glib:get-type="tepl_space_drawer_prefs_get_type"
           glib:type-struct="SpaceDrawerPrefsClass">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new"
                   c:identifier="tepl_space_drawer_prefs_new"
                   version="6.0">
        <source-position filename="tepl/tepl-space-drawer-prefs.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-space-drawer-prefs.c"
               line="369">a new #TeplSpaceDrawerPrefs.</doc>
          <type name="SpaceDrawerPrefs" c:type="TeplSpaceDrawerPrefs*"/>
        </return-value>
      </constructor>
      <method name="get_space_drawer"
              c:identifier="tepl_space_drawer_prefs_get_space_drawer"
              version="6.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-space-drawer-prefs.c"
             line="378">Gets the #GtkSourceSpaceDrawer associated with @prefs. The returned object is
guaranteed to be the same for the lifetime of @prefs. Each
#TeplSpaceDrawerPrefs object has a different #GtkSourceSpaceDrawer.</doc>
        <source-position filename="tepl/tepl-space-drawer-prefs.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-space-drawer-prefs.c"
               line="386">the #GtkSourceSpaceDrawer associated with @prefs.</doc>
          <type name="GtkSource.SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prefs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-space-drawer-prefs.c"
                 line="380">a #TeplSpaceDrawerPrefs.</doc>
            <type name="SpaceDrawerPrefs" c:type="TeplSpaceDrawerPrefs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Grid" c:type="GtkGrid"/>
      </field>
      <field name="priv">
        <type name="SpaceDrawerPrefsPrivate"
              c:type="TeplSpaceDrawerPrefsPrivate*"/>
      </field>
    </class>
    <record name="SpaceDrawerPrefsClass"
            c:type="TeplSpaceDrawerPrefsClass"
            glib:is-gtype-struct-for="SpaceDrawerPrefs">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="39"/>
      <field name="parent_class">
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="SpaceDrawerPrefsPrivate"
            c:type="TeplSpaceDrawerPrefsPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-space-drawer-prefs.h" line="25"/>
    </record>
    <class name="StatusMenuButton"
           c:symbol-prefix="status_menu_button"
           c:type="TeplStatusMenuButton"
           parent="Gtk.MenuButton"
           glib:type-name="TeplStatusMenuButton"
           glib:get-type="tepl_status_menu_button_get_type"
           glib:type-struct="StatusMenuButtonClass">
      <source-position filename="tepl/tepl-status-menu-button.h" line="40"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Activatable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_status_menu_button_new"
                   version="6.8">
        <source-position filename="tepl/tepl-status-menu-button.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-status-menu-button.c"
               line="118">a new #TeplStatusMenuButton widget.</doc>
          <type name="StatusMenuButton" c:type="TeplStatusMenuButton*"/>
        </return-value>
      </constructor>
      <method name="set_label_text"
              c:identifier="tepl_status_menu_button_set_label_text"
              version="6.8">
        <doc xml:space="preserve"
             filename="tepl/tepl-status-menu-button.c"
             line="127">To change the text displayed in @button.</doc>
        <source-position filename="tepl/tepl-status-menu-button.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-status-menu-button.c"
                 line="129">a #TeplStatusMenuButton.</doc>
            <type name="StatusMenuButton" c:type="TeplStatusMenuButton*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-status-menu-button.c"
                 line="130">the text to set.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.MenuButton" c:type="GtkMenuButton"/>
      </field>
      <field name="priv">
        <type name="StatusMenuButtonPrivate"
              c:type="TeplStatusMenuButtonPrivate*"/>
      </field>
    </class>
    <record name="StatusMenuButtonClass"
            c:type="TeplStatusMenuButtonClass"
            glib:is-gtype-struct-for="StatusMenuButton">
      <source-position filename="tepl/tepl-status-menu-button.h" line="40"/>
      <field name="parent_class">
        <type name="Gtk.MenuButtonClass" c:type="GtkMenuButtonClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="StatusMenuButtonPrivate"
            c:type="TeplStatusMenuButtonPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-status-menu-button.h" line="26"/>
    </record>
    <class name="StyleSchemeChooserFull"
           c:symbol-prefix="style_scheme_chooser_full"
           c:type="TeplStyleSchemeChooserFull"
           parent="Gtk.Bin"
           glib:type-name="TeplStyleSchemeChooserFull"
           glib:get-type="tepl_style_scheme_chooser_full_get_type"
           glib:type-struct="StyleSchemeChooserFullClass">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_style_scheme_chooser_full_new"
                   version="6.11">
        <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-style-scheme-chooser-full.c"
               line="210">a new #TeplStyleSchemeChooserFull widget.</doc>
          <type name="StyleSchemeChooserFull"
                c:type="TeplStyleSchemeChooserFull*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <field name="priv">
        <type name="StyleSchemeChooserFullPrivate"
              c:type="TeplStyleSchemeChooserFullPrivate*"/>
      </field>
    </class>
    <record name="StyleSchemeChooserFullClass"
            c:type="TeplStyleSchemeChooserFullClass"
            glib:is-gtype-struct-for="StyleSchemeChooserFull">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="39"/>
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="StyleSchemeChooserFullPrivate"
            c:type="TeplStyleSchemeChooserFullPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-style-scheme-chooser-full.h"
                       line="25"/>
    </record>
    <class name="StyleSchemeChooserSimple"
           c:symbol-prefix="style_scheme_chooser_simple"
           c:type="TeplStyleSchemeChooserSimple"
           parent="Gtk.Bin"
           glib:type-name="TeplStyleSchemeChooserSimple"
           glib:get-type="tepl_style_scheme_chooser_simple_get_type"
           glib:type-struct="StyleSchemeChooserSimpleClass">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="39"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="tepl_style_scheme_chooser_simple_new"
                   version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-style-scheme-chooser-simple.c"
             line="327">Creates a new #TeplStyleSchemeChooserSimple widget.

The content of the widget will be different depending on
@for_dark_theme_variant. That configuration cannot change once the widget is
created. If your application supports both the light and dark GTK theme
variants, consider using #TeplStyleSchemeChooserFull instead.</doc>
        <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-style-scheme-chooser-simple.c"
               line="339">a new #TeplStyleSchemeChooserSimple widget.</doc>
          <type name="StyleSchemeChooserSimple"
                c:type="TeplStyleSchemeChooserSimple*"/>
        </return-value>
        <parameters>
          <parameter name="for_dark_theme_variant" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-style-scheme-chooser-simple.c"
                 line="329">whether it's for choosing a style scheme for a dark
  GTK theme variant.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_style_scheme_id"
              c:identifier="tepl_style_scheme_chooser_simple_get_style_scheme_id"
              glib:get-property="style-scheme-id"
              version="6.11">
        <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                         line="49"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-style-scheme-chooser-simple.c"
               line="370">the value of the
  #TeplStyleSchemeChooserSimple:style-scheme-id property.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-style-scheme-chooser-simple.c"
                 line="368">a #TeplStyleSchemeChooserSimple.</doc>
            <type name="StyleSchemeChooserSimple"
                  c:type="TeplStyleSchemeChooserSimple*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_style_scheme_id"
              c:identifier="tepl_style_scheme_chooser_simple_set_style_scheme_id"
              glib:set-property="style-scheme-id"
              version="6.11">
        <doc xml:space="preserve"
             filename="tepl/tepl-style-scheme-chooser-simple.c"
             line="381">Sets the #TeplStyleSchemeChooserSimple:style-scheme-id property.</doc>
        <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-style-scheme-chooser-simple.c"
                 line="383">a #TeplStyleSchemeChooserSimple.</doc>
            <type name="StyleSchemeChooserSimple"
                  c:type="TeplStyleSchemeChooserSimple*"/>
          </instance-parameter>
          <parameter name="style_scheme_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-style-scheme-chooser-simple.c"
                 line="384">the new value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="style-scheme-id"
                version="6.11"
                writable="1"
                transfer-ownership="none"
                setter="set_style_scheme_id"
                getter="get_style_scheme_id"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="tepl/tepl-style-scheme-chooser-simple.c"
             line="286">The selected #GtkSourceStyleScheme ID.

Its value changes when the user selects another row in the list.

When set, if the ID doesn't exist, no row is selected.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <field name="priv">
        <type name="StyleSchemeChooserSimplePrivate"
              c:type="TeplStyleSchemeChooserSimplePrivate*"/>
      </field>
    </class>
    <record name="StyleSchemeChooserSimpleClass"
            c:type="TeplStyleSchemeChooserSimpleClass"
            glib:is-gtype-struct-for="StyleSchemeChooserSimple">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="39"/>
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="StyleSchemeChooserSimplePrivate"
            c:type="TeplStyleSchemeChooserSimplePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="tepl/tepl-style-scheme-chooser-simple.h"
                       line="25"/>
    </record>
    <function-macro name="TAB" c:identifier="TEPL_TAB" introspectable="0">
      <source-position filename="tepl/tepl-tab.h" line="20"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_CLASS"
                    c:identifier="TEPL_TAB_CLASS"
                    introspectable="0">
      <source-position filename="tepl/tepl-tab.h" line="21"/>
      <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/tepl-tab.h" line="24"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_GROUP"
                    c:identifier="TEPL_TAB_GROUP"
                    introspectable="0">
      <source-position filename="tepl/tepl-tab-group.h" line="20"/>
      <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/tepl-tab-group.h" line="22"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TAB_LABEL"
                    c:identifier="TEPL_TAB_LABEL"
                    introspectable="0">
      <source-position filename="tepl/tepl-tab-label.h" line="18"/>
      <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/tepl-tab-label.h" line="19"/>
      <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/tepl-tab-label.h" line="22"/>
      <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/tepl-tab.h" line="74"/>
      <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/tepl-tab.c"
             line="375">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/tepl-tab.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab.c"
               line="381">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/tepl-tab.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab.c"
               line="394">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/tepl-tab.c"
                 line="392">the #TeplView that will be contained in the tab.</doc>
            <type name="View" c:type="TeplView*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="close_request">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="51">For the #TeplTab::close-request signal.</doc>
        <source-position filename="tepl/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>
        </parameters>
      </virtual-method>
      <virtual-method name="pack_goto_line_bar">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="48">Virtual function pointer to add a #TeplGotoLineBar in
  the #TeplTab container. By default the #TeplGotoLineBar is added at the
  bottom.</doc>
        <source-position filename="tepl/tepl-tab.h" line="65"/>
        <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="goto_line_bar" transfer-ownership="none">
            <type name="GotoLineBar" c:type="TeplGotoLineBar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pack_info_bar">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="45">Virtual function pointer to add a #GtkInfoBar in the #TeplTab
  container. By default the #GtkInfoBar is inserted just above the
  #GtkScrolledWindow containing the #TeplView.</doc>
        <source-position filename="tepl/tepl-tab.h" line="62"/>
        <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">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="40">Virtual function pointer to add the #TeplView in the #TeplTab
  container. Called only once at object construction time, when the
  #TeplTab:view property is set. By default the #TeplView is added to a
  #GtkScrolledWindow and the #GtkScrolledWindow is added to the #TeplTab with
  gtk_container_add().</doc>
        <source-position filename="tepl/tepl-tab.h" line="59"/>
        <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/tepl-tab.c"
             line="478">Attaches @info_bar to @tab.

This function calls the ::pack_info_bar virtual function.</doc>
        <source-position filename="tepl/tepl-tab.h" line="95"/>
        <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/tepl-tab.c"
                 line="480">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="info_bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab.c"
                 line="481">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/tepl-tab.c"
             line="422">A convenience function that calls gtk_text_view_get_buffer() on the
#TeplTab:view associated with the @tab.</doc>
        <source-position filename="tepl/tepl-tab.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab.c"
               line="429">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/tepl-tab.c"
                 line="424">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_goto_line_bar"
              c:identifier="tepl_tab_get_goto_line_bar"
              version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.c"
             line="445">Gets the #TeplGotoLineBar widget belonging to @tab. The #TeplGotoLineBar must
not be destroyed by the application, the purpose of this function is to
show/hide the widget.</doc>
        <source-position filename="tepl/tepl-tab.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab.c"
               line="453">the #TeplGotoLineBar widget belonging to @tab.</doc>
          <type name="GotoLineBar" c:type="TeplGotoLineBar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab.c"
                 line="447">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="tepl_tab_get_view"
              glib:get-property="view"
              version="3.0">
        <source-position filename="tepl/tepl-tab.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab.c"
               line="411">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/tepl-tab.c"
                 line="409">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/tepl-tab-loading.c"
             line="48">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/tepl-tab-loading.h" line="17"/>
        <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/tepl-tab-loading.c"
                 line="50">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-loading.c"
                 line="51">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"
              glib:finish-func="save_as_finish">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-saving.c"
             line="250">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/tepl-tab-saving.h" line="29"/>
        <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/tepl-tab-saving.c"
                 line="252">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/tepl-tab-saving.c"
                 line="253">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/tepl-tab-saving.c"
                 line="255">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/tepl-tab-saving.c"
             line="336">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/tepl-tab-saving.h" line="38"/>
        <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/tepl-tab-saving.c"
                 line="338">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/tepl-tab-saving.c"
             line="305">Finishes a tab saving started with tepl_tab_save_as_async().</doc>
        <source-position filename="tepl/tepl-tab-saving.h" line="34"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-saving.c"
               line="312">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/tepl-tab-saving.c"
                 line="307">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-saving.c"
                 line="308">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"
              glib:finish-func="save_finish">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-saving.c"
             line="114">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/tepl-tab-saving.h" line="17"/>
        <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/tepl-tab-saving.c"
                 line="116">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/tepl-tab-saving.c"
                 line="117">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/tepl-tab-saving.c"
                 line="119">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/tepl-tab-saving.c"
             line="178">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/tepl-tab-saving.h" line="26"/>
        <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/tepl-tab-saving.c"
                 line="180">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/tepl-tab-saving.c"
             line="150">Finishes a tab saving started with tepl_tab_save_async().</doc>
        <source-position filename="tepl/tepl-tab-saving.h" line="22"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-saving.c"
               line="157">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/tepl-tab-saving.c"
                 line="152">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-saving.c"
                 line="153">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"
                getter="get_view">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.c"
             line="295">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/tepl-tab.c"
             line="317">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/tepl-tab.h" line="74"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="39">The parent class.</doc>
        <type name="Gtk.GridClass" c:type="GtkGridClass"/>
      </field>
      <field name="pack_view">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="40">Virtual function pointer to add the #TeplView in the #TeplTab
  container. Called only once at object construction time, when the
  #TeplTab:view property is set. By default the #TeplView is added to a
  #GtkScrolledWindow and the #GtkScrolledWindow is added to the #TeplTab with
  gtk_container_add().</doc>
        <callback name="pack_view">
          <source-position filename="tepl/tepl-tab.h" line="59"/>
          <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">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="45">Virtual function pointer to add a #GtkInfoBar in the #TeplTab
  container. By default the #GtkInfoBar is inserted just above the
  #GtkScrolledWindow containing the #TeplView.</doc>
        <callback name="pack_info_bar">
          <source-position filename="tepl/tepl-tab.h" line="62"/>
          <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="pack_goto_line_bar">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="48">Virtual function pointer to add a #TeplGotoLineBar in
  the #TeplTab container. By default the #TeplGotoLineBar is added at the
  bottom.</doc>
        <callback name="pack_goto_line_bar">
          <source-position filename="tepl/tepl-tab.h" line="65"/>
          <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="goto_line_bar" transfer-ownership="none">
              <type name="GotoLineBar" c:type="TeplGotoLineBar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close_request">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab.h"
             line="51">For the #TeplTab::close-request signal.</doc>
        <callback name="close_request">
          <source-position filename="tepl/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>
          </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/tepl-tab-group.h" line="62"/>
      <virtual-method name="append_tab_vfunc">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="39">Virtual function pointer for tepl_tab_group_append_tab(),
  without the @jump_to parameter. The default implementation prints a warning
  about the operation not being supported.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="60"/>
        <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">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="35">Virtual function pointer for tepl_tab_group_get_active_tab().
  By default, %NULL is returned.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="195">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/tepl-tab-group.c"
                 line="193">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/tepl-tab-group.c"
             line="102">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/tepl-tab-group.h" line="53"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="113">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/tepl-tab-group.c"
                 line="104">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/tepl-tab-group.c"
             line="207">Sets the #TeplTabGroup:active-tab. @tab must be part of @tab_group.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="57"/>
        <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/tepl-tab-group.c"
                 line="209">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-group.c"
                 line="210">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/tepl-tab-group.c"
             line="276">Appends @tab to @tab_group.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="90"/>
        <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/tepl-tab-group.c"
                 line="278">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-group.c"
                 line="279">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
          <parameter name="jump_to" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-group.c"
                 line="280">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"
              glib:get-property="active-buffer"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.c"
             line="255">Convenience function.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="87"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="261">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/tepl-tab-group.c"
                 line="257">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"
              glib:get-property="active-tab"
              version="3.0">
        <source-position filename="tepl/tepl-tab-group.h" line="77"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="195">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/tepl-tab-group.c"
                 line="193">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"
              glib:get-property="active-view"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.c"
             line="234">Convenience function.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="84"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="240">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/tepl-tab-group.c"
                 line="236">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/tepl-tab-group.c"
             line="158">Convenience function.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="74"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="164">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/tepl-tab-group.c"
                 line="160">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/tepl-tab-group.c"
             line="102">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/tepl-tab-group.h" line="68"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="113">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/tepl-tab-group.c"
                 line="104">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/tepl-tab-group.c"
             line="125">Convenience function.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="71"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-group.c"
               line="131">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/tepl-tab-group.c"
                 line="127">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"
              glib:set-property="active-tab"
              version="3.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.c"
             line="207">Sets the #TeplTabGroup:active-tab. @tab must be part of @tab_group.</doc>
        <source-position filename="tepl/tepl-tab-group.h" line="80"/>
        <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/tepl-tab-group.c"
                 line="209">a #TeplTabGroup.</doc>
            <type name="TabGroup" c:type="TeplTabGroup*"/>
          </instance-parameter>
          <parameter name="tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-group.c"
                 line="210">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"
                getter="get_active_buffer">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.c"
             line="86">The #TeplBuffer of the active tab.</doc>
        <type name="Buffer"/>
      </property>
      <property name="active-tab"
                version="3.0"
                writable="1"
                transfer-ownership="none"
                setter="set_active_tab"
                getter="get_active_tab">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.c"
             line="56">The #TeplTab currently shown.</doc>
        <type name="Tab"/>
      </property>
      <property name="active-view"
                version="3.0"
                transfer-ownership="none"
                getter="get_active_view">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.c"
             line="71">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/tepl-tab-group.h"
           line="27">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/tepl-tab-group.h" line="62"/>
      <field name="parent_interface">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="29">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_tabs">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="30">Virtual function pointer for tepl_tab_group_get_tabs(). By default,
  %NULL is returned. When implementing this vfunc, #GList nodes must be
  created only for #TeplTab children; if the #TeplTabGroup contains a
  non-#TeplTab child, it must be skipped. See the documentation of
  tepl_tab_group_get_tabs().</doc>
        <callback name="get_tabs">
          <source-position filename="tepl/tepl-tab-group.h" line="53"/>
          <return-value transfer-ownership="container">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-group.c"
                 line="113">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/tepl-tab-group.c"
                   line="104">a #TeplTabGroup.</doc>
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_active_tab">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="35">Virtual function pointer for tepl_tab_group_get_active_tab().
  By default, %NULL is returned.</doc>
        <callback name="get_active_tab">
          <source-position filename="tepl/tepl-tab-group.h" line="55"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="tepl/tepl-tab-group.c"
                 line="195">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/tepl-tab-group.c"
                   line="193">a #TeplTabGroup.</doc>
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_active_tab">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="37">Virtual function pointer for
  tepl_tab_group_set_active_tab(). Does nothing by default.</doc>
        <callback name="set_active_tab">
          <source-position filename="tepl/tepl-tab-group.h" line="57"/>
          <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/tepl-tab-group.c"
                   line="209">a #TeplTabGroup.</doc>
              <type name="TabGroup" c:type="TeplTabGroup*"/>
            </parameter>
            <parameter name="tab" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="tepl/tepl-tab-group.c"
                   line="210">a #TeplTab part of @tab_group.</doc>
              <type name="Tab" c:type="TeplTab*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="append_tab_vfunc">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-group.h"
             line="39">Virtual function pointer for tepl_tab_group_append_tab(),
  without the @jump_to parameter. The default implementation prints a warning
  about the operation not being supported.</doc>
        <callback name="append_tab_vfunc">
          <source-position filename="tepl/tepl-tab-group.h" line="60"/>
          <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.Box"
           glib:type-name="TeplTabLabel"
           glib:get-type="tepl_tab_label_get_type"
           glib:type-struct="TabLabelClass">
      <source-position filename="tepl/tepl-tab-label.h" line="53"/>
      <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/tepl-tab-label.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-label.c"
               line="333">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/tepl-tab-label.c"
                 line="331">a #TeplTab.</doc>
            <type name="Tab" c:type="TeplTab*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="get_tooltip_markup">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-label.h"
             line="38">Virtual function pointer to create the tooltip markup
  string. %NULL must be returned if no tooltip is wanted. The result is
  intended to be used as an argument to gtk_widget_set_tooltip_markup(). The
  default implementation returns the full #TeplFile:location if non-%NULL, or
  %NULL otherwise. The return value must be freed with g_free() when no
  longer needed.</doc>
        <source-position filename="tepl/tepl-tab-label.h" line="49"/>
        <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"
              glib:get-property="tab"
              version="3.0">
        <source-position filename="tepl/tepl-tab-label.h" line="62"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-tab-label.c"
               line="350">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/tepl-tab-label.c"
                 line="348">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/tepl-tab-label.c"
             line="361">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/tepl-tab-label.h" line="65"/>
        <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/tepl-tab-label.c"
                 line="363">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"
                getter="get_tab">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-label.c"
             line="269">The associated #TeplTab. #TeplTabLabel has a weak reference to the
#TeplTab.</doc>
        <type name="Tab"/>
      </property>
      <field name="parent">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </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/tepl-tab-label.h" line="53"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-label.h"
             line="37">The parent class.</doc>
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
      <field name="get_tooltip_markup">
        <doc xml:space="preserve"
             filename="tepl/tepl-tab-label.h"
             line="38">Virtual function pointer to create the tooltip markup
  string. %NULL must be returned if no tooltip is wanted. The result is
  intended to be used as an argument to gtk_widget_set_tooltip_markup(). The
  default implementation returns the full #TeplFile:location if non-%NULL, or
  %NULL otherwise. The return value must be freed with g_free() when no
  longer needed.</doc>
        <callback name="get_tooltip_markup">
          <source-position filename="tepl/tepl-tab-label.h" line="49"/>
          <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"
            opaque="1">
      <source-position filename="tepl/tepl-tab-label.h" line="26"/>
    </record>
    <record name="TabPrivate" c:type="TeplTabPrivate" disguised="1" opaque="1">
      <source-position filename="tepl/tepl-tab.h" line="28"/>
    </record>
    <constant name="UTILS_STYLE_PROVIDER_PRIORITY_LIBRARY"
              value="-1"
              c:type="TEPL_UTILS_STYLE_PROVIDER_PRIORITY_LIBRARY"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.h"
           line="18">A priority that can be used when adding a #GtkStyleProvider for
library-specific style information.

Has a higher priority than %GTK_STYLE_PROVIDER_PRIORITY_SETTINGS and a lower
priority than %GTK_STYLE_PROVIDER_PRIORITY_APPLICATION.

The Tepl library uses this priority for its #GtkStyleProvider's.</doc>
      <source-position filename="tepl/tepl-utils.h" line="31"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <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/tepl-view.h" line="27"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="tepl_view_new" version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-view.c"
             line="156">Creates a new #TeplView.

By default, an empty #TeplBuffer will be lazily created and can be retrieved
with gtk_text_view_get_buffer().

If you want to specify your own buffer, either override the
#GtkTextViewClass create_buffer factory method, or use
tepl_view_new_with_buffer().</doc>
        <source-position filename="tepl/tepl-view.h" line="30"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-view.c"
               line="168">a new #TeplView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_buffer"
                   c:identifier="tepl_view_new_with_buffer"
                   version="5.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-view.c"
             line="177">Creates a new #TeplView widget displaying the buffer @buffer.</doc>
        <source-position filename="tepl/tepl-view.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-view.c"
               line="183">a new #TeplView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-view.c"
                 line="179">a #GtkSourceBuffer or a subclass of it.</doc>
            <type name="GtkSource.Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy_clipboard"
              c:identifier="tepl_view_copy_clipboard"
              version="1.0">
        <doc xml:space="preserve"
             filename="tepl/tepl-view.c"
             line="229">Copies the clipboard.</doc>
        <source-position filename="tepl/tepl-view.h" line="39"/>
        <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/tepl-view.c"
                 line="231">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/tepl-view.c"
             line="196">Cuts the clipboard and then scrolls to the cursor position.</doc>
        <source-position filename="tepl/tepl-view.h" line="36"/>
        <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/tepl-view.c"
                 line="198">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/tepl-view.c"
             line="286">Deletes the text currently selected in the #GtkTextBuffer associated
to the view and then scrolls to the cursor position.</doc>
        <source-position filename="tepl/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/tepl-view.c"
                 line="288">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/tepl-view.c"
             line="364">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/tepl-view.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-view.c"
               line="372">%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/tepl-view.c"
                 line="366">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-view.c"
                 line="367">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/tepl-view.c"
             line="397">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/tepl-view.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-view.c"
               line="406">%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/tepl-view.c"
                 line="399">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-view.c"
                 line="400">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/tepl-view.c"
                 line="401">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/tepl-view.c"
             line="255">Pastes the clipboard and then scrolls to the cursor position.</doc>
        <source-position filename="tepl/tepl-view.h" line="42"/>
        <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/tepl-view.c"
                 line="257">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/tepl-view.c"
             line="339">Scrolls the @view to the cursor position.</doc>
        <source-position filename="tepl/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/tepl-view.c"
                 line="341">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/tepl-view.c"
             line="316">Selects all the text.</doc>
        <source-position filename="tepl/tepl-view.h" line="48"/>
        <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/tepl-view.c"
                 line="318">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/tepl-view.c"
             line="437">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/tepl-view.h" line="63"/>
        <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/tepl-view.c"
                 line="439">a #TeplView.</doc>
            <type name="View" c:type="TeplView*"/>
          </instance-parameter>
          <parameter name="start_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="tepl/tepl-view.c"
                 line="440">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/tepl-view.c"
                 line="441">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/tepl-view.h" line="27"/>
      <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>
    <docsection name="abstract-factory">
      <doc xml:space="preserve"
           filename="tepl/tepl-abstract-factory.c"
           line="8">Tepl uses the #TeplAbstractFactory singleton to create some objects and
widgets. By creating a subclass of #TeplAbstractFactory (to override the
desired virtual functions) and setting the instance with
tepl_abstract_factory_set_singleton(), an application can tell Tepl to create
custom objects and widgets.

Note that #GtkTextViewClass has the ::create_buffer factory method, that
#TeplView overrides to create a #TeplBuffer. How the #TeplView and
#TeplBuffer are created can be customized with the ::create_tab vfunc of
#TeplAbstractFactory.

Recommendation for the subclass name: in Tepl, #TeplAbstractFactory is an
abstract class, but in an application it is a concrete class. So
“MyappFactory” is a better name than “MyappAbstractFactory”.</doc>
    </docsection>
    <docsection name="application">
      <doc xml:space="preserve"
           filename="tepl/tepl-application.c"
           line="12">#TeplApplication extends the #GtkApplication class.

For some features, the Tepl framework gets the default #GtkApplication with
g_application_get_default(), for example to call g_application_hold(),
g_application_mark_busy(), etc. Normally a GTK application has only one
#GApplication per process, so this shouldn't cause any problem.

Note that #TeplApplication extends the #GtkApplication class but without
subclassing it, because several libraries might want to extend
#GtkApplication and an application needs to be able to use all those
extensions at the same time.

# GActions # {#tepl-application-gactions}

This class adds the following #GAction's to the #GtkApplication.
Corresponding #AmtkActionInfo's are available with
tepl_application_get_tepl_action_info_store().

## For the File menu

- `"app.tepl-new-window"`: creates a new main window with
  tepl_abstract_factory_create_main_window().</doc>
    </docsection>
    <docsection name="application-window">
      <doc xml:space="preserve"
           filename="tepl/tepl-application-window.c"
           line="16">#TeplApplicationWindow extends the #GtkApplicationWindow class.

An application needs to call tepl_application_window_set_tab_group() to
benefit from the #TeplTabGroup interface implemented by this class.

Note that #TeplApplicationWindow extends the #GtkApplicationWindow class but
without subclassing it, because several libraries might want to extend
#GtkApplicationWindow and an application needs to be able to use all those
extensions at the same time.

# GActions # {#tepl-application-window-gactions}

This class adds the following #GAction's to the #GtkApplicationWindow.
Corresponding #AmtkActionInfo's are available with
tepl_application_get_tepl_action_info_store().

## For the File menu

- `"win.tepl-new-file"`: creates a new #TeplTab, appends it with
  tepl_tab_group_append_tab() and set it as the active tab.
- `"win.tepl-open"`: shows a #GtkFileChooser to open a new file.
- `"win.tepl-save"`: saves the current file.
- `"win.tepl-save-as"`: shows a #GtkFileChooser to save the current file to a
  different location.

## For the Edit menu

- `"win.tepl-undo"`: calls gtk_source_buffer_undo() on the active buffer.
- `"win.tepl-redo"`: calls gtk_source_buffer_redo() on the active buffer.

The following actions require the %AMTK_FACTORY_IGNORE_ACCELS_FOR_APP flag,
because otherwise accelerators don't work in other text widgets than the
active view (e.g. in a #GtkEntry):
- `"win.tepl-cut"`: calls tepl_view_cut_clipboard() on the active view.
- `"win.tepl-copy"`: calls tepl_view_copy_clipboard() on the active view.
- `"win.tepl-paste"`: calls tepl_view_paste_clipboard() on the active view.
- `"win.tepl-delete"`: calls tepl_view_delete_selection() on the active view.
- `"win.tepl-select-all"`: calls tepl_view_select_all() on the active view.
- `"win.tepl-indent"`: calls gtk_source_view_indent_lines() on the selected
  text of the active view.
- `"win.tepl-unindent"`: calls gtk_source_view_unindent_lines() on the
  selected text of the active view.

See the tepl_menu_shell_append_edit_actions() convenience function.

## For the Search menu

- `"win.tepl-goto-line"`: shows the #TeplGotoLineBar of all #TeplTab's
  belonging to #TeplApplicationWindow. Even though each #TeplTab has a
  different #TeplGotoLineBar, all #TeplGotoLineBar's of the #TeplTabGroup
  have their #GtkWidget:visible state synchronized, so when one
  #TeplGotoLineBar is hidden, all the other #TeplGotoLineBar's are hidden as
  well. The user may think that there is only one #TeplGotoLineBar per
  window, with the #TeplGotoLineBar remembering a different state (mainly the
  content of the #GtkSearchEntry) for each #TeplTab. To remember the state
  for each #TeplTab, the easiest is to have a different widget for each
  #TeplTab, hence the current implementation.</doc>
    </docsection>
    <docsection name="buffer">
      <doc xml:space="preserve"
           filename="tepl/tepl-buffer.c"
           line="11">#TeplBuffer is a subclass of #GtkSourceBuffer, to add more features useful
for a text editor.

It also adds an association to a #TeplFile that can be retrieved with
tepl_buffer_get_file(). The association cannot change. The same for
#TeplMetadata with tepl_buffer_get_metadata().

The properties and signals have the tepl namespace, to avoid potential
conflicts in the future if the property or signal is moved to
#GtkSourceBuffer.</doc>
    </docsection>
    <docsection name="file">
      <doc xml:space="preserve"
           filename="tepl/tepl-file.c"
           line="12">A #TeplFile object is the on-disk representation of a #TeplBuffer.

With a #TeplFile, you can create and configure a #TeplFileLoader and
#TeplFileSaver which take by default the values of the #TeplFile properties
(except for the file loader which auto-detects some properties). On a
successful load or save operation, the #TeplFile properties are updated. If
an operation fails, the #TeplFile properties have still the previous valid
values.

It is possible to use #TeplFile without using #TeplFileLoader and
#TeplFileSaver. #TeplFile alone offers several features useful for a text
editor.

When using #TeplFile alone, #TeplFile does the I/O operations (if any)
asynchronously.</doc>
    </docsection>
    <docsection name="file-chooser">
      <doc xml:space="preserve"
           filename="tepl/tepl-file-chooser.c"
           line="7">Extra functions for #GtkFileChooser, to have common code between
#GtkFileChooserDialog and GtkFileChooserNative.</doc>
    </docsection>
    <docsection name="file-loader">
      <doc xml:space="preserve"
           filename="tepl/tepl-file-loader.c"
           line="9">A #TeplFileLoader object permits to load the content of a #GFile into a
#TeplBuffer.

A file loader should be used only for one load operation, including errors
handling. If an error occurs, you can reconfigure the loader and relaunch the
operation with tepl_file_loader_load_async().

Running a #TeplFileLoader is an undoable action for the #TeplBuffer. That is,
gtk_source_buffer_begin_not_undoable_action() and
gtk_source_buffer_end_not_undoable_action() are called, which delete the
undo/redo history.

After a file loading, the buffer is reset to the content provided by the
#GFile, so the buffer is set as “unmodified”, that is,
gtk_text_buffer_set_modified() is called with %FALSE.</doc>
    </docsection>
    <docsection name="file-saver">
      <doc xml:space="preserve"
           filename="tepl/tepl-file-saver.c"
           line="12">A #TeplFileSaver object permits to save a #TeplBuffer into a #GFile.

A file saver should be used only for one save operation, including errors
handling. If an error occurs, you can reconfigure the saver and relaunch the
operation with tepl_file_saver_save_async().

# Things that need to be done at a higher level

Make the #GtkTextView non-editable during the save operation. See
gtk_text_view_set_editable(). Because the save operation is asynchronous, and
gtk_text_buffer_set_modified() must be called (with a %FALSE value) only when
the file has been successfully saved. So that's why
gtk_text_buffer_set_modified() is called by tepl_file_saver_save_finish(),
not at the beginning of the save operation. If the view/buffer is editable
during the save operation, gtk_text_buffer_set_modified() may be called at
the wrong place in the undo/redo history.</doc>
    </docsection>
    <function name="finalize" c:identifier="tepl_finalize" version="3.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-init.c"
           line="69">Free the resources allocated by Tepl. For example it unrefs the singleton
objects.

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

It is not mandatory to call this function, it's just to be friendlier to
memory debugging tools. This function is meant to be called at the end of
main(). It can be called several times.</doc>
      <source-position filename="tepl/tepl-init.h" line="20"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <docsection name="fold-region">
      <doc xml:space="preserve"
           filename="tepl/tepl-fold-region.c"
           line="7">#TeplFoldRegion represents a region in a #GtkTextBuffer that can be folded.

When a region is being folded, a #GtkTextTag with the #GtkTextTag:invisible
property is applied to the folded region. The actual start and end position
of this #GtkTextTag is respectively at the next new line after the start and
end position of the bounds handed over to tepl_fold_region_set_bounds().</doc>
    </docsection>
    <docsection name="goto-line-bar">
      <doc xml:space="preserve"
           filename="tepl/tepl-goto-line-bar.c"
           line="10">#TeplGotoLineBar is an horizontal bar containing among other things:
- A #GtkSearchEntry.
- A close button.

When the #GtkSearchEntry's content changes, tepl_view_goto_line() is called
on the associated #TeplView.

# High-level API

#TeplGotoLineBar is integrated in the Tepl framework, see:
- The `"win.tepl-goto-line"` #GAction in #TeplApplicationWindow.
- The tepl_tab_get_goto_line_bar() function.</doc>
    </docsection>
    <docsection name="gutter-renderer-folds">
      <doc xml:space="preserve"
           filename="tepl/tepl-gutter-renderer-folds.c"
           line="8">#TeplGutterRendererFolds is a basic gutter renderer for code folding. It
handles only the drawing, and has a flat view of the folding tree.</doc>
    </docsection>
    <docsection name="info-bar">
      <doc xml:space="preserve"
           filename="tepl/tepl-info-bar.c"
           line="8">#TeplInfoBar is a subclass of #GtkInfoBar. In most cases it permits to create
#GtkInfoBar's more easily.

The content area is divided into several sub-areas, described in
#TeplInfoBarLocation.</doc>
    </docsection>
    <function name="init" c:identifier="tepl_init" version="3.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-init.c"
           line="34">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(), gfls_init() and gtk_source_init().</doc>
      <source-position filename="tepl/tepl-init.h" line="17"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <docsection name="io-error-info-bars">
      <doc xml:space="preserve"
           filename="tepl/tepl-io-error-info-bars.c"
           line="11">Verbose error reporting for file I/O operations.</doc>
    </docsection>
    <function name="io_error_info_bar_cant_create_backup"
              c:identifier="tepl_io_error_info_bar_cant_create_backup"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-io-error-info-bars.c"
           line="111">When a %G_IO_ERROR_CANT_CREATE_BACKUP error occurs while saving @location,
offer two possible actions:
- Save anyway: %GTK_RESPONSE_YES.
- Don't save: %GTK_RESPONSE_CANCEL.</doc>
      <source-position filename="tepl/tepl-io-error-info-bars.h" line="21"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-io-error-info-bars.c"
             line="121">the newly created #TeplInfoBar.</doc>
        <type name="InfoBar" c:type="TeplInfoBar*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="113">the #GFile for which the backup failed to be created.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="114">must be a %G_IO_ERROR_CANT_CREATE_BACKUP.</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="io_error_info_bar_externally_modified"
              c:identifier="tepl_io_error_info_bar_externally_modified"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-io-error-info-bars.c"
           line="171">Creates a warning about @location having changed on disk. The possible
actions:
- Depending on @document_modified, "Reload" or "Drop changes and reload":
  %GTK_RESPONSE_OK.
- Ignore: %GTK_RESPONSE_CLOSE.</doc>
      <source-position filename="tepl/tepl-io-error-info-bars.h" line="25"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-io-error-info-bars.c"
             line="183">the newly created #TeplInfoBar.</doc>
        <type name="InfoBar" c:type="TeplInfoBar*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="173">the #GFile for which there has been an external modification.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="document_modified" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="174">whether the document (e.g. the #GtkTextBuffer) has
  unsaved modifications.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="io_error_info_bar_file_already_open"
              c:identifier="tepl_io_error_info_bar_file_already_open"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-io-error-info-bars.c"
           line="32">Creates a warning about @location being already open in another window,
offering two possible actions:
- Edit anyway: %GTK_RESPONSE_YES.
- Don't edit: %GTK_RESPONSE_CANCEL.</doc>
      <source-position filename="tepl/tepl-io-error-info-bars.h" line="18"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-io-error-info-bars.c"
             line="41">the newly created #TeplInfoBar.</doc>
        <type name="InfoBar" c:type="TeplInfoBar*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="34">the #GFile already open in another window.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="io_error_info_bar_invalid_characters"
              c:identifier="tepl_io_error_info_bar_invalid_characters"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-io-error-info-bars.c"
           line="276">For file saving, creates a warning about invalid characters that can corrupt
the file. Possible actions:
- Save anyway: %GTK_RESPONSE_YES.
- Don't save: %GTK_RESPONSE_CANCEL.</doc>
      <source-position filename="tepl/tepl-io-error-info-bars.h" line="32"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-io-error-info-bars.c"
             line="285">the newly created #TeplInfoBar.</doc>
        <type name="InfoBar" c:type="TeplInfoBar*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="278">where to save the document.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="io_error_info_bar_saving_externally_modified"
              c:identifier="tepl_io_error_info_bar_saving_externally_modified"
              version="6.4">
      <doc xml:space="preserve"
           filename="tepl/tepl-io-error-info-bars.c"
           line="232">When attempting to save @location, creates a warning about @location having
changed on disk. The possible actions:
- Save anyway: %GTK_RESPONSE_YES.
- Don't save: %GTK_RESPONSE_CANCEL.</doc>
      <source-position filename="tepl/tepl-io-error-info-bars.h" line="29"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-io-error-info-bars.c"
             line="241">the newly created #TeplInfoBar.</doc>
        <type name="InfoBar" c:type="TeplInfoBar*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-io-error-info-bars.c"
               line="234">a #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="iter">
      <doc xml:space="preserve"
           filename="tepl/tepl-iter.c"
           line="7">#GtkTextIter utility functions.</doc>
    </docsection>
    <function name="iter_get_line_indentation"
              c:identifier="tepl_iter_get_line_indentation"
              version="2.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-iter.c"
           line="44">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/tepl-iter.h" line="17"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-iter.c"
             line="55">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/tepl-iter.c"
               line="46">a #GtkTextIter.</doc>
          <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="language-chooser">
      <doc xml:space="preserve"
           filename="tepl/tepl-language-chooser.c"
           line="7">A #TeplLanguageChooser widget shows a list of available #GtkSourceLanguage's,
as returned by gtk_source_language_manager_get_default(). The list contains a
"Plain Text" item for the %NULL language.

The typical workflow when using a #TeplLanguageChooser widget in an
application is:
1. Create a #TeplLanguageChooser widget.
2. Call tepl_language_chooser_select_language() with the value of the
   #GtkSourceBuffer:language property.
3. Wait for the #TeplLanguageChooser::language-activated signal to be emitted
   and/or destroy the #TeplLanguageChooser widget.</doc>
    </docsection>
    <docsection name="language-chooser-dialog">
      <doc xml:space="preserve"
           filename="tepl/tepl-language-chooser-dialog.c"
           line="11">#TeplLanguageChooserDialog is a #GtkDialog to choose a #GtkSourceLanguage.
#TeplLanguageChooserDialog implements the #TeplLanguageChooser interface.

The #GtkDialog contains two buttons: Cancel and Select. During the
#GtkDialog::response signal emission, if the user has clicked on the Select
button, then the #TeplLanguageChooser::language-activated signal is emitted.

You probably want to connect to the #GtkDialog::response signal with the
%G_CONNECT_AFTER flag, to destroy the dialog.</doc>
    </docsection>
    <docsection name="language-chooser-widget">
      <doc xml:space="preserve"
           filename="tepl/tepl-language-chooser-widget.c"
           line="11">#TeplLanguageChooserWidget is a #GtkWidget to choose a #GtkSourceLanguage.
#TeplLanguageChooserWidget implements the #TeplLanguageChooser interface.

In addition to the list, it contains a #GtkSearchEntry to search the list.</doc>
    </docsection>
    <docsection name="line-column-indicator">
      <doc xml:space="preserve"
           filename="tepl/tepl-line-column-indicator.c"
           line="11">#TeplLineColumnIndicator indicates the cursor position by line and column
numbers. For example: "Ln 2, Col 3".

The usual case is to pack this widget in a #GtkStatusbar.</doc>
    </docsection>
    <docsection name="menu-shell">
      <doc xml:space="preserve"
           filename="tepl/tepl-menu-shell.c"
           line="8">#GtkMenuShell functions.</doc>
    </docsection>
    <function name="menu_shell_append_edit_actions"
              c:identifier="tepl_menu_shell_append_edit_actions"
              version="3.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-menu-shell.c"
           line="16">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/tepl-menu-shell.h" line="17"/>
      <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/tepl-menu-shell.c"
               line="18">a #GtkMenuShell.</doc>
          <type name="Gtk.MenuShell" c:type="GtkMenuShell*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="metadata">
      <doc xml:space="preserve"
           filename="tepl/tepl-metadata.c"
           line="7">A #TeplMetadata object contains a set of file metadata as key/value pairs.

The tepl_metadata_get() and tepl_metadata_set() functions don't load or save
the metadata on disk, they only access the metadata stored in the
#TeplMetadata object memory.

#TeplMetadata is intended to be used alongside #TeplMetadataManager to load
and store the metadata on disk.

# Values requirements

Values must be nul-terminated UTF-8 strings.

# Keys requirements # {#tepl-metadata-keys-requirements}

Keys must be non-empty strings containing only:
- ASCII alphanumeric characters (see g_ascii_isalnum());
- `'-'` characters (hyphens / minus signs);
- or `'_'` characters (underscores).

Additionally, it's preferable that keys start with a namespace, to not get
metadata conflicts between the application and libraries.

Examples of valid metadata keys:
- `"gedit-spell-checking-language"`
- `"gCSVedit_column_delimiter"`
- `"tepl-character-encoding"`</doc>
    </docsection>
    <docsection name="metadata-manager">
      <doc xml:space="preserve"
           filename="tepl/tepl-metadata-manager.c"
           line="10">#TeplMetadataManager permits to store file metadata on disk. It serves both
as an easier replacement for GVfs metadata, and to have metadata support on
platforms that don't support GVfs metadata.

For the #GFile where the metadata are stored (see the
tepl_metadata_manager_load_from_disk() and
tepl_metadata_manager_save_to_disk() functions), the following applies:
- A good place to store the metadata is in a sub-directory of the user data
  directory. See g_get_user_data_dir().
- The #GFile must be different for each process. It is advised for your
  application to rely on #GApplication process uniqueness.
  #TeplMetadataManager doesn't support concurrent accesses to the same #GFile
  from different processes. Which means that metadata cannot be shared
  between applications.

# High-level API

#TeplMetadataManager and #TeplMetadata are integrated in the Tepl framework,
see:
- tepl_application_handle_metadata().
- the metadata API of #TeplBuffer.</doc>
    </docsection>
    <docsection name="notebook">
      <doc xml:space="preserve"
           filename="tepl/tepl-notebook.c"
           line="11">#TeplNotebook is a subclass of #GtkNotebook that implements the #TeplTabGroup
interface.</doc>
    </docsection>
    <docsection name="object-counters">
      <doc xml:space="preserve"
           filename="tepl/tepl-object-counters.c"
           line="7">TeplObjectCounters is a utility to detect memory leaks, by counting the
number of objects constructed and destructed, per type.

It must be used manually by calling its functions explicitly.

It is not intended to be used in performance-sensitive code areas.</doc>
    </docsection>
    <function name="object_counters_decrement"
              c:identifier="tepl_object_counters_decrement"
              version="6.10">
      <doc xml:space="preserve"
           filename="tepl/tepl-object-counters.c"
           line="81">Decrements the counter for @type.

For a #GObject class, this function must be called in the `_finalize()`
destructor function.</doc>
      <source-position filename="tepl/tepl-object-counters.h" line="23"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-object-counters.c"
               line="83">the object type, as a string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_counters_final_check"
              c:identifier="tepl_object_counters_final_check"
              version="6.10">
      <doc xml:space="preserve"
           filename="tepl/tepl-object-counters.c"
           line="124">Prints a warning for each type for which the counter hasn't reached zero.

This function is intended to be called once, towards the end of the `main()`
function.

After calling this function, the other TeplObjectCounters functions must not
be called anymore.</doc>
      <source-position filename="tepl/tepl-object-counters.h" line="26"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="object_counters_increment"
              c:identifier="tepl_object_counters_increment"
              version="6.10">
      <doc xml:space="preserve"
           filename="tepl/tepl-object-counters.c"
           line="45">Increments the counter for @type.

For a #GObject class, this function must be called in the `_init()` function,
when an instance is created.</doc>
      <source-position filename="tepl/tepl-object-counters.h" line="20"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-object-counters.c"
               line="47">the object type, as a string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_counters_init"
              c:identifier="tepl_object_counters_init"
              version="6.10">
      <doc xml:space="preserve"
           filename="tepl/tepl-object-counters.c"
           line="25">Must be called before using the other TeplObjectCounters functions, usually
early in the `main()` function.</doc>
      <source-position filename="tepl/tepl-object-counters.h" line="17"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <docsection name="overwrite-indicator">
      <doc xml:space="preserve"
           filename="tepl/tepl-overwrite-indicator.c"
           line="11">#TeplOverwriteIndicator indicates the mode in which text edition occurs:
insert or overwrite.

See for example the #GtkTextView:overwrite property.

The usual case is to pack this widget in a #GtkStatusbar.

# TODO

It is planned to extend this widget to be able to click on / activate it to
change the mode, with a #GtkPopover for example (but this would be optional,
with a "chooser" boolean construct-only property).

With a different styling when in overwrite mode.

Because not everybody is familiar with the key on the keyboard to switch
between the different modes.</doc>
    </docsection>
    <docsection name="panel">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel.c"
           line="7">#TeplPanel represents a panel that is usually shown on the side or at the
bottom (inside a main window), and can contain several items.</doc>
    </docsection>
    <docsection name="panel-item">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel-item.c"
           line="8">A #TeplPanelItem object contains a #GtkWidget plus associated information.</doc>
    </docsection>
    <docsection name="panel-notebook">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel-notebook.c"
           line="9">Side or bottom panel container based on #GtkNotebook.

This class is useful if you want to expose only #TeplPanel in an API.</doc>
    </docsection>
    <docsection name="panel-simple">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel-simple.c"
           line="8">#TeplPanelSimple is a simple implementation of the #TeplPanel interface,
containing a set of #TeplPanelItem's.

By using this class, the #TeplPanelItem widgets are not yet packed into a
#GtkContainer. That is a job for other classes.</doc>
    </docsection>
    <docsection name="panel-stack">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel-stack.c"
           line="7">#TeplPanelStack is a side or bottom panel container. It combines
#TeplPanelSimple and #GtkStack.</doc>
    </docsection>
    <docsection name="panel-switcher-menu">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel-switcher-menu.c"
           line="8">Similar to #GtkStackSwitcher, but for a #TeplPanelSimple.

This switcher widget is suitable to be put in a #GtkHeaderBar, to choose the
component of a side panel (for example).</doc>
    </docsection>
    <docsection name="panel1">
      <doc xml:space="preserve"
           filename="tepl/tepl-panel1.c"
           line="10">#TeplPanel1 permits to create a side or bottom panel that contains several
components.

#TeplPanel1 is a #GtkGrid subclass containing only one child #GtkWidget by
default: the #GtkStack that can be retrieved with tepl_panel1_get_stack().

#TeplPanel1 has the "1" suffix because it's the version 1 of the TeplPanel
API.</doc>
    </docsection>
    <docsection name="pango">
      <doc xml:space="preserve"
           filename="tepl/tepl-pango.c"
           line="6">Utility functions related to the Pango library.</doc>
    </docsection>
    <function name="pango_font_description_to_css"
              c:identifier="tepl_pango_font_description_to_css"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-pango.c"
           line="74">This function will generate CSS suitable for the GTK CSS engine based on the
properties of the #PangoFontDescription.

The returned string contains only the CSS declarations, it is not a complete
CSS rule set. So the selector and curly braces are not present. Each
declaration, including the last one, ends with a semicolon.

See also tepl_utils_override_font_description() and
tepl_utils_override_font_string().</doc>
      <source-position filename="tepl/tepl-pango.h" line="18"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-pango.c"
             line="88">A newly allocated string containing the CSS
  describing the font description. Free with g_free() when no longer needed.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="desc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-pango.c"
               line="76">a #PangoFontDescription.</doc>
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="prefs">
      <doc xml:space="preserve"
           filename="tepl/tepl-prefs.c"
           line="12">Functions to create GUI elements that are useful for a preferences dialog or
panel. In order to configure a text editor.</doc>
    </docsection>
    <docsection name="prefs-dialog">
      <doc xml:space="preserve"
           filename="tepl/tepl-prefs-dialog.c"
           line="10">#TeplPrefsDialog is a subclass of #GtkDialog for configuring the preferences
of an application.</doc>
    </docsection>
    <function name="prefs_create_checkbutton_simple"
              c:identifier="tepl_prefs_create_checkbutton_simple"
              version="6.13">
      <source-position filename="tepl/tepl-prefs.h" line="17"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="33">a #GtkCheckButton to configure @key.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="29">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="30">a key part of @settings. The type of the key must be a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="mnemonic_text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="31">the text (with mnemonic) for the #GtkCheckButton.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_display_line_numbers_checkbutton"
              c:identifier="tepl_prefs_create_display_line_numbers_checkbutton"
              version="6.2">
      <source-position filename="tepl/tepl-prefs.h" line="27"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="178">A #GtkCheckButton intended for
  #GtkSourceView:show-line-numbers.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="174">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="display_line_numbers_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="175">a key part of @settings. The type of the key must
  be a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_display_statusbar_checkbutton"
              c:identifier="tepl_prefs_create_display_statusbar_checkbutton"
              version="6.10">
      <source-position filename="tepl/tepl-prefs.h" line="60"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="531">A #GtkCheckButton intended for configuring the
  visibility of a #GtkStatusbar.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="527">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="display_statusbar_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="528">a key part of @settings. The type of the key must be
  a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_files_component"
              c:identifier="tepl_prefs_create_files_component"
              version="6.2">
      <source-position filename="tepl/tepl-prefs.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="392">a component for some files preferences.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="383">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="create_backup_copy_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="384">a key part of @settings. The type of the key must be
  a boolean. Intended to be used with %TEPL_FILE_SAVER_FLAGS_CREATE_BACKUP
  (for example).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="auto_save_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="387">a key part of @settings. The type of the key must be a
  boolean. Whether to autosave files.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="auto_save_interval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="389">a key part of @settings. The type of the key must be an
  unsigned integer, with a range. The interval is in minutes.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_font_component"
              c:identifier="tepl_prefs_create_font_component"
              version="6.2">
      <source-position filename="tepl/tepl-prefs.h" line="22"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="117">A component for configuring the font.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="111">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="use_default_font_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="112">a key part of @settings to store whether to use the
  system font. The type of the key must be a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="editor_font_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="114">a key part of @settings to store the editor font. The type
  of the key must be a string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_highlighting_component"
              c:identifier="tepl_prefs_create_highlighting_component"
              version="6.2">
      <source-position filename="tepl/tepl-prefs.h" line="40"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="294">a component intended for
  #GtkSourceView:highlight-current-line and
  #GtkSourceBuffer:highlight-matching-brackets.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="288">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="highlight_current_line_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="289">a key part of @settings. The type of the key
  must be a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="highlight_matching_brackets_key"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="291">a key part of @settings. The type of the
  key must be a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_insert_spaces_component"
              c:identifier="tepl_prefs_create_insert_spaces_component"
              version="6.2">
      <source-position filename="tepl/tepl-prefs.h" line="35"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="244">a component intended for
  #GtkSourceView:insert-spaces-instead-of-tabs and
  #GtkSourceView:smart-backspace.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="238">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="insert_spaces_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="239">a key part of @settings. The type of the key must be a
  boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="smart_backspace_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="241">a key part of @settings. The type of the key must be a
  boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_right_margin_component"
              c:identifier="tepl_prefs_create_right_margin_component"
              version="6.10">
      <source-position filename="tepl/tepl-prefs.h" line="55"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="473">a component intended for
  #GtkSourceView:show-right-margin and #GtkSourceView:right-margin-position.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="467">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="display_right_margin_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="468">a key part of @settings. The type of the key must
  be a boolean.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="right_margin_position_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="470">a key part of @settings. The type of the key must
  be an unsigned integer.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_tab_width_spinbutton"
              c:identifier="tepl_prefs_create_tab_width_spinbutton"
              version="6.2">
      <source-position filename="tepl/tepl-prefs.h" line="31"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="197">A widget containing a #GtkSpinButton intended
  for #GtkSourceView:tab-width.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="193">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="tab_width_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="194">a key part of @settings. The type of the key must be an
  unsigned integer, with a range.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_create_theme_variant_combo_box"
              c:identifier="tepl_prefs_create_theme_variant_combo_box"
              version="6.10">
      <source-position filename="tepl/tepl-prefs.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-prefs.c"
             line="430">A widget containing a #GtkComboBoxText intended
  to choose a #TeplSettingsThemeVariant.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="426">a #GSettings.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="theme_variant_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-prefs.c"
               line="427">a key part of @settings. Its type must be an enum for
  #TeplSettingsThemeVariant.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="progress-info-bar">
      <doc xml:space="preserve"
           filename="tepl/tepl-progress-info-bar.c"
           line="12">#TeplProgressInfoBar is a #TeplInfoBar containing a #GtkProgressBar and a
#GtkLabel. As every #TeplInfoBar it can also contain an icon, and other
widgets can be added by the application as well.

The #GtkLabel content can be modified after the #TeplProgressInfoBar has been
created.</doc>
    </docsection>
    <docsection name="settings">
      <doc xml:space="preserve"
           filename="tepl/tepl-settings.c"
           line="8">#TeplSettings is a singleton class to have a central access to some
#GSettings objects and having convenience features that are useful for a text
editor.

The central access permits to:
- Share the same #GSettings objects between different parts of the
  application.
- Avoid the need to store #GSettings objects a bit everywhere in different
  classes.</doc>
    </docsection>
    <docsection name="settings-binding-group">
      <doc xml:space="preserve"
           filename="tepl/tepl-settings-binding-group.c"
           line="8">#TeplSettingsBindingGroup is a small utility to call g_settings_unbind() on a
group of properties (on the same #GObject).

The documentation of g_settings_unbind() says that bindings are automatically
removed when the object is finalized. The purpose of
#TeplSettingsBindingGroup is to unbind the settings in `dispose()` instead.
Setting a property while an object has already been disposed but not
finalized is usually not well tested, and can result to crashes, so it is
more robust to unbind the settings in `dispose()`.

To achieve the same, you can also write a list of g_settings_unbind() calls
at the appropriate place. But where g_settings_bind() (or similar) and
g_settings_unbind() need to be called are at different places so it is more
error-prone to maintain. With this utility, tepl_settings_binding_group_add()
is called at the same place as g_settings_bind().</doc>
    </docsection>
    <function name="settings_binding_group_new"
              c:identifier="tepl_settings_binding_group_new"
              moved-to="SettingsBindingGroup.new"
              version="6.11"
              introspectable="0">
      <source-position filename="tepl/tepl-settings-binding-group.h"
                       line="20"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-settings-binding-group.c"
             line="38">a new #TeplSettingsBindingGroup instance.</doc>
        <type name="SettingsBindingGroup" c:type="TeplSettingsBindingGroup*"/>
      </return-value>
    </function>
    <docsection name="signal-group">
      <doc xml:space="preserve"
           filename="tepl/tepl-signal-group.c"
           line="7">#TeplSignalGroup is a small utility to disconnect signal handlers without the
need to keep around the #GObject instance that the signal handlers were
connected to.</doc>
    </docsection>
    <function name="signal_group_clear"
              c:identifier="tepl_signal_group_clear"
              moved-to="SignalGroup.clear"
              version="6.0"
              introspectable="0">
      <doc xml:space="preserve"
           filename="tepl/tepl-signal-group.c"
           line="88">Like g_clear_object() but for a #TeplSignalGroup.

If the #GObject instance of the #TeplSignalGroup is still alive, this
function disconnects all the signal handlers that were added with
tepl_signal_group_add().

The #TeplSignalGroup, if non-%NULL, is freed when calling this function.</doc>
      <source-position filename="tepl/tepl-signal-group.h" line="23"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="group_pointer" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-signal-group.c"
               line="90">a pointer to a #TeplSignalGroup.</doc>
          <type name="SignalGroup" c:type="TeplSignalGroup**"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_group_new"
              c:identifier="tepl_signal_group_new"
              moved-to="SignalGroup.new"
              version="6.0"
              introspectable="0">
      <doc xml:space="preserve"
           filename="tepl/tepl-signal-group.c"
           line="32">Creates a new #TeplSignalGroup for @object. The #TeplSignalGroup will have a
weak reference to @object.</doc>
      <source-position filename="tepl/tepl-signal-group.h" line="20"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-signal-group.c"
             line="39">a new #TeplSignalGroup for @object. Free with
  tepl_signal_group_clear() when no longer needed.</doc>
        <type name="SignalGroup" c:type="TeplSignalGroup*"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-signal-group.c"
               line="34">a #GObject.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="space-drawer-prefs">
      <doc xml:space="preserve"
           filename="tepl/tepl-space-drawer-prefs.c"
           line="10">#TeplSpaceDrawerPrefs is a #GtkWidget for configuring the preferences about
white space drawing with #GtkSourceSpaceDrawer.

The configuration is stored in the #GtkSourceSpaceDrawer:matrix property of
the associated #GtkSourceSpaceDrawer object.</doc>
    </docsection>
    <docsection name="status-menu-button">
      <doc xml:space="preserve"
           filename="tepl/tepl-status-menu-button.c"
           line="9">#TeplStatusMenuButton is a #GtkMenuButton that is suitable to be put in a
#GtkStatusbar.

It contains:
- Some text.
- An arrow.
- When clicked, a menu or popover can be shown (see the #GtkMenuButton API).</doc>
    </docsection>
    <docsection name="style-scheme-chooser-full">
      <doc xml:space="preserve"
           filename="tepl/tepl-style-scheme-chooser-full.c"
           line="12">#TeplStyleSchemeChooserFull is a widget that permits to choose a
#GtkSourceStyleScheme.

It is similar to #TeplStyleSchemeChooserSimple, but supports both light and
dark GTK themes in a single widget.

#TeplStyleSchemeChooserFull has a title for the component. The title
describes whether it is for a light or dark GTK theme. There is only one list
of style schemes shown, and it dynamically changes depending on the GTK
theme.

It connects to the two #GSettings keys provided by
tepl_settings_provide_style_scheme_settings().</doc>
    </docsection>
    <docsection name="style-scheme-chooser-simple">
      <doc xml:space="preserve"
           filename="tepl/tepl-style-scheme-chooser-simple.c"
           line="9">#TeplStyleSchemeChooserSimple is a widget that permits to choose a
#GtkSourceStyleScheme.

It shows a list with the name and description of each #GtkSourceStyleScheme,
taken from the default #GtkSourceStyleSchemeManager.

It is either for a light GTK theme, or a dark GTK theme, but not both. If you
need both, consider using #TeplStyleSchemeChooserFull or create two instances
of #TeplStyleSchemeChooserSimple.

#TeplStyleSchemeChooserSimple contains a #GtkScrolledWindow internally. When
the #GtkWidget::map signal is emitted, it scrolls to the selected row (useful
when the list is long).</doc>
    </docsection>
    <docsection name="tab">
      <doc xml:space="preserve"
           filename="tepl/tepl-tab.c"
           line="12">#TeplTab is meant to be the content of one tab in the text editor (if the
text editor has a Tabbed Document Interface). It is a #GtkGrid container that
contains the #TeplView and can contain one or several #GtkInfoBar's. Since it
is a #GtkGrid, an application can of course add any other widget to it.

To create a new #GtkInfoBar, it is recommended to use #TeplInfoBar (but
#TeplTab doesn't enforce it).

By default:
- #TeplTab has a vertical #GtkOrientation.
- The main child widget of #TeplTab is a #GtkScrolledWindow which contains
  the #TeplView.
- #GtkInfoBar's are added on top of the #GtkScrolledWindow.

The way that the #TeplView is packed into the #TeplTab is customizable with
the ::pack_view virtual function. Similarly, the way that #GtkInfoBar's are
added can be customized with ::pack_info_bar.

# TeplTabGroup implementation

#TeplTab implements the #TeplTabGroup interface, for a group of only one tab.
It is useful for text editors that open each file in a separate window, or
for applications that don't require to open more than one file. But the
tepl_tab_group_append_tab() operation is not supported, so some higher-level
features of Tepl don't work with #TeplTab as the #TeplTabGroup of the window.
This will maybe be improved in the future by creating automatically a new
window.</doc>
    </docsection>
    <docsection name="tab-group">
      <doc xml:space="preserve"
           filename="tepl/tepl-tab-group.c"
           line="7">The tepl_tab_group_get_tabs() function permits to get the list of #TeplTab's.
The tepl_tab_group_get_active_tab() function permits to get the #TeplTab
currently shown in the #TeplTabGroup.

#TeplTabGroup also contains convenience functions to get #TeplView's and
#TeplBuffer's instead of #TeplTab's.</doc>
    </docsection>
    <docsection name="tab-label">
      <doc xml:space="preserve"
           filename="tepl/tepl-tab-label.c"
           line="13">#TeplTabLabel is the label/title of a #TeplTab, suitable for #GtkNotebook.

A #TeplTabLabel contains:
- a #GtkLabel with the #TeplBuffer:tepl-short-title.
- a close button, when clicked the #TeplTab #TeplTab::close-request signal is
  emitted.
- a customizable tooltip, by default it shows the full #TeplFile:location.</doc>
    </docsection>
    <docsection name="utils">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="16">Utility functions.</doc>
    </docsection>
    <function name="utils_binding_transform_func_smart_bool"
              c:identifier="tepl_utils_binding_transform_func_smart_bool"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1300">A #GBindingTransformFunc to transform between these two #GValue types:
- A #GValue of type #gboolean.
- A #GValue of type #GVariant, with the #GVariant of type boolean.

For convenience, this function works in both directions (hence the “smart”),
it introspects the types of @from_value and @to_value.

Note that if @from_value and @to_value are of the same #GValue type, this
function won't work and you shouldn't use a custom #GBindingTransformFunc in
the first place.</doc>
      <source-position filename="tepl/tepl-utils.h" line="161"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="1318">%TRUE if the transformation was successful, and %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="binding" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1302">a #GBinding.</doc>
          <type name="GObject.Binding" c:type="GBinding*"/>
        </parameter>
        <parameter name="from_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1303">the #GValue containing the value to transform.</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="to_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1304">the #GValue in which to store the transformed value.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1305">data passed to the transform function.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_can_use_gsettings_key"
              c:identifier="tepl_utils_can_use_gsettings_key"
              version="6.2">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1403">Especially useful for external #GSettings (provided by another application
for instance).

See also: tepl_utils_can_use_gsettings_schema() which is typically used
before this function.</doc>
      <source-position filename="tepl/tepl-utils.h" line="170"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="1414">whether the #GSettings key exists.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1405">a #GSettings object.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1406">the key to introspect.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_can_use_gsettings_schema"
              c:identifier="tepl_utils_can_use_gsettings_schema"
              version="6.2">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1366">Checks that a #GSettings schema exists.

Especially useful for external #GSettings (provided by another application
for instance).</doc>
      <source-position filename="tepl/tepl-utils.h" line="167"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="1375">%TRUE if a #GSettings instance can be created with @schema_id.
  %FALSE otherwise (in that case the program would crash).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="schema_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1368">a #GSettings schema ID.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_create_close_button"
              c:identifier="tepl_utils_create_close_button"
              version="5.0">
      <source-position filename="tepl/tepl-utils.h" line="99"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="720">a new close button (a #GtkButton).</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
    </function>
    <function name="utils_create_parent_directories"
              c:identifier="tepl_utils_create_parent_directories"
              version="5.0"
              throws="1">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="612">Synchronously creates parent directories of @file, so that @file can be
saved.</doc>
      <source-position filename="tepl/tepl-utils.h" line="82"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="621">whether the directories are correctly created. %FALSE is returned on
error.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="614">a file</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="615">optional #GCancellable object, %NULL to ignore.</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_decode_uri"
              c:identifier="tepl_utils_decode_uri"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="412">This function is deprecated, use the #GUri functions instead.

Parse and break an uri apart in its individual components like the uri
scheme, user info, host, port and path. The return value pointer can be
%NULL to ignore certain parts of the uri. If the function returns %TRUE, then
all return value pointers should be freed using g_free().</doc>
      <source-position filename="tepl/tepl-utils.h" line="71"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="429">%TRUE if the uri could be properly decoded, %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="414">the uri to decode</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="scheme"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="415">return value pointer for the uri's
    scheme (e.g. http, sftp, ...), or %NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="user"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="417">return value pointer for the uri user info, or %NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="host"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="418">return value pointer for the uri host, or %NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="port"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="419">return value pointer for the uri port, or %NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="path"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="420">return value pointer for the uri path, or %NULL</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_file_query_exists_async"
              c:identifier="tepl_utils_file_query_exists_async"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="661">The asynchronous version of g_file_query_exists(). When the operation is
finished, @callback will be called. You can then call
tepl_utils_file_query_exists_finish() to get the result of the operation.</doc>
      <source-position filename="tepl/tepl-utils.h" line="87"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="663">a #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="664">a #GCancellable.</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/tepl-utils.c"
               line="665">the callback to call when the operation is finished.</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/tepl-utils.c"
               line="666">the data to pass to the callback function.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_file_query_exists_finish"
              c:identifier="tepl_utils_file_query_exists_finish"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="689">Finishes the operation started with tepl_utils_file_query_exists_async().
There is no output #GError parameter, so you should check if the operation
has been cancelled (in which case %FALSE will be returned).</doc>
      <source-position filename="tepl/tepl-utils.h" line="93"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="698">%TRUE if the file exists and the operation hasn't been cancelled,
%FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="691">a #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="692">a #GAsyncResult.</doc>
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_file_extension"
              c:identifier="tepl_utils_get_file_extension"
              version="4.4">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="273">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/tepl-utils.h" line="57"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="284">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/tepl-utils.c"
               line="275">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/tepl-utils.c"
           line="296">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/tepl-utils.h" line="60"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="304">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/tepl-utils.c"
               line="298">a filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_titled_component"
              c:identifier="tepl_utils_get_titled_component"
              version="6.2">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1157">To add a title to a GUI component.

Useful for example in a #GtkDialog window, when there are several components,
or logical groups.

The title will be in bold, left-aligned, and the @component will have a left
margin.</doc>
      <source-position filename="tepl/tepl-utils.h" line="145"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="1170">a new widget containing the @title above the
@component.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="title" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1159">the title.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="component" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1160">a #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_toplevel_window"
              c:identifier="tepl_utils_get_toplevel_window"
              version="6.13">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1272">Like gtk_widget_get_toplevel(), but checks that the toplevel widget is a
#GtkWindow.</doc>
      <source-position filename="tepl/tepl-utils.h" line="156"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="1279">the toplevel #GtkWindow, or %NULL.</doc>
        <type name="Gtk.Window" c:type="GtkWindow*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1274">a #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_list_box_clear"
              c:identifier="tepl_utils_list_box_clear"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="850">Removes all rows of @list_box, to obtain an empty #GtkListBox.</doc>
      <source-position filename="tepl/tepl-utils.h" line="111"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list_box" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="852">a #GtkListBox.</doc>
          <type name="Gtk.ListBox" c:type="GtkListBox*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_list_box_get_filtered_children"
              c:identifier="tepl_utils_list_box_get_filtered_children"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1001">Gets an array of all the #GtkListBoxRow childen of @list_box for which
@filter_func returns %TRUE. The elements in the array are sorted by
increasing index order (as returned by gtk_list_box_row_get_index()).</doc>
      <source-position filename="tepl/tepl-utils.h" line="131"/>
      <return-value transfer-ownership="container" nullable="1">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="1014">
  a %NULL-terminated array of #GtkListBoxRow objects, or %NULL. Free with
  g_free() when no longer needed.</doc>
        <array c:type="GtkListBoxRow**">
          <type name="Gtk.ListBoxRow"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="list_box" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1003">a #GtkListBox.</doc>
          <type name="Gtk.ListBox" c:type="GtkListBox*"/>
        </parameter>
        <parameter name="filter_func"
                   transfer-ownership="none"
                   scope="call"
                   closure="2">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1004">non-%NULL callback function.</doc>
          <type name="Gtk.ListBoxFilterFunc" c:type="GtkListBoxFilterFunc"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1005">user data passed to @filter_func.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="n_filtered_children"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1006">location to store the number of
  #GtkListBoxRow's present in the returned array, without counting the
  terminating %NULL.</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_list_box_get_row_at_index_with_filter"
              c:identifier="tepl_utils_list_box_get_row_at_index_with_filter"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="943">This function has the same semantics as gtk_list_box_get_row_at_index(), but
it takes into account only the rows for which @filter_func returns %TRUE.

As an example, if @index is 0, it returns the first #GtkListBoxRow for which
@filter_func returns %TRUE.</doc>
      <source-position filename="tepl/tepl-utils.h" line="125"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="957">the child #GtkListBoxRow or %NULL.</doc>
        <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
      </return-value>
      <parameters>
        <parameter name="list_box" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="945">a #GtkListBox.</doc>
          <type name="Gtk.ListBox" c:type="GtkListBox*"/>
        </parameter>
        <parameter name="index" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="946">the index of the row, starting at 0. The index is among the filtered
  rows only.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="filter_func"
                   transfer-ownership="none"
                   scope="call"
                   closure="3">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="948">non-%NULL callback function.</doc>
          <type name="Gtk.ListBoxFilterFunc" c:type="GtkListBoxFilterFunc"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="949">user data passed to @filter_func.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_list_box_scroll_to_row"
              c:identifier="tepl_utils_list_box_scroll_to_row"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="894">Scrolls to a specific #GtkListBoxRow.

Before using this function, tepl_utils_list_box_setup_scrolling() must have
been called.</doc>
      <source-position filename="tepl/tepl-utils.h" line="118"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list_box" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="896">a #GtkListBox.</doc>
          <type name="Gtk.ListBox" c:type="GtkListBox*"/>
        </parameter>
        <parameter name="row" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="897">a #GtkListBoxRow.</doc>
          <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_list_box_scroll_to_selected_row"
              c:identifier="tepl_utils_list_box_scroll_to_selected_row"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="916">Calls tepl_utils_list_box_scroll_to_row() on the row returned by
gtk_list_box_get_selected_row(). This function assumes that there is either
zero or one selected row.

Before using this function, tepl_utils_list_box_setup_scrolling() must have
been called.</doc>
      <source-position filename="tepl/tepl-utils.h" line="122"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list_box" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="918">a #GtkListBox.</doc>
          <type name="Gtk.ListBox" c:type="GtkListBox*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_list_box_setup_scrolling"
              c:identifier="tepl_utils_list_box_setup_scrolling"
              version="6.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="868">Setup vertical scrolling between @list_box and @scrolled_window, to be able
to use tepl_utils_list_box_scroll_to_row() afterwards.

This function is intended to be called only once per #GtkListBox, when
initializing the @list_box and @scrolled_window widgets.</doc>
      <source-position filename="tepl/tepl-utils.h" line="114"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list_box" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="870">a #GtkListBox.</doc>
          <type name="Gtk.ListBox" c:type="GtkListBox*"/>
        </parameter>
        <parameter name="scrolled_window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="871">a #GtkScrolledWindow.</doc>
          <type name="Gtk.ScrolledWindow" c:type="GtkScrolledWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_markup_escape_text"
              c:identifier="tepl_utils_markup_escape_text"
              version="5.0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="164">The same as g_markup_escape_text(), but with an implementation that fully
supports round-trip integrity. I.e. when #GMarkupParser or any other XML
parser will decode/unescape the string, the exact same string as @src will be
brought back. As long as @src is a valid UTF-8 string.

The other difference with g_markup_escape_text() is that the @length
parameter is not present for tepl_utils_markup_escape_text().

# g_markup_escape_text() doesn't fully support round-trip integrity

In fact, g_markup_escape_text() doesn't escape the tabstop, newline and
carriage return characters. And the #GMarkupParser correctly processes
whitespace and line endings according to the [XML rules for normalization of
line endings and attribute values](https://www.w3.org/TR/xml/#AVNormalize).

For example `"\t"` (a tab) after a round-trip through g_markup_escape_text()
and #GMarkupParser becomes a simple space.</doc>
      <source-position filename="tepl/tepl-utils.h" line="49"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="186">a newly allocated string with the
escaped text, or %NULL if @src is not a valid UTF-8 string. Free with
g_free() when no longer needed.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="166">a nul-terminated UTF-8 string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_override_font_description"
              c:identifier="tepl_utils_override_font_description"
              version="6.2">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1060">A replacement for gtk_widget_override_font(). Because
gtk_widget_override_font() is deprecated but was useful.

See also tepl_pango_font_description_to_css().</doc>
      <source-position filename="tepl/tepl-utils.h" line="137"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1062">a #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="font_desc"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1063">the #PangoFontDescription to use, or %NULL to undo
  the effect of previous calls to this function on @widget.</doc>
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_override_font_string"
              c:identifier="tepl_utils_override_font_string"
              version="6.2">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1122">A convenience function that calls tepl_utils_override_font_description().

See pango_font_description_from_string() for a description of the format of
the string representation for @font_str.</doc>
      <source-position filename="tepl/tepl-utils.h" line="141"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1124">a #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="font_str"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1125">a string representation of a #PangoFontDescription, or
  %NULL to undo the effect of previous calls to this function on @widget.</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/tepl-utils.c"
           line="387">Replaces the home directory with a tilde, if the home directory is present in
the @filename.</doc>
      <source-position filename="tepl/tepl-utils.h" line="68"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="394">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/tepl-utils.c"
               line="389">the filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_set_widget"
              c:identifier="tepl_utils_set_widget"
              version="6.11">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1224">Like g_set_object() but for a #GtkWidget and without the return value.

It connects and disconnects the #GtkWidget::destroy signal.</doc>
      <source-position filename="tepl/tepl-utils.h" line="152"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget_ptr" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1226">a pointer to a #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget**"/>
        </parameter>
        <parameter name="new_widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1227">the new #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_setup_statusbar"
              c:identifier="tepl_utils_setup_statusbar"
              version="6.8">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="1206">To better configure a #GtkStatusbar (to make it smaller).</doc>
      <source-position filename="tepl/tepl-utils.h" line="149"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="statusbar" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="1208">a #GtkStatusbar.</doc>
          <type name="Gtk.Statusbar" c:type="GtkStatusbar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_show_warning_dialog"
              c:identifier="tepl_utils_show_warning_dialog"
              version="5.0"
              introspectable="0">
      <doc xml:space="preserve"
           filename="tepl/tepl-utils.c"
           line="786">Shows a #GtkDialog with the provided warning message.</doc>
      <source-position filename="tepl/tepl-utils.h" line="106"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="788">the #GtkWindow issuing the warning.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="789">format string, as with printf().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="790">parameters to insert into the format string.</doc>
          <varargs/>
        </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/tepl-utils.c"
           line="103">Like tepl_utils_str_middle_truncate() but the “…” character is at the end.</doc>
      <source-position filename="tepl/tepl-utils.h" line="40"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="111">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/tepl-utils.c"
               line="105">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/tepl-utils.c"
               line="106">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/tepl-utils.c"
           line="83">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/tepl-utils.h" line="36"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="93">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/tepl-utils.c"
               line="85">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/tepl-utils.c"
               line="86">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/tepl-utils.c"
           line="121">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/tepl-utils.h" line="44"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="tepl/tepl-utils.c"
             line="135">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/tepl-utils.c"
               line="123">a string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="search" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="124">the search string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="replacement" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-utils.c"
               line="125">the replacement string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="view">
      <doc xml:space="preserve"
           filename="tepl/tepl-view.c"
           line="13">#TeplView is a subclass of #GtkSourceView, to add more features useful for a
text editor.</doc>
    </docsection>
    <docsection name="window-state">
      <doc xml:space="preserve"
           filename="tepl/tepl-window-state.c"
           line="7">A utility for #GtkWindow. It permits to handle and remember some of its
state:
- Its size.
- Whether it is maximized.

It is especially useful for the main window of an application, where it is
generally desirable to restore the state.

It is assumed that #GSettings is used. When creating the first window, the
initial state is taken from the provided #GSettings keys. When a window is
closed the #GSettings are saved. When opening another window of the same
type, its initial state is copied from the last focused window of that type.</doc>
    </docsection>
    <function name="window_state_init"
              c:identifier="tepl_window_state_init"
              version="6.12">
      <doc xml:space="preserve"
           filename="tepl/tepl-window-state.c"
           line="231">When creating a new #GtkWindow, you can call this function to initialize some
of its state. Then things will be taken care of to remember the state.

The provided #GSettings object must have at least these keys:
- `"maximized"` of type boolean.
- `"width"` of type integer.
- `"height"` of type integer.

The @window_type (for example a subclass of #GtkApplicationWindow for the
main window) permits to use this utility for different types of windows. Each
window type will need its own set of #GSettings keys (in a different
sub-schema because the key names must be the same).

A good place to call this function is in the GObject `init()` function.</doc>
      <source-position filename="tepl/tepl-window-state.h" line="17"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-window-state.c"
               line="233">a #GtkWindow.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-window-state.c"
               line="234">a #GSettings object.</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </parameter>
        <parameter name="window_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="tepl/tepl-window-state.c"
               line="235">the type of #GtkWindow.</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
