<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <c:include name="dazzle.h"/>
  <namespace name="Dazzle"
             version="1.0"
             shared-library="libdazzle-1.0.so.0"
             c:identifier-prefixes="Dzl"
             c:symbol-prefixes="dzl">
    <class name="Animation"
           c:symbol-prefix="animation"
           c:type="DzlAnimation"
           parent="GObject.InitiallyUnowned"
           glib:type-name="DzlAnimation"
           glib:get-type="dzl_animation_get_type"
           glib:type-struct="AnimationClass">
      <function name="calculate_duration"
                c:identifier="dzl_animation_calculate_duration">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Gdk.Monitor" c:type="GdkMonitor*"/>
          </parameter>
          <parameter name="from_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="to_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_property" c:identifier="dzl_animation_add_property">
        <doc xml:space="preserve">Adds a new property to the set of properties to be animated during the
lifetime of the animation.

Side effects: None.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="animation" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlAnimation.</doc>
            <type name="Animation" c:type="DzlAnimation*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve">A #ParamSpec of @target or a #GtkWidget&lt;!-- --&gt;'s parent.</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The new value for the property at the end of the animation.</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="dzl_animation_start">
        <doc xml:space="preserve">Start the animation. When the animation stops, the internal reference will
be dropped and the animation may be finalized.

Side effects: None.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="animation" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlAnimation.</doc>
            <type name="Animation" c:type="DzlAnimation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="dzl_animation_stop">
        <doc xml:space="preserve">Stops a running animation. The internal reference to the animation is
dropped and therefore may cause the object to finalize.

As a convenience, this function accepts %NULL for @animation but
does nothing if that should occur.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="animation"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">A #DzlAnimation.</doc>
            <type name="Animation" c:type="DzlAnimation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="duration"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The "duration" property is the total number of milliseconds that the
animation should run before being completed.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="frame-clock"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gdk.FrameClock"/>
      </property>
      <property name="mode"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The "mode" property is the Alpha function that should be used to
determine the offset within the animation based on the current
offset in the animations duration.</doc>
        <type name="AnimationMode"/>
      </property>
      <property name="target"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The "target" property is the #GObject that should have its properties
animated.</doc>
        <type name="GObject.Object"/>
      </property>
      <glib:signal name="tick" when="first">
        <doc xml:space="preserve">The "tick" signal is emitted on each frame in the animation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AnimationClass"
            c:type="DzlAnimationClass"
            glib:is-gtype-struct-for="Animation">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
    </record>
    <enumeration name="AnimationMode"
                 glib:type-name="DzlAnimationMode"
                 glib:get-type="dzl_animation_mode_get_type"
                 c:type="DzlAnimationMode">
      <member name="linear"
              value="0"
              c:identifier="DZL_ANIMATION_LINEAR"
              glib:nick="linear">
      </member>
      <member name="ease_in_quad"
              value="1"
              c:identifier="DZL_ANIMATION_EASE_IN_QUAD"
              glib:nick="ease-in-quad">
      </member>
      <member name="ease_in_out_quad"
              value="3"
              c:identifier="DZL_ANIMATION_EASE_IN_OUT_QUAD"
              glib:nick="ease-in-out-quad">
      </member>
      <member name="ease_out_quad"
              value="2"
              c:identifier="DZL_ANIMATION_EASE_OUT_QUAD"
              glib:nick="ease-out-quad">
      </member>
      <member name="ease_in_cubic"
              value="4"
              c:identifier="DZL_ANIMATION_EASE_IN_CUBIC"
              glib:nick="ease-in-cubic">
      </member>
      <member name="ease_out_cubic"
              value="5"
              c:identifier="DZL_ANIMATION_EASE_OUT_CUBIC"
              glib:nick="ease-out-cubic">
      </member>
      <member name="ease_in_out_cubic"
              value="6"
              c:identifier="DZL_ANIMATION_EASE_IN_OUT_CUBIC"
              glib:nick="ease-in-out-cubic">
      </member>
    </enumeration>
    <class name="Application"
           c:symbol-prefix="application"
           c:type="DzlApplication"
           parent="Gtk.Application"
           glib:type-name="DzlApplication"
           glib:get-type="dzl_application_get_type"
           glib:type-struct="ApplicationClass">
      <implements name="Gio.ActionGroup"/>
      <implements name="Gio.ActionMap"/>
      <virtual-method name="add_resources" invoker="add_resources">
        <doc xml:space="preserve">This adds @resource_path to the list of "automatic resources".

If @resource_path starts with "resource://", then the corresponding
#GResources path will be searched for resources. Otherwise, @resource_path
should be a path to a location on disk.

The #DzlApplication will locate resources such as CSS themes, icons, and
keyboard shortcuts using @resource_path.</doc>
        <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">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve">the location of the resources.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_resources" invoker="remove_resources">
        <doc xml:space="preserve">This attempts to undo as many side-effects as possible from a call to
dzl_application_add_resources().</doc>
        <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">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve">the location of the resources.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_resources"
              c:identifier="dzl_application_add_resources">
        <doc xml:space="preserve">This adds @resource_path to the list of "automatic resources".

If @resource_path starts with "resource://", then the corresponding
#GResources path will be searched for resources. Otherwise, @resource_path
should be a path to a location on disk.

The #DzlApplication will locate resources such as CSS themes, icons, and
keyboard shortcuts using @resource_path.</doc>
        <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">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve">the location of the resources.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_menu_by_id"
              c:identifier="dzl_application_get_menu_by_id">
        <doc xml:space="preserve">Similar to gtk_application_get_menu_by_id() but takes into account
menu merging which could have occurred upon loading plugins.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GMenu</doc>
          <type name="Gio.Menu" c:type="GMenu*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
          <parameter name="menu_id" transfer-ownership="none">
            <doc xml:space="preserve">the id of the menu to locate</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_menu_manager"
              c:identifier="dzl_application_get_menu_manager">
        <doc xml:space="preserve">Gets the menu manager for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlMenuManager</doc>
          <type name="MenuManager" c:type="DzlMenuManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shortcut_manager"
              c:identifier="dzl_application_get_shortcut_manager">
        <doc xml:space="preserve">Gets the #DzlShortcutManager for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlShortcutManager</doc>
          <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_theme_manager"
              c:identifier="dzl_application_get_theme_manager">
        <doc xml:space="preserve">Get the theme manager for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlThemeManager</doc>
          <type name="ThemeManager" c:type="DzlThemeManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_resources"
              c:identifier="dzl_application_remove_resources">
        <doc xml:space="preserve">This attempts to undo as many side-effects as possible from a call to
dzl_application_add_resources().</doc>
        <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">a #DzlApplication</doc>
            <type name="Application" c:type="DzlApplication*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve">the location of the resources.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="menu-manager" transfer-ownership="none">
        <type name="MenuManager"/>
      </property>
      <property name="shortcut-manager" transfer-ownership="none">
        <type name="ShortcutManager"/>
      </property>
      <property name="theme-manager" transfer-ownership="none">
        <type name="ThemeManager"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Application" c:type="GtkApplication"/>
      </field>
    </class>
    <record name="ApplicationClass"
            c:type="DzlApplicationClass"
            glib:is-gtype-struct-for="Application">
      <field name="parent_class">
        <type name="Gtk.ApplicationClass" c:type="GtkApplicationClass"/>
      </field>
      <field name="add_resources">
        <callback name="add_resources">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlApplication</doc>
              <type name="Application" c:type="DzlApplication*"/>
            </parameter>
            <parameter name="resource_path" transfer-ownership="none">
              <doc xml:space="preserve">the location of the resources.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_resources">
        <callback name="remove_resources">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlApplication</doc>
              <type name="Application" c:type="DzlApplication*"/>
            </parameter>
            <parameter name="resource_path" transfer-ownership="none">
              <doc xml:space="preserve">the location of the resources.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="ApplicationWindow"
           c:symbol-prefix="application_window"
           c:type="DzlApplicationWindow"
           parent="Gtk.ApplicationWindow"
           glib:type-name="DzlApplicationWindow"
           glib:get-type="dzl_application_window_get_type"
           glib:type-struct="ApplicationWindowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gio.ActionGroup"/>
      <implements name="Gio.ActionMap"/>
      <implements name="Gtk.Buildable"/>
      <virtual-method name="get_fullscreen"
                      invoker="get_fullscreen"
                      version="3.26">
        <doc xml:space="preserve">Gets if the window is in the fullscreen state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @self is fullscreen, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplicationWindow</doc>
            <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_fullscreen"
                      invoker="set_fullscreen"
                      version="3.26">
        <doc xml:space="preserve">Sets the #DzlApplicationWindow into either the fullscreen or unfullscreen
state based on @fullscreen.

The titlebar for the window is contained within a #GtkRevealer which is
repurposed as a floating bar when the application is in fullscreen mode.

See dzl_application_window_get_fullscreen() to get the current fullscreen
state.</doc>
        <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">a #DzlApplicationWindow</doc>
            <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
          </instance-parameter>
          <parameter name="fullscreen" transfer-ownership="none">
            <doc xml:space="preserve">if the window should be in the fullscreen state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_fullscreen"
              c:identifier="dzl_application_window_get_fullscreen"
              version="3.26">
        <doc xml:space="preserve">Gets if the window is in the fullscreen state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @self is fullscreen, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplicationWindow</doc>
            <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_titlebar"
              c:identifier="dzl_application_window_get_titlebar"
              version="3.26">
        <doc xml:space="preserve">Gets the titlebar for the window, if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget or %NULL</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlApplicationWindow</doc>
            <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_fullscreen"
              c:identifier="dzl_application_window_set_fullscreen"
              version="3.26">
        <doc xml:space="preserve">Sets the #DzlApplicationWindow into either the fullscreen or unfullscreen
state based on @fullscreen.

The titlebar for the window is contained within a #GtkRevealer which is
repurposed as a floating bar when the application is in fullscreen mode.

See dzl_application_window_get_fullscreen() to get the current fullscreen
state.</doc>
        <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">a #DzlApplicationWindow</doc>
            <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
          </instance-parameter>
          <parameter name="fullscreen" transfer-ownership="none">
            <doc xml:space="preserve">if the window should be in the fullscreen state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_titlebar"
              c:identifier="dzl_application_window_set_titlebar"
              version="3.26">
        <doc xml:space="preserve">Sets the titlebar for the window.

Generally, you want to do this from your GTK ui template by setting
the &amp;lt;child type="titlebar"&amp;gt;</doc>
        <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">a #DzlApplicationWindow</doc>
            <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
          </instance-parameter>
          <parameter name="titlebar" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <property name="fullscreen" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The "fullscreen" property denotes if the window is in the fullscreen
state. The titlebar of the #DzlApplicationWindow contains a revealer
which will be repurposed into a floating bar while the window is in
the fullscreen mode.

Set this property to %FALSE to unfullscreen.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.ApplicationWindow" c:type="GtkApplicationWindow"/>
      </field>
    </class>
    <record name="ApplicationWindowClass"
            c:type="DzlApplicationWindowClass"
            glib:is-gtype-struct-for="ApplicationWindow">
      <field name="parent_class">
        <type name="Gtk.ApplicationWindowClass"
              c:type="GtkApplicationWindowClass"/>
      </field>
      <field name="get_fullscreen">
        <callback name="get_fullscreen">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if @self is fullscreen, otherwise %FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlApplicationWindow</doc>
              <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_fullscreen">
        <callback name="set_fullscreen">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlApplicationWindow</doc>
              <type name="ApplicationWindow" c:type="DzlApplicationWindow*"/>
            </parameter>
            <parameter name="fullscreen" transfer-ownership="none">
              <doc xml:space="preserve">if the window should be in the fullscreen state</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="Bin"
           c:symbol-prefix="bin"
           c:type="DzlBin"
           parent="Gtk.Bin"
           glib:type-name="DzlBin"
           glib:get-type="dzl_bin_get_type"
           glib:type-struct="BinClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_bin_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
    </class>
    <record name="BinClass"
            c:type="DzlBinClass"
            glib:is-gtype-struct-for="Bin">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <class name="BindingGroup"
           c:symbol-prefix="binding_group"
           c:type="DzlBindingGroup"
           parent="GObject.Object"
           glib:type-name="DzlBindingGroup"
           glib:get-type="dzl_binding_group_get_type"
           glib:type-struct="BindingGroupClass">
      <doc xml:space="preserve">#DzlBindingGroup manages to simplify the process of binding
many properties from a #GObject as a group. As such there is no API
to unbind a property from the group.

In particular, this allows you to change the source instance for the
bindings. This automatically causes the unbinding of the properties
from the old instance and binding to the new instance.

This should not be confused with #GtkBindingGroup.</doc>
      <constructor name="new" c:identifier="dzl_binding_group_new">
        <doc xml:space="preserve">Creates a new #DzlBindingGroup.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #DzlBindingGroup</doc>
          <type name="BindingGroup" c:type="DzlBindingGroup*"/>
        </return-value>
      </constructor>
      <method name="bind" c:identifier="dzl_binding_group_bind">
        <doc xml:space="preserve">Creates a binding between @source_property on the source object
and @target_property on @target. Whenever the @source_property
is changed the @target_property is updated using the same value.
The binding flags #G_BINDING_SYNC_CREATE is automatically specified.

See: g_object_bind_property().</doc>
        <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">the #DzlBindingGroup</doc>
            <type name="BindingGroup" c:type="DzlBindingGroup*"/>
          </instance-parameter>
          <parameter name="source_property" transfer-ownership="none">
            <doc xml:space="preserve">the property on the source to bind</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">the target #GObject</doc>
            <type name="GObject.Object" c:type="gpointer"/>
          </parameter>
          <parameter name="target_property" transfer-ownership="none">
            <doc xml:space="preserve">the property on @target to bind</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags used to create the #GBinding</doc>
            <type name="GObject.BindingFlags" c:type="GBindingFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="bind_full"
              c:identifier="dzl_binding_group_bind_full"
              shadowed-by="bind_with_closures">
        <doc xml:space="preserve">Creates a binding between @source_property on the source object and
@target_property on @target, allowing you to set the transformation
functions to be used by the binding. The binding flags
#G_BINDING_SYNC_CREATE is automatically specified.

See: g_object_bind_property_full().</doc>
        <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">the #DzlBindingGroup</doc>
            <type name="BindingGroup" c:type="DzlBindingGroup*"/>
          </instance-parameter>
          <parameter name="source_property" transfer-ownership="none">
            <doc xml:space="preserve">the property on the source to bind</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">the target #GObject</doc>
            <type name="GObject.Object" c:type="gpointer"/>
          </parameter>
          <parameter name="target_property" transfer-ownership="none">
            <doc xml:space="preserve">the property on @target to bind</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags used to create the #GBinding</doc>
            <type name="GObject.BindingFlags" c:type="GBindingFlags"/>
          </parameter>
          <parameter name="transform_to"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified">
            <doc xml:space="preserve">the transformation function
    from the source object to the @target, or %NULL to use the default</doc>
            <type name="GObject.BindingTransformFunc"
                  c:type="GBindingTransformFunc"/>
          </parameter>
          <parameter name="transform_from"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="6"
                     destroy="7">
            <doc xml:space="preserve">the transformation function
    from the @target to the source object, or %NULL to use the default</doc>
            <type name="GObject.BindingTransformFunc"
                  c:type="GBindingTransformFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">custom data to be passed to the transformation
            functions, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">function to be called when disposing the binding,
    to free the resources used by the transformation functions</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="bind_with_closures"
              c:identifier="dzl_binding_group_bind_with_closures"
              shadows="bind_full">
        <doc xml:space="preserve">Creates a binding between @source_property on the source object and
@target_property on @target, allowing you to set the transformation
functions to be used by the binding. The binding flags
#G_BINDING_SYNC_CREATE is automatically specified.

This function is the language bindings friendly version of
dzl_binding_group_bind_property_full(), using #GClosures
instead of function pointers.

See: g_object_bind_property_with_closures().</doc>
        <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">the #DzlBindingGroup</doc>
            <type name="BindingGroup" c:type="DzlBindingGroup*"/>
          </instance-parameter>
          <parameter name="source_property" transfer-ownership="none">
            <doc xml:space="preserve">the property on the source to bind</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">the target #GObject</doc>
            <type name="GObject.Object" c:type="gpointer"/>
          </parameter>
          <parameter name="target_property" transfer-ownership="none">
            <doc xml:space="preserve">the property on @target to bind</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags used to create the #GBinding</doc>
            <type name="GObject.BindingFlags" c:type="GBindingFlags"/>
          </parameter>
          <parameter name="transform_to"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GClosure wrapping the
    transformation function from the source object to the @target,
    or %NULL to use the default</doc>
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="transform_from"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GClosure wrapping the
    transformation function from the @target to the source object,
    or %NULL to use the default</doc>
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source" c:identifier="dzl_binding_group_get_source">
        <doc xml:space="preserve">Gets the source object used for binding properties.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the source object.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #DzlBindingGroup</doc>
            <type name="BindingGroup" c:type="DzlBindingGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_source" c:identifier="dzl_binding_group_set_source">
        <doc xml:space="preserve">Sets @source as the source object used for creating property
bindings. If there is already a source object all bindings from it
will be removed.

Note: All properties that have been bound must exist on @source.</doc>
        <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">the #DzlBindingGroup</doc>
            <type name="BindingGroup" c:type="DzlBindingGroup*"/>
          </instance-parameter>
          <parameter name="source"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the source #GObject</doc>
            <type name="GObject.Object" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="source" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The source object used for binding properties.</doc>
        <type name="GObject.Object"/>
      </property>
    </class>
    <record name="BindingGroupClass"
            c:type="DzlBindingGroupClass"
            glib:is-gtype-struct-for="BindingGroup">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BoldingLabel"
           c:symbol-prefix="bolding_label"
           c:type="DzlBoldingLabel"
           parent="Gtk.Label"
           glib:type-name="DzlBoldingLabel"
           glib:get-type="dzl_bolding_label_get_type"
           glib:type-struct="BoldingLabelClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <method name="set_bold" c:identifier="dzl_bolding_label_set_bold">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BoldingLabel" c:type="DzlBoldingLabel*"/>
          </instance-parameter>
          <parameter name="bold" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_weight" c:identifier="dzl_bolding_label_set_weight">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BoldingLabel" c:type="DzlBoldingLabel*"/>
          </instance-parameter>
          <parameter name="weight" transfer-ownership="none">
            <type name="Pango.Weight" c:type="PangoWeight"/>
          </parameter>
        </parameters>
      </method>
      <property name="bold"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="BoldingLabelClass"
            c:type="DzlBoldingLabelClass"
            glib:is-gtype-struct-for="BoldingLabel">
      <field name="parent_class">
        <type name="Gtk.LabelClass" c:type="GtkLabelClass"/>
      </field>
    </record>
    <class name="Box"
           c:symbol-prefix="box"
           c:type="DzlBox"
           parent="Gtk.Box"
           glib:type-name="DzlBox"
           glib:get-type="dzl_box_get_type"
           glib:type-struct="BoxClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_box_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_max_width_request"
              c:identifier="dzl_box_get_max_width_request">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Box" c:type="DzlBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_child" c:identifier="dzl_box_get_nth_child">
        <doc xml:space="preserve">Gets the nth child of @self.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkWidget or %NULL</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlBox</doc>
            <type name="Box" c:type="DzlBox*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <doc xml:space="preserve">the index of the child starting from 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_width_request"
              c:identifier="dzl_box_set_max_width_request">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Box" c:type="DzlBox*"/>
          </instance-parameter>
          <parameter name="max_width_request" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-width-request"
                writable="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </field>
    </class>
    <record name="BoxClass"
            c:type="DzlBoxClass"
            glib:is-gtype-struct-for="Box">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
    </record>
    <class name="BoxTheatric"
           c:symbol-prefix="box_theatric"
           c:type="DzlBoxTheatric"
           parent="GObject.Object"
           glib:type-name="DzlBoxTheatric"
           glib:get-type="dzl_box_theatric_get_type"
           glib:type-struct="BoxTheatricClass">
      <property name="alpha" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="background" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="height" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="icon" writable="1" transfer-ownership="none">
        <type name="Gio.Icon"/>
      </property>
      <property name="surface"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="target"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <property name="width" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="x" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="y" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="BoxTheatricClass"
            c:type="DzlBoxTheatricClass"
            glib:is-gtype-struct-for="BoxTheatric">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <constant name="COUNTER_REQUIRES_ATOMIC"
              value="1"
              c:type="DZL_COUNTER_REQUIRES_ATOMIC">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="CenteringBin"
           c:symbol-prefix="centering_bin"
           c:type="DzlCenteringBin"
           parent="Gtk.Bin"
           glib:type-name="DzlCenteringBin"
           glib:get-type="dzl_centering_bin_get_type"
           glib:type-struct="CenteringBinClass">
      <doc xml:space="preserve">First off, you probably want to use GtkBox with a center widget instead
of this widget. However, the case where this widget is useful is when
you cannot control your layout within the width of the toplevel, but
still want your child centered within the toplevel.

This is done by translating coordinates of the widget with respect to
the toplevel and anchoring the child at TRUE_CENTER-(alloc.width/2).</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_centering_bin_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <property name="max-width-request"
                writable="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
    </class>
    <record name="CenteringBinClass"
            c:type="DzlCenteringBinClass"
            glib:is-gtype-struct-for="CenteringBin">
      <field name="parent">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <class name="ChildPropertyAction"
           c:symbol-prefix="child_property_action"
           c:type="DzlChildPropertyAction"
           parent="GObject.Object"
           glib:type-name="DzlChildPropertyAction"
           glib:get-type="dzl_child_property_action_get_type"
           glib:type-struct="ChildPropertyActionClass">
      <implements name="Gio.Action"/>
      <function name="new" c:identifier="dzl_child_property_action_new">
        <doc xml:space="preserve">This creates a new #GAction that will change when the underlying child
property of @container changes for @child.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #DzlChildPropertyAction.</doc>
          <type name="Gio.Action" c:type="GAction*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the action</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">the container of the widget</doc>
            <type name="Gtk.Container" c:type="GtkContainer*"/>
          </parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">the widget for the child property</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="child_property_name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the child property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <property name="child" transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <property name="child-property-name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="container" transfer-ownership="none">
        <type name="Gtk.Container"/>
      </property>
    </class>
    <record name="ChildPropertyActionClass"
            c:type="DzlChildPropertyActionClass"
            glib:is-gtype-struct-for="ChildPropertyAction">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ColumnLayout"
           c:symbol-prefix="column_layout"
           c:type="DzlColumnLayout"
           parent="Gtk.Container"
           glib:type-name="DzlColumnLayout"
           glib:get-type="dzl_column_layout_get_type"
           glib:type-struct="ColumnLayoutClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_column_layout_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_column_spacing"
              c:identifier="dzl_column_layout_get_column_spacing">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_column_width"
              c:identifier="dzl_column_layout_get_column_width">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_columns"
              c:identifier="dzl_column_layout_get_max_columns">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_spacing"
              c:identifier="dzl_column_layout_get_row_spacing">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_column_spacing"
              c:identifier="dzl_column_layout_set_column_spacing">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
          <parameter name="column_spacing" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_column_width"
              c:identifier="dzl_column_layout_set_column_width">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
          <parameter name="column_width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_columns"
              c:identifier="dzl_column_layout_set_max_columns">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
          <parameter name="max_columns" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_row_spacing"
              c:identifier="dzl_column_layout_set_row_spacing">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ColumnLayout" c:type="DzlColumnLayout*"/>
          </instance-parameter>
          <parameter name="row_spacing" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="column-spacing" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="column-width" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="max-columns" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="row-spacing" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
    </class>
    <record name="ColumnLayoutClass"
            c:type="DzlColumnLayoutClass"
            glib:is-gtype-struct-for="ColumnLayout">
      <field name="parent">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
    </record>
    <record name="Counter" c:type="DzlCounter">
      <field name="values" writable="1">
        <type name="CounterValue" c:type="DzlCounterValue*"/>
      </field>
      <field name="category" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="description" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <method name="get" c:identifier="dzl_counter_get">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="counter" transfer-ownership="none">
            <type name="Counter" c:type="DzlCounter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="dzl_counter_reset">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="counter" transfer-ownership="none">
            <type name="Counter" c:type="DzlCounter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="CounterArena"
            c:type="DzlCounterArena"
            glib:type-name="DzlCounterArena"
            glib:get-type="dzl_counter_arena_get_type"
            c:symbol-prefix="counter_arena">
      <constructor name="new_for_pid"
                   c:identifier="dzl_counter_arena_new_for_pid">
        <return-value transfer-ownership="full">
          <type name="CounterArena" c:type="DzlCounterArena*"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <type name="GLib.Pid" c:type="GPid"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="foreach" c:identifier="dzl_counter_arena_foreach">
        <doc xml:space="preserve">Calls @func for every counter found in @area.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="arena" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlCounterArena</doc>
            <type name="CounterArena" c:type="DzlCounterArena*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">A callback to execute</doc>
            <type name="CounterForeachFunc" c:type="DzlCounterForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dzl_counter_arena_ref">
        <return-value transfer-ownership="full">
          <type name="CounterArena" c:type="DzlCounterArena*"/>
        </return-value>
        <parameters>
          <instance-parameter name="arena" transfer-ownership="none">
            <type name="CounterArena" c:type="DzlCounterArena*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="register" c:identifier="dzl_counter_arena_register">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="arena" transfer-ownership="none">
            <type name="CounterArena" c:type="DzlCounterArena*"/>
          </instance-parameter>
          <parameter name="counter" transfer-ownership="none">
            <type name="Counter" c:type="DzlCounter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dzl_counter_arena_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="arena" transfer-ownership="none">
            <type name="CounterArena" c:type="DzlCounterArena*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_default"
                c:identifier="dzl_counter_arena_get_default">
        <return-value transfer-ownership="full">
          <type name="CounterArena" c:type="DzlCounterArena*"/>
        </return-value>
      </function>
    </record>
    <callback name="CounterForeachFunc" c:type="DzlCounterForeachFunc">
      <doc xml:space="preserve">Function prototype for callbacks provided to dzl_counter_arena_foreach().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="counter" transfer-ownership="none">
          <doc xml:space="preserve">the counter.</doc>
          <type name="Counter" c:type="DzlCounter*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve">data supplied to dzl_counter_arena_foreach().</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="CounterValue" c:type="DzlCounterValue">
      <field name="value" writable="1">
        <type name="gint64" c:type="volatile gint64"/>
      </field>
      <field name="padding" writable="1">
        <array zero-terminated="0" c:type="gint64" fixed-size="7">
          <type name="gint64" c:type="gint64"/>
        </array>
      </field>
    </record>
    <class name="CountersWindow"
           c:symbol-prefix="counters_window"
           c:type="DzlCountersWindow"
           parent="Gtk.Window"
           glib:type-name="DzlCountersWindow"
           glib:get-type="dzl_counters_window_get_type"
           glib:type-struct="CountersWindowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_counters_window_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_arena" c:identifier="dzl_counters_window_get_arena">
        <doc xml:space="preserve">Gets the currently viewed arena, if any.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlCounterArena or %NULL.</doc>
          <type name="CounterArena" c:type="DzlCounterArena*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlCountersWindow</doc>
            <type name="CountersWindow" c:type="DzlCountersWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_arena" c:identifier="dzl_counters_window_set_arena">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CountersWindow" c:type="DzlCountersWindow*"/>
          </instance-parameter>
          <parameter name="arena" transfer-ownership="none">
            <type name="CounterArena" c:type="DzlCounterArena*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.Window" c:type="GtkWindow"/>
      </field>
    </class>
    <record name="CountersWindowClass"
            c:type="DzlCountersWindowClass"
            glib:is-gtype-struct-for="CountersWindow">
      <field name="parent_class">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="CpuGraph"
           c:symbol-prefix="cpu_graph"
           c:type="DzlCpuGraph"
           parent="GraphView"
           glib:type-name="DzlCpuGraph"
           glib:get-type="dzl_cpu_graph_get_type"
           glib:type-struct="CpuGraphClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_cpu_graph_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <property name="max-samples"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="timespan"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </property>
    </class>
    <record name="CpuGraphClass"
            c:type="DzlCpuGraphClass"
            glib:is-gtype-struct-for="CpuGraph">
      <field name="parent_class">
        <type name="GraphViewClass" c:type="DzlGraphViewClass"/>
      </field>
    </record>
    <class name="CpuModel"
           c:symbol-prefix="cpu_model"
           c:type="DzlCpuModel"
           parent="GraphModel"
           glib:type-name="DzlCpuModel"
           glib:get-type="dzl_cpu_model_get_type"
           glib:type-struct="CpuModelClass">
      <constructor name="new" c:identifier="dzl_cpu_model_new">
        <return-value transfer-ownership="full">
          <type name="GraphModel" c:type="DzlGraphModel*"/>
        </return-value>
      </constructor>
    </class>
    <record name="CpuModelClass"
            c:type="DzlCpuModelClass"
            glib:is-gtype-struct-for="CpuModel">
      <field name="parent_class">
        <type name="GraphModelClass" c:type="DzlGraphModelClass"/>
      </field>
    </record>
    <class name="CssProvider"
           c:symbol-prefix="css_provider"
           c:type="DzlCssProvider"
           parent="Gtk.CssProvider"
           glib:type-name="DzlCssProvider"
           glib:get-type="dzl_css_provider_get_type"
           glib:type-struct="CssProviderClass">
      <implements name="Gtk.StyleProvider"/>
      <constructor name="new" c:identifier="dzl_css_provider_new">
        <return-value transfer-ownership="full">
          <type name="Gtk.CssProvider" c:type="GtkCssProvider*"/>
        </return-value>
        <parameters>
          <parameter name="base_path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="base-path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="CssProviderClass"
            c:type="DzlCssProviderClass"
            glib:is-gtype-struct-for="CssProvider">
      <field name="parent_class">
        <type name="Gtk.CssProviderClass" c:type="GtkCssProviderClass"/>
      </field>
    </record>
    <constant name="DOCK_BIN_STYLE_CLASS_PINNED"
              value="pinned"
              c:type="DZL_DOCK_BIN_STYLE_CLASS_PINNED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="DirectoryModel"
           c:symbol-prefix="directory_model"
           c:type="DzlDirectoryModel"
           parent="GObject.Object"
           glib:type-name="DzlDirectoryModel"
           glib:get-type="dzl_directory_model_get_type"
           glib:type-struct="DirectoryModelClass">
      <implements name="Gio.ListModel"/>
      <function name="new" c:identifier="dzl_directory_model_new">
        <doc xml:space="preserve">Creates a new #DzlDirectoryModel using @directory as the directory to monitor.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #DzlDirectoryModel</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:space="preserve">A #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_directory"
              c:identifier="dzl_directory_model_get_directory">
        <doc xml:space="preserve">Gets the directory the model is observing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDirectoryModel</doc>
            <type name="DirectoryModel" c:type="DzlDirectoryModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_directory"
              c:identifier="dzl_directory_model_set_directory">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryModel" c:type="DzlDirectoryModel*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_func"
              c:identifier="dzl_directory_model_set_visible_func">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryModel" c:type="DzlDirectoryModel*"/>
          </instance-parameter>
          <parameter name="visible_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <type name="DirectoryModelVisibleFunc"
                  c:type="DzlDirectoryModelVisibleFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free_func"
                     transfer-ownership="none"
                     scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <property name="directory" writable="1" transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
    </class>
    <record name="DirectoryModelClass"
            c:type="DzlDirectoryModelClass"
            glib:is-gtype-struct-for="DirectoryModel">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="DirectoryModelVisibleFunc"
              c:type="DzlDirectoryModelVisibleFunc">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="DirectoryModel" c:type="DzlDirectoryModel*"/>
        </parameter>
        <parameter name="directory" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="file_info" transfer-ownership="none">
          <type name="Gio.FileInfo" c:type="GFileInfo*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="DirectoryReaper"
           c:symbol-prefix="directory_reaper"
           c:type="DzlDirectoryReaper"
           parent="GObject.Object"
           glib:type-name="DzlDirectoryReaper"
           glib:get-type="dzl_directory_reaper_get_type"
           glib:type-struct="DirectoryReaperClass">
      <constructor name="new" c:identifier="dzl_directory_reaper_new">
        <return-value transfer-ownership="full">
          <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
        </return-value>
      </constructor>
      <method name="add_directory"
              c:identifier="dzl_directory_reaper_add_directory">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="min_age" transfer-ownership="none">
            <type name="GLib.TimeSpan" c:type="GTimeSpan"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_file" c:identifier="dzl_directory_reaper_add_file">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="min_age" transfer-ownership="none">
            <type name="GLib.TimeSpan" c:type="GTimeSpan"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_glob" c:identifier="dzl_directory_reaper_add_glob">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="glob" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min_age" transfer-ownership="none">
            <type name="GLib.TimeSpan" c:type="GTimeSpan"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute"
              c:identifier="dzl_directory_reaper_execute"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute_async"
              c:identifier="dzl_directory_reaper_execute_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute_finish"
              c:identifier="dzl_directory_reaper_execute_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DirectoryReaper" c:type="DzlDirectoryReaper*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="DirectoryReaperClass"
            c:type="DzlDirectoryReaperClass"
            glib:is-gtype-struct-for="DirectoryReaper">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="Dock"
               c:symbol-prefix="dock"
               c:type="DzlDock"
               glib:type-name="DzlDock"
               glib:get-type="dzl_dock_get_type"
               glib:type-struct="DockInterface">
      <prerequisite name="Gtk.Container"/>
      <property name="manager" writable="1" transfer-ownership="none">
        <type name="DockManager"/>
      </property>
    </interface>
    <class name="DockBin"
           c:symbol-prefix="dock_bin"
           c:type="DzlDockBin"
           parent="Gtk.Container"
           glib:type-name="DzlDockBin"
           glib:get-type="dzl_dock_bin_get_type"
           glib:type-struct="DockBinClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Dock"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_dock_bin_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="create_edge" introspectable="0">
        <return-value>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBin" c:type="DzlDockBin*"/>
          </instance-parameter>
          <parameter name="edge" transfer-ownership="none">
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_bottom_edge"
              c:identifier="dzl_dock_bin_get_bottom_edge">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBin" c:type="DzlDockBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_center_widget"
              c:identifier="dzl_dock_bin_get_center_widget">
        <doc xml:space="preserve">Gets the center widget for the dock.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockBin</doc>
            <type name="DockBin" c:type="DzlDockBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left_edge" c:identifier="dzl_dock_bin_get_left_edge">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBin" c:type="DzlDockBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_right_edge" c:identifier="dzl_dock_bin_get_right_edge">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBin" c:type="DzlDockBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_top_edge" c:identifier="dzl_dock_bin_get_top_edge">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBin" c:type="DzlDockBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="bottom-visible" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="left-visible" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="right-visible" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="top-visible" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
    </class>
    <record name="DockBinClass"
            c:type="DzlDockBinClass"
            glib:is-gtype-struct-for="DockBin">
      <field name="parent">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="create_edge" introspectable="0">
        <callback name="create_edge" introspectable="0">
          <return-value>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockBin" c:type="DzlDockBin*"/>
            </parameter>
            <parameter name="edge" transfer-ownership="none">
              <type name="Gtk.PositionType" c:type="GtkPositionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="DockBinEdge"
           c:symbol-prefix="dock_bin_edge"
           c:type="DzlDockBinEdge"
           parent="DockRevealer"
           glib:type-name="DzlDockBinEdge"
           glib:get-type="dzl_dock_bin_edge_get_type"
           glib:type-struct="DockBinEdgeClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <virtual-method name="move_to_bin_child">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBinEdge" c:type="DzlDockBinEdge*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_edge" c:identifier="dzl_dock_bin_edge_get_edge">
        <return-value transfer-ownership="none">
          <type name="Gtk.PositionType" c:type="GtkPositionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockBinEdge" c:type="DzlDockBinEdge*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="edge" writable="1" transfer-ownership="none">
        <type name="Gtk.PositionType"/>
      </property>
      <field name="parent_instance">
        <type name="DockRevealer" c:type="DzlDockRevealer"/>
      </field>
      <glib:signal name="move-to-bin-child" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DockBinEdgeClass"
            c:type="DzlDockBinEdgeClass"
            glib:is-gtype-struct-for="DockBinEdge">
      <field name="parent">
        <type name="DockRevealerClass" c:type="DzlDockRevealerClass"/>
      </field>
      <field name="move_to_bin_child">
        <callback name="move_to_bin_child">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockBinEdge" c:type="DzlDockBinEdge*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="DockInterface"
            c:type="DzlDockInterface"
            glib:is-gtype-struct-for="Dock">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <interface name="DockItem"
               c:symbol-prefix="dock_item"
               c:type="DzlDockItem"
               glib:type-name="DzlDockItem"
               glib:get-type="dzl_dock_item_get_type"
               glib:type-struct="DockItemInterface">
      <prerequisite name="Gtk.Widget"/>
      <virtual-method name="can_minimize" invoker="get_can_minimize">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the widget can be minimized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="descendant" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="close" invoker="close">
        <doc xml:space="preserve">This function will request that the dock item close itself.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the dock item was closed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_can_close" invoker="get_can_close">
        <doc xml:space="preserve">If this dock item can be closed by the user, this virtual function should be
implemented by the panel and return %TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the dock item can be closed by the user, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_child_visible" invoker="get_child_visible">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_icon_name" invoker="get_icon_name">
        <doc xml:space="preserve">Gets the icon_name for the #DzlDockItem.

Generally, you want to use a #DzlDockWidget which has a "icon-name" property
you can set. But this can be helpful for integration of various container
widgets.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A newly allocated string or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_manager" invoker="get_manager">
        <doc xml:space="preserve">Gets the dock manager for this dock item.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlDockmanager.</doc>
          <type name="DockManager" c:type="DzlDockManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_title" invoker="get_title">
        <doc xml:space="preserve">Gets the title for the #DzlDockItem.

Generally, you want to use a #DzlDockWidget which has a "title" property you
can set. But this can be helpful for integration of various container
widgets.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A newly allocated string or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="manager_set">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="old_manager" transfer-ownership="none">
            <type name="DockManager" c:type="DzlDockManager*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="minimize" invoker="minimize">
        <doc xml:space="preserve">This requests that @self minimize @child if it knows how.

If not, it should suggest the gravity for @child if it knows how to
determine that. For example, a #DzlDockBin might know if the widget was part
of the right panel and therefore may set @position to %GTK_POS_RIGHT.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @child was minimized. Otherwise %FALSE and @position
  may be updated to a suggested position.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem that is a child of @self</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
          <parameter name="position"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">A location for a #GtkPositionType</doc>
            <type name="Gtk.PositionType" c:type="GtkPositionType*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="present_child" invoker="present_child">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="release" invoker="release">
        <doc xml:space="preserve">This virtual method should remove @child from @self if the
dock item knows how to do so. For example, the #DzlDockStack
will remove @child from it's internal #GtkStack.

After the virtual function has been executed, child tracking
will be removed so that #DzlDockItem implementations do not
need to implement themselves.</doc>
        <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">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_child_visible" invoker="set_child_visible">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
          <parameter name="child_visible" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_manager" invoker="set_manager">
        <doc xml:space="preserve">Sets the dock manager for this #DzlDockItem.</doc>
        <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">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="manager"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #DzlDockManager</doc>
            <type name="DockManager" c:type="DzlDockManager*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_visibility" invoker="update_visibility">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="adopt" c:identifier="dzl_dock_item_adopt">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="dzl_dock_item_close">
        <doc xml:space="preserve">This function will request that the dock item close itself.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the dock item was closed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_close" c:identifier="dzl_dock_item_get_can_close">
        <doc xml:space="preserve">If this dock item can be closed by the user, this virtual function should be
implemented by the panel and return %TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the dock item can be closed by the user, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_minimize"
              c:identifier="dzl_dock_item_get_can_minimize">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the widget can be minimized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_child_visible"
              c:identifier="dzl_dock_item_get_child_visible">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icon_name" c:identifier="dzl_dock_item_get_icon_name">
        <doc xml:space="preserve">Gets the icon_name for the #DzlDockItem.

Generally, you want to use a #DzlDockWidget which has a "icon-name" property
you can set. But this can be helpful for integration of various container
widgets.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A newly allocated string or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_manager" c:identifier="dzl_dock_item_get_manager">
        <doc xml:space="preserve">Gets the dock manager for this dock item.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlDockmanager.</doc>
          <type name="DockManager" c:type="DzlDockManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="dzl_dock_item_get_parent">
        <doc xml:space="preserve">Gets the parent #DzlDockItem, or %NULL.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlDockItem or %NULL.</doc>
          <type name="DockItem" c:type="DzlDockItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_dock_item_get_title">
        <doc xml:space="preserve">Gets the title for the #DzlDockItem.

Generally, you want to use a #DzlDockWidget which has a "title" property you
can set. But this can be helpful for integration of various container
widgets.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A newly allocated string or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_widgets" c:identifier="dzl_dock_item_has_widgets">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="minimize" c:identifier="dzl_dock_item_minimize">
        <doc xml:space="preserve">This requests that @self minimize @child if it knows how.

If not, it should suggest the gravity for @child if it knows how to
determine that. For example, a #DzlDockBin might know if the widget was part
of the right panel and therefore may set @position to %GTK_POS_RIGHT.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @child was minimized. Otherwise %FALSE and @position
  may be updated to a suggested position.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlDockItem that is a child of @self</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
          <parameter name="position"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">A location for a #GtkPositionType</doc>
            <type name="Gtk.PositionType" c:type="GtkPositionType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="present" c:identifier="dzl_dock_item_present">
        <doc xml:space="preserve">This widget will walk the widget hierarchy to ensure that the
dock item is visible to the user.</doc>
        <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">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="present_child" c:identifier="dzl_dock_item_present_child">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="release" c:identifier="dzl_dock_item_release">
        <doc xml:space="preserve">This virtual method should remove @child from @self if the
dock item knows how to do so. For example, the #DzlDockStack
will remove @child from it's internal #GtkStack.

After the virtual function has been executed, child tracking
will be removed so that #DzlDockItem implementations do not
need to implement themselves.</doc>
        <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">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_child_visible"
              c:identifier="dzl_dock_item_set_child_visible">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
          <parameter name="child_visible" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_manager" c:identifier="dzl_dock_item_set_manager">
        <doc xml:space="preserve">Sets the dock manager for this #DzlDockItem.</doc>
        <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">A #DzlDockItem</doc>
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
          <parameter name="manager"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #DzlDockManager</doc>
            <type name="DockManager" c:type="DzlDockManager*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_visibility"
              c:identifier="dzl_dock_item_update_visibility">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="manager-set" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="DockManager"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="DockItemInterface"
            c:type="DzlDockItemInterface"
            glib:is-gtype-struct-for="DockItem">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="set_manager">
        <callback name="set_manager">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">A #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="manager"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">A #DzlDockManager</doc>
              <type name="DockManager" c:type="DzlDockManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_manager">
        <callback name="get_manager">
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve">A #DzlDockmanager.</doc>
            <type name="DockManager" c:type="DzlDockManager*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">A #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="manager_set">
        <callback name="manager_set">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="old_manager" transfer-ownership="none">
              <type name="DockManager" c:type="DzlDockManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="present_child">
        <callback name="present_child">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_visibility">
        <callback name="update_visibility">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_child_visible">
        <callback name="get_child_visible">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_child_visible">
        <callback name="set_child_visible">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="child_visible" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_title">
        <callback name="get_title">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">A newly allocated string or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">A #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_icon_name">
        <callback name="get_icon_name">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">A newly allocated string or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">A #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_can_close">
        <callback name="get_can_close">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the dock item can be closed by the user, otherwise %FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_minimize">
        <callback name="can_minimize">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the widget can be minimized.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="descendant" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close">
        <callback name="close">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the dock item was closed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="minimize">
        <callback name="minimize">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if @child was minimized. Otherwise %FALSE and @position
  may be updated to a suggested position.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <doc xml:space="preserve">A #DzlDockItem that is a child of @self</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="position"
                       direction="inout"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve">A location for a #GtkPositionType</doc>
              <type name="Gtk.PositionType" c:type="GtkPositionType*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="release">
        <callback name="release">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">A #DzlDockItem</doc>
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="DockItem" c:type="DzlDockItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="DockManager"
           c:symbol-prefix="dock_manager"
           c:type="DzlDockManager"
           parent="GObject.Object"
           glib:type-name="DzlDockManager"
           glib:get-type="dzl_dock_manager_get_type"
           glib:type-struct="DockManagerClass">
      <constructor name="new" c:identifier="dzl_dock_manager_new">
        <return-value transfer-ownership="full">
          <type name="DockManager" c:type="DzlDockManager*"/>
        </return-value>
      </constructor>
      <virtual-method name="register_dock" invoker="register_dock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockManager" c:type="DzlDockManager*"/>
          </instance-parameter>
          <parameter name="dock" transfer-ownership="none">
            <type name="Dock" c:type="DzlDock*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unregister_dock" invoker="unregister_dock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockManager" c:type="DzlDockManager*"/>
          </instance-parameter>
          <parameter name="dock" transfer-ownership="none">
            <type name="Dock" c:type="DzlDock*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="pause_grabs"
              c:identifier="dzl_dock_manager_pause_grabs"
              version="3.26">
        <doc xml:space="preserve">Requests that the transient grab monitoring stop until
dzl_dock_manager_unpause_grabs() is called.

This might be useful while setting up UI so that you don't focus
something unexpectedly.

This function may be called multiple times and after an equivalent
number of calls to dzl_dock_manager_unpause_grabs(), transient
grab monitoring will continue.</doc>
        <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">a #DzlDockManager</doc>
            <type name="DockManager" c:type="DzlDockManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="register_dock"
              c:identifier="dzl_dock_manager_register_dock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockManager" c:type="DzlDockManager*"/>
          </instance-parameter>
          <parameter name="dock" transfer-ownership="none">
            <type name="Dock" c:type="DzlDock*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unpause_grabs"
              c:identifier="dzl_dock_manager_unpause_grabs"
              version="3.26">
        <doc xml:space="preserve">Unpauses a previous call to dzl_dock_manager_pause_grabs().

Once the pause count returns to zero, transient grab monitoring
will be restored.</doc>
        <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">a #DzlDockManager</doc>
            <type name="DockManager" c:type="DzlDockManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unregister_dock"
              c:identifier="dzl_dock_manager_unregister_dock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockManager" c:type="DzlDockManager*"/>
          </instance-parameter>
          <parameter name="dock" transfer-ownership="none">
            <type name="Dock" c:type="DzlDock*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="register-dock" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Dock"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="unregister-dock" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Dock"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="DockManagerClass"
            c:type="DzlDockManagerClass"
            glib:is-gtype-struct-for="DockManager">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="register_dock">
        <callback name="register_dock">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockManager" c:type="DzlDockManager*"/>
            </parameter>
            <parameter name="dock" transfer-ownership="none">
              <type name="Dock" c:type="DzlDock*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unregister_dock">
        <callback name="unregister_dock">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockManager" c:type="DzlDockManager*"/>
            </parameter>
            <parameter name="dock" transfer-ownership="none">
              <type name="Dock" c:type="DzlDock*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="DockOverlay"
           c:symbol-prefix="dock_overlay"
           c:type="DzlDockOverlay"
           parent="Gtk.EventBox"
           glib:type-name="DzlDockOverlay"
           glib:get-type="dzl_dock_overlay_get_type"
           glib:type-struct="DockOverlayClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Dock"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_dock_overlay_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="hide_edges">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockOverlay" c:type="DzlDockOverlay*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_edge" c:identifier="dzl_dock_overlay_get_edge">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The corresponding #DzlDockOverlayEdge.</doc>
          <type name="DockOverlayEdge" c:type="DzlDockOverlayEdge*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlDockOverlay.</doc>
            <type name="DockOverlay" c:type="DzlDockOverlay*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve">the edge position.</doc>
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_edge_adjustment"
              c:identifier="dzl_dock_overlay_get_edge_adjustment">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The corresponding #GtkAdjustment.</doc>
          <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlDockOverlay.</doc>
            <type name="DockOverlay" c:type="DzlDockOverlay*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve">the edge position.</doc>
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.EventBox" c:type="GtkEventBox"/>
      </field>
      <glib:signal name="hide-edges" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DockOverlayClass"
            c:type="DzlDockOverlayClass"
            glib:is-gtype-struct-for="DockOverlay">
      <field name="parent">
        <type name="Gtk.EventBoxClass" c:type="GtkEventBoxClass"/>
      </field>
      <field name="hide_edges">
        <callback name="hide_edges">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DockOverlay" c:type="DzlDockOverlay*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="DockOverlayEdge"
           c:symbol-prefix="dock_overlay_edge"
           c:type="DzlDockOverlayEdge"
           parent="Bin"
           glib:type-name="DzlDockOverlayEdge"
           glib:get-type="dzl_dock_overlay_edge_get_type"
           glib:type-struct="DockOverlayEdgeClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <method name="get_edge" c:identifier="dzl_dock_overlay_edge_get_edge">
        <return-value transfer-ownership="none">
          <type name="Gtk.PositionType" c:type="GtkPositionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockOverlayEdge" c:type="DzlDockOverlayEdge*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position"
              c:identifier="dzl_dock_overlay_edge_get_position">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockOverlayEdge" c:type="DzlDockOverlayEdge*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_edge" c:identifier="dzl_dock_overlay_edge_set_edge">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockOverlayEdge" c:type="DzlDockOverlayEdge*"/>
          </instance-parameter>
          <parameter name="edge" transfer-ownership="none">
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position"
              c:identifier="dzl_dock_overlay_edge_set_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockOverlayEdge" c:type="DzlDockOverlayEdge*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="edge" writable="1" transfer-ownership="none">
        <type name="Gtk.PositionType"/>
      </property>
      <property name="position" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="DockOverlayEdgeClass"
            c:type="DzlDockOverlayEdgeClass"
            glib:is-gtype-struct-for="DockOverlayEdge">
      <field name="parent_class">
        <type name="BinClass" c:type="DzlBinClass"/>
      </field>
    </record>
    <class name="DockPaned"
           c:symbol-prefix="dock_paned"
           c:type="DzlDockPaned"
           parent="MultiPaned"
           glib:type-name="DzlDockPaned"
           glib:get-type="dzl_dock_paned_get_type"
           glib:type-struct="DockPanedClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_dock_paned_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="MultiPaned" c:type="DzlMultiPaned"/>
      </field>
    </class>
    <record name="DockPanedClass"
            c:type="DzlDockPanedClass"
            glib:is-gtype-struct-for="DockPaned">
      <field name="parent">
        <type name="MultiPanedClass" c:type="DzlMultiPanedClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="DockRevealer"
           c:symbol-prefix="dock_revealer"
           c:type="DzlDockRevealer"
           parent="Bin"
           glib:type-name="DzlDockRevealer"
           glib:get-type="dzl_dock_revealer_get_type"
           glib:type-struct="DockRevealerClass">
      <doc xml:space="preserve">This widget is a bit like #GtkRevealer with a couple of important
differences. First, it only supports a couple transition types
(the direction to slide reveal). Additionally, the size of the
child allocation will not change during the animation. This is not
as generally useful as an upstream GTK+ widget, but is extremely
important for the panel case to avoid things looking strange while
animating into and out of view.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_dock_revealer_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="animate_to_position"
              c:identifier="dzl_dock_revealer_animate_to_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="transition_duration" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_child_revealed"
              c:identifier="dzl_dock_revealer_get_child_revealed">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position"
              c:identifier="dzl_dock_revealer_get_position">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position_set"
              c:identifier="dzl_dock_revealer_get_position_set">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reveal_child"
              c:identifier="dzl_dock_revealer_get_reveal_child">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transition_duration"
              c:identifier="dzl_dock_revealer_get_transition_duration">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transition_type"
              c:identifier="dzl_dock_revealer_get_transition_type">
        <return-value transfer-ownership="none">
          <type name="DockRevealerTransitionType"
                c:type="DzlDockRevealerTransitionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_animating"
              c:identifier="dzl_dock_revealer_is_animating">
        <doc xml:space="preserve">This is a helper to check if the revealer is animating. You probably don't
want to poll this function. Connect to notify::child-revealed or
notify::reveal-child instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if an animation is in progress.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlDockRevealer</doc>
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_position"
              c:identifier="dzl_dock_revealer_set_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position_set"
              c:identifier="dzl_dock_revealer_set_position_set">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
          <parameter name="position_set" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reveal_child"
              c:identifier="dzl_dock_revealer_set_reveal_child">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
          <parameter name="reveal_child" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transition_duration"
              c:identifier="dzl_dock_revealer_set_transition_duration">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
          <parameter name="transition_duration" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transition_type"
              c:identifier="dzl_dock_revealer_set_transition_type">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockRevealer" c:type="DzlDockRevealer*"/>
          </instance-parameter>
          <parameter name="transition_type" transfer-ownership="none">
            <type name="DockRevealerTransitionType"
                  c:type="DzlDockRevealerTransitionType"/>
          </parameter>
        </parameters>
      </method>
      <property name="child-revealed" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="position" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="position-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="reveal-child" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="transition-duration"
                writable="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="transition-type" writable="1" transfer-ownership="none">
        <type name="DockRevealerTransitionType"/>
      </property>
      <field name="parent_instance">
        <type name="Bin" c:type="DzlBin"/>
      </field>
    </class>
    <record name="DockRevealerClass"
            c:type="DzlDockRevealerClass"
            glib:is-gtype-struct-for="DockRevealer">
      <field name="parent">
        <type name="BinClass" c:type="DzlBinClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <enumeration name="DockRevealerTransitionType"
                 glib:type-name="DzlDockRevealerTransitionType"
                 glib:get-type="dzl_dock_revealer_transition_type_get_type"
                 c:type="DzlDockRevealerTransitionType">
      <member name="none"
              value="0"
              c:identifier="DZL_DOCK_REVEALER_TRANSITION_TYPE_NONE"
              glib:nick="none">
      </member>
      <member name="slide_right"
              value="1"
              c:identifier="DZL_DOCK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT"
              glib:nick="slide-right">
      </member>
      <member name="slide_left"
              value="2"
              c:identifier="DZL_DOCK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT"
              glib:nick="slide-left">
      </member>
      <member name="slide_up"
              value="3"
              c:identifier="DZL_DOCK_REVEALER_TRANSITION_TYPE_SLIDE_UP"
              glib:nick="slide-up">
      </member>
      <member name="slide_down"
              value="4"
              c:identifier="DZL_DOCK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN"
              glib:nick="slide-down">
      </member>
    </enumeration>
    <class name="DockStack"
           c:symbol-prefix="dock_stack"
           c:type="DzlDockStack"
           parent="Gtk.Box"
           glib:type-name="DzlDockStack"
           glib:get-type="dzl_dock_stack_get_type"
           glib:type-struct="DockStackClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_dock_stack_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_edge" c:identifier="dzl_dock_stack_get_edge">
        <return-value transfer-ownership="none">
          <type name="Gtk.PositionType" c:type="GtkPositionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockStack" c:type="DzlDockStack*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_pinned_button"
              c:identifier="dzl_dock_stack_get_show_pinned_button">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockStack" c:type="DzlDockStack*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style" c:identifier="dzl_dock_stack_get_style">
        <return-value transfer-ownership="none">
          <type name="TabStyle" c:type="DzlTabStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockStack" c:type="DzlDockStack*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_edge" c:identifier="dzl_dock_stack_set_edge">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockStack" c:type="DzlDockStack*"/>
          </instance-parameter>
          <parameter name="edge" transfer-ownership="none">
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_pinned_button"
              c:identifier="dzl_dock_stack_set_show_pinned_button">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockStack" c:type="DzlDockStack*"/>
          </instance-parameter>
          <parameter name="show_pinned_button" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style" c:identifier="dzl_dock_stack_set_style">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockStack" c:type="DzlDockStack*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="TabStyle" c:type="DzlTabStyle"/>
          </parameter>
        </parameters>
      </method>
      <property name="edge" writable="1" transfer-ownership="none">
        <type name="Gtk.PositionType"/>
      </property>
      <property name="show-pinned-button"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="style" writable="1" transfer-ownership="none">
        <type name="TabStyle"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </field>
    </class>
    <record name="DockStackClass"
            c:type="DzlDockStackClass"
            glib:is-gtype-struct-for="DockStack">
      <field name="parent">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="DockTransientGrab"
           c:symbol-prefix="dock_transient_grab"
           c:type="DzlDockTransientGrab"
           parent="GObject.Object"
           glib:type-name="DzlDockTransientGrab"
           glib:get-type="dzl_dock_transient_grab_get_type"
           glib:type-struct="DockTransientGrabClass">
      <constructor name="new" c:identifier="dzl_dock_transient_grab_new">
        <return-value transfer-ownership="full">
          <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
        </return-value>
      </constructor>
      <method name="acquire" c:identifier="dzl_dock_transient_grab_acquire">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_item" c:identifier="dzl_dock_transient_grab_add_item">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="dzl_dock_transient_grab_contains">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timeout"
              c:identifier="dzl_dock_transient_grab_get_timeout">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_descendant"
              c:identifier="dzl_dock_transient_grab_is_descendant">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="release" c:identifier="dzl_dock_transient_grab_release">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_item"
              c:identifier="dzl_dock_transient_grab_remove_item">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="DockItem" c:type="DzlDockItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_timeout"
              c:identifier="dzl_dock_transient_grab_set_timeout">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="steal_common_ancestors"
              c:identifier="dzl_dock_transient_grab_steal_common_ancestors">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="DockTransientGrab" c:type="DzlDockTransientGrab*"/>
          </parameter>
        </parameters>
      </method>
      <property name="timeout" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="DockTransientGrabClass"
            c:type="DzlDockTransientGrabClass"
            glib:is-gtype-struct-for="DockTransientGrab">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="DockWidget"
           c:symbol-prefix="dock_widget"
           c:type="DzlDockWidget"
           parent="Bin"
           glib:type-name="DzlDockWidget"
           glib:get-type="dzl_dock_widget_get_type"
           glib:type-struct="DockWidgetClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_dock_widget_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="set_icon_name"
              c:identifier="dzl_dock_widget_set_icon_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockWidget" c:type="DzlDockWidget*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="dzl_dock_widget_set_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DockWidget" c:type="DzlDockWidget*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="can-close" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon-name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="manager" writable="1" transfer-ownership="none">
        <type name="DockManager"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Bin" c:type="DzlBin"/>
      </field>
    </class>
    <record name="DockWidgetClass"
            c:type="DzlDockWidgetClass"
            glib:is-gtype-struct-for="DockWidget">
      <field name="parent">
        <type name="BinClass" c:type="DzlBinClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="DockWindow"
           c:symbol-prefix="dock_window"
           c:type="DzlDockWindow"
           parent="Gtk.Window"
           glib:type-name="DzlDockWindow"
           glib:get-type="dzl_dock_window_get_type"
           glib:type-struct="DockWindowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Dock"/>
      <implements name="DockItem"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_dock_window_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Window" c:type="GtkWindow"/>
      </field>
    </class>
    <record name="DockWindowClass"
            c:type="DzlDockWindowClass"
            glib:is-gtype-struct-for="DockWindow">
      <field name="parent">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <constant name="ENABLE_TRACE" value="0" c:type="DZL_ENABLE_TRACE">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="ElasticBin"
           c:symbol-prefix="elastic_bin"
           c:type="DzlElasticBin"
           parent="Gtk.Bin"
           glib:type-name="DzlElasticBin"
           glib:get-type="dzl_elastic_bin_get_type"
           glib:type-struct="ElasticBinClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_elastic_bin_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
    </class>
    <record name="ElasticBinClass"
            c:type="DzlElasticBinClass"
            glib:is-gtype-struct-for="ElasticBin">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="EmptyState"
           c:symbol-prefix="empty_state"
           c:type="DzlEmptyState"
           parent="Gtk.Bin"
           glib:type-name="DzlEmptyState"
           glib:get-type="dzl_empty_state_get_type"
           glib:type-struct="EmptyStateClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_empty_state_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_icon_name"
              c:identifier="dzl_empty_state_get_icon_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle" c:identifier="dzl_empty_state_get_subtitle">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_empty_state_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="dzl_empty_state_set_icon_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_resource" c:identifier="dzl_empty_state_set_resource">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
          <parameter name="resource" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle" c:identifier="dzl_empty_state_set_subtitle">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="dzl_empty_state_set_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="EmptyState" c:type="DzlEmptyState*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon-name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pixel-size" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="resource"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
    </class>
    <record name="EmptyStateClass"
            c:type="DzlEmptyStateClass"
            glib:is-gtype-struct-for="EmptyState">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <class name="EntryBox"
           c:symbol-prefix="entry_box"
           c:type="DzlEntryBox"
           parent="Gtk.Box"
           glib:type-name="DzlEntryBox"
           glib:get-type="dzl_entry_box_get_type"
           glib:type-struct="EntryBoxClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_entry_box_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <property name="max-width-chars" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="EntryBoxClass"
            c:type="DzlEntryBoxClass"
            glib:is-gtype-struct-for="EntryBox">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
    </record>
    <class name="FileChooserEntry"
           c:symbol-prefix="file_chooser_entry"
           c:type="DzlFileChooserEntry"
           parent="Gtk.Bin"
           glib:type-name="DzlFileChooserEntry"
           glib:get-type="dzl_file_chooser_entry_get_type"
           glib:type-struct="FileChooserEntryClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_file_chooser_entry_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Gtk.FileChooserAction" c:type="GtkFileChooserAction"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_file" c:identifier="dzl_file_chooser_entry_get_file">
        <doc xml:space="preserve">Returns the currently selected file or %NULL if there is no selection.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #GFile or %NULL.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileChooserEntry" c:type="DzlFileChooserEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_file" c:identifier="dzl_file_chooser_entry_set_file">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileChooserEntry" c:type="DzlFileChooserEntry*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <property name="action" writable="1" transfer-ownership="none">
        <type name="Gtk.FileChooserAction"/>
      </property>
      <property name="create-folders" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="do-overwrite-confirmation"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="file" writable="1" transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="filter" writable="1" transfer-ownership="none">
        <type name="Gtk.FileFilter"/>
      </property>
      <property name="local-only" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="max-width-chars" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="show-hidden" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
    </class>
    <record name="FileChooserEntryClass"
            c:type="DzlFileChooserEntryClass"
            glib:is-gtype-struct-for="FileChooserEntry">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="FileTransfer"
           c:symbol-prefix="file_transfer"
           c:type="DzlFileTransfer"
           parent="GObject.Object"
           glib:type-name="DzlFileTransfer"
           glib:get-type="dzl_file_transfer_get_type"
           glib:type-struct="FileTransferClass">
      <constructor name="new" c:identifier="dzl_file_transfer_new">
        <return-value transfer-ownership="full">
          <type name="FileTransfer" c:type="DzlFileTransfer*"/>
        </return-value>
      </constructor>
      <method name="add" c:identifier="dzl_file_transfer_add">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
          <parameter name="src" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute"
              c:identifier="dzl_file_transfer_execute"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute_async"
              c:identifier="dzl_file_transfer_execute_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute_finish"
              c:identifier="dzl_file_transfer_execute_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="dzl_file_transfer_get_flags">
        <return-value transfer-ownership="none">
          <type name="FileTransferFlags" c:type="DzlFileTransferFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_progress"
              c:identifier="dzl_file_transfer_get_progress">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_flags" c:identifier="dzl_file_transfer_set_flags">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="FileTransferFlags" c:type="DzlFileTransferFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="stat" c:identifier="dzl_file_transfer_stat" version="3.28">
        <doc xml:space="preserve">Gets statistics about the transfer progress.</doc>
        <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">a #DzlFileTransfer</doc>
            <type name="FileTransfer" c:type="DzlFileTransfer*"/>
          </instance-parameter>
          <parameter name="stat_buf"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">a #DzlFileTransferStat</doc>
            <type name="FileTransferStat" c:type="DzlFileTransferStat*"/>
          </parameter>
        </parameters>
      </method>
      <property name="flags" writable="1" transfer-ownership="none">
        <type name="FileTransferFlags"/>
      </property>
      <property name="progress" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FileTransferClass"
            c:type="DzlFileTransferClass"
            glib:is-gtype-struct-for="FileTransfer">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="FileTransferFlags"
              glib:type-name="DzlFileTransferFlags"
              glib:get-type="dzl_file_transfer_flags_get_type"
              c:type="DzlFileTransferFlags">
      <member name="none"
              value="0"
              c:identifier="DZL_FILE_TRANSFER_FLAGS_NONE"
              glib:nick="none">
      </member>
      <member name="move"
              value="1"
              c:identifier="DZL_FILE_TRANSFER_FLAGS_MOVE"
              glib:nick="move">
      </member>
    </bitfield>
    <record name="FileTransferStat" c:type="DzlFileTransferStat">
      <field name="n_files_total" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="n_files" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="n_dirs_total" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="n_dirs" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="n_bytes_total" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="n_bytes" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="_padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gint64" fixed-size="10">
          <type name="gint64" c:type="gint64"/>
        </array>
      </field>
    </record>
    <class name="FuzzyIndex"
           c:symbol-prefix="fuzzy_index"
           c:type="DzlFuzzyIndex"
           parent="GObject.Object"
           glib:type-name="DzlFuzzyIndex"
           glib:get-type="dzl_fuzzy_index_get_type"
           glib:type-struct="FuzzyIndexClass">
      <constructor name="new" c:identifier="dzl_fuzzy_index_new">
        <return-value transfer-ownership="full">
          <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
        </return-value>
      </constructor>
      <method name="get_metadata" c:identifier="dzl_fuzzy_index_get_metadata">
        <doc xml:space="preserve">Looks up the metadata for @key.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #GVariant or %NULL.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_metadata_string"
              c:identifier="dzl_fuzzy_index_get_metadata_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_metadata_uint32"
              c:identifier="dzl_fuzzy_index_get_metadata_uint32">
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_metadata_uint64"
              c:identifier="dzl_fuzzy_index_get_metadata_uint64">
        <return-value transfer-ownership="none">
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file"
              c:identifier="dzl_fuzzy_index_load_file"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_async"
              c:identifier="dzl_fuzzy_index_load_file_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_finish"
              c:identifier="dzl_fuzzy_index_load_file_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_async" c:identifier="dzl_fuzzy_index_query_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_matches" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_finish"
              c:identifier="dzl_fuzzy_index_query_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to dzl_fuzzy_index_query_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GListModel of results.</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <class name="FuzzyIndexBuilder"
           c:symbol-prefix="fuzzy_index_builder"
           c:type="DzlFuzzyIndexBuilder"
           parent="GObject.Object"
           glib:type-name="DzlFuzzyIndexBuilder"
           glib:get-type="dzl_fuzzy_index_builder_get_type"
           glib:type-struct="FuzzyIndexBuilderClass">
      <constructor name="new" c:identifier="dzl_fuzzy_index_builder_new">
        <return-value transfer-ownership="full">
          <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
        </return-value>
      </constructor>
      <method name="get_case_sensitive"
              c:identifier="dzl_fuzzy_index_builder_get_case_sensitive">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_document"
              c:identifier="dzl_fuzzy_index_builder_get_document">
        <doc xml:space="preserve">Returns the document that was inserted in a previous call to
dzl_fuzzy_index_builder_insert().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GVariant</doc>
          <type name="GLib.Variant" c:type="const GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="document_id" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="dzl_fuzzy_index_builder_insert">
        <doc xml:space="preserve">Inserts @document into the index using @key as the lookup key.

If a matching document (checked by hashing @document) has already
been inserted, only a single instance of the document will be stored.

If @document is floating, it's floating reference will be sunk using
g_variant_ref_sink().

@priority may be used to group results by priority. Priority must be
less than 256.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The document id registered for @document.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlFuzzyIndexBuilder</doc>
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The UTF-8 encoded key for the document</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="document" transfer-ownership="none">
            <doc xml:space="preserve">The document to store</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">An optional priority for the keyword.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_case_sensitive"
              c:identifier="dzl_fuzzy_index_builder_set_case_sensitive">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata"
              c:identifier="dzl_fuzzy_index_builder_set_metadata">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_string"
              c:identifier="dzl_fuzzy_index_builder_set_metadata_string">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_uint32"
              c:identifier="dzl_fuzzy_index_builder_set_metadata_uint32">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_uint64"
              c:identifier="dzl_fuzzy_index_builder_set_metadata_uint64">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="write"
              c:identifier="dzl_fuzzy_index_builder_write"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_async"
              c:identifier="dzl_fuzzy_index_builder_write_async">
        <doc xml:space="preserve">Builds and writes the index to @file. The file format is a
GVariant on disk and can be loaded and searched using
#FuzzyIndex.</doc>
        <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">A #DzlFuzzyIndexBuilder</doc>
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">A #GFile to write the index to</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve">The priority for IO operations</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">A callback for completion or %NULL</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">User data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_finish"
              c:identifier="dzl_fuzzy_index_builder_write_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexBuilder" c:type="DzlFuzzyIndexBuilder*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="case-sensitive" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="FuzzyIndexBuilderClass"
            c:type="DzlFuzzyIndexBuilderClass"
            glib:is-gtype-struct-for="FuzzyIndexBuilder">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FuzzyIndexClass"
            c:type="DzlFuzzyIndexClass"
            glib:is-gtype-struct-for="FuzzyIndex">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="FuzzyIndexCursor"
           c:symbol-prefix="fuzzy_index_cursor"
           c:type="DzlFuzzyIndexCursor"
           parent="GObject.Object"
           glib:type-name="DzlFuzzyIndexCursor"
           glib:get-type="dzl_fuzzy_index_cursor_get_type"
           glib:type-struct="FuzzyIndexCursorClass">
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.ListModel"/>
      <method name="get_index" c:identifier="dzl_fuzzy_index_cursor_get_index">
        <doc xml:space="preserve">Gets the index the cursor is iterating.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlFuzzyIndex.</doc>
          <type name="FuzzyIndex" c:type="DzlFuzzyIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlFuzzyIndexCursor</doc>
            <type name="FuzzyIndexCursor" c:type="DzlFuzzyIndexCursor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="case-sensitive"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="index"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="FuzzyIndex"/>
      </property>
      <property name="max-matches"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="query"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tables"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.VariantDict"/>
      </property>
    </class>
    <record name="FuzzyIndexCursorClass"
            c:type="DzlFuzzyIndexCursorClass"
            glib:is-gtype-struct-for="FuzzyIndexCursor">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="FuzzyIndexMatch"
           c:symbol-prefix="fuzzy_index_match"
           c:type="DzlFuzzyIndexMatch"
           parent="GObject.Object"
           glib:type-name="DzlFuzzyIndexMatch"
           glib:get-type="dzl_fuzzy_index_match_get_type"
           glib:type-struct="FuzzyIndexMatchClass">
      <method name="get_document"
              c:identifier="dzl_fuzzy_index_match_get_document">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GVariant.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexMatch" c:type="DzlFuzzyIndexMatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key" c:identifier="dzl_fuzzy_index_match_get_key">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexMatch" c:type="DzlFuzzyIndexMatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="dzl_fuzzy_index_match_get_priority">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexMatch" c:type="DzlFuzzyIndexMatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_score" c:identifier="dzl_fuzzy_index_match_get_score">
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FuzzyIndexMatch" c:type="DzlFuzzyIndexMatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="document"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.Variant"/>
      </property>
      <property name="key"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="priority"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="score"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gfloat" c:type="gfloat"/>
      </property>
    </class>
    <record name="FuzzyIndexMatchClass"
            c:type="DzlFuzzyIndexMatchClass"
            glib:is-gtype-struct-for="FuzzyIndexMatch">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FuzzyMutableIndex"
            c:type="DzlFuzzyMutableIndex"
            glib:type-name="DzlFuzzyMutableIndex"
            glib:get-type="dzl_fuzzy_mutable_index_get_type"
            c:symbol-prefix="fuzzy_mutable_index">
      <constructor name="new" c:identifier="dzl_fuzzy_mutable_index_new">
        <doc xml:space="preserve">Create a new #Fuzzy for fuzzy matching strings.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly allocated #Fuzzy that should be freed with dzl_fuzzy_mutable_index_unref().</doc>
          <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
        </return-value>
        <parameters>
          <parameter name="case_sensitive" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if case should be preserved.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_free_func"
                   c:identifier="dzl_fuzzy_mutable_index_new_with_free_func">
        <return-value transfer-ownership="full">
          <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
        </return-value>
        <parameters>
          <parameter name="case_sensitive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="free_func" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="begin_bulk_insert"
              c:identifier="dzl_fuzzy_mutable_index_begin_bulk_insert">
        <doc xml:space="preserve">Start a bulk insertion. @fuzzy is not ready for searching until
dzl_fuzzy_mutable_index_end_bulk_insert() has been called.

This allows for inserting large numbers of strings and deferring
the final sort until dzl_fuzzy_mutable_index_end_bulk_insert().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <doc xml:space="preserve">A #Fuzzy.</doc>
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="dzl_fuzzy_mutable_index_contains">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="end_bulk_insert"
              c:identifier="dzl_fuzzy_mutable_index_end_bulk_insert">
        <doc xml:space="preserve">Complete a bulk insert and resort the index.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <doc xml:space="preserve">A #Fuzzy.</doc>
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="dzl_fuzzy_mutable_index_insert">
        <doc xml:space="preserve">Inserts a string into the fuzzy matcher.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <doc xml:space="preserve">A #Fuzzy.</doc>
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">A UTF-8 encoded string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A value to associate with key.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="dzl_fuzzy_mutable_index_match">
        <doc xml:space="preserve">DzlFuzzyMutableIndex searches within @fuzzy for strings that fuzzy match @needle.
Only up to @max_matches will be returned.

TODO: max_matches is not yet respected.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly allocated
  #GArray containing #FuzzyMatch elements. This should be freed when
  the caller is done with it using g_array_unref().
  It is a programming error to keep the structure around longer than
  the @fuzzy instance.</doc>
          <array name="GLib.Array" c:type="GArray*">
            <type name="FuzzyMutableIndexMatch"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <doc xml:space="preserve">A #Fuzzy.</doc>
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
          <parameter name="needle" transfer-ownership="none">
            <doc xml:space="preserve">The needle to fuzzy search for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_matches" transfer-ownership="none">
            <doc xml:space="preserve">The max number of matches to return.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dzl_fuzzy_mutable_index_ref">
        <return-value transfer-ownership="full">
          <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="dzl_fuzzy_mutable_index_remove">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_free_func"
              c:identifier="dzl_fuzzy_mutable_index_set_free_func">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
          <parameter name="free_func" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dzl_fuzzy_mutable_index_unref">
        <doc xml:space="preserve">Decrements the reference count of fuzzy by one. When the reference count
reaches zero, the structure will be freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fuzzy" transfer-ownership="none">
            <doc xml:space="preserve">A #Fuzzy.</doc>
            <type name="FuzzyMutableIndex" c:type="DzlFuzzyMutableIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="FuzzyMutableIndexMatch" c:type="DzlFuzzyMutableIndexMatch">
      <field name="key" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="value" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="score" writable="1">
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="id" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <class name="GraphColumn"
           c:symbol-prefix="graph_view_column"
           c:type="DzlGraphColumn"
           parent="GObject.Object"
           glib:type-name="DzlGraphColumn"
           glib:get-type="dzl_graph_view_column_get_type"
           glib:type-struct="GraphColumnClass">
      <constructor name="new" c:identifier="dzl_graph_view_column_new">
        <return-value transfer-ownership="full">
          <type name="GraphColumn" c:type="DzlGraphColumn*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value_type" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_name" c:identifier="dzl_graph_view_column_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphColumn" c:type="DzlGraphColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="dzl_graph_view_column_set_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphColumn" c:type="DzlGraphColumn*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="value-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </property>
    </class>
    <record name="GraphColumnClass"
            c:type="DzlGraphColumnClass"
            glib:is-gtype-struct-for="GraphColumn">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="GraphLineRenderer"
           c:symbol-prefix="graph_view_line_renderer"
           c:type="DzlGraphLineRenderer"
           parent="GObject.Object"
           glib:type-name="DzlGraphLineRenderer"
           glib:get-type="dzl_graph_view_line_renderer_get_type"
           glib:type-struct="GraphLineRendererClass">
      <implements name="GraphRenderer"/>
      <constructor name="new" c:identifier="dzl_graph_view_line_renderer_new">
        <return-value transfer-ownership="full">
          <type name="GraphLineRenderer" c:type="DzlGraphLineRenderer*"/>
        </return-value>
      </constructor>
      <method name="get_stroke_color_rgba"
              c:identifier="dzl_graph_view_line_renderer_get_stroke_color_rgba">
        <return-value transfer-ownership="none">
          <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphLineRenderer" c:type="DzlGraphLineRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_stroke_color"
              c:identifier="dzl_graph_view_line_renderer_set_stroke_color">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphLineRenderer" c:type="DzlGraphLineRenderer*"/>
          </instance-parameter>
          <parameter name="stroke_color" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stroke_color_rgba"
              c:identifier="dzl_graph_view_line_renderer_set_stroke_color_rgba">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphLineRenderer" c:type="DzlGraphLineRenderer*"/>
          </instance-parameter>
          <parameter name="stroke_color_rgba" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <property name="column" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="line-width" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="stroke-color" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="stroke-color-rgba"
                writable="1"
                transfer-ownership="none">
        <type name="Gdk.RGBA"/>
      </property>
    </class>
    <record name="GraphLineRendererClass"
            c:type="DzlGraphLineRendererClass"
            glib:is-gtype-struct-for="GraphLineRenderer">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="GraphModel"
           c:symbol-prefix="graph_view_model"
           c:type="DzlGraphModel"
           parent="GObject.Object"
           glib:type-name="DzlGraphModel"
           glib:get-type="dzl_graph_view_model_get_type"
           glib:type-struct="GraphModelClass">
      <constructor name="new" c:identifier="dzl_graph_view_model_new">
        <return-value transfer-ownership="full">
          <type name="GraphModel" c:type="DzlGraphModel*"/>
        </return-value>
      </constructor>
      <function name="iter_get"
                c:identifier="dzl_graph_view_model_iter_get"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
          <parameter name="first_column" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </function>
      <function name="iter_get_timestamp"
                c:identifier="dzl_graph_view_model_iter_get_timestamp">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
        </parameters>
      </function>
      <function name="iter_get_value"
                c:identifier="dzl_graph_view_model_iter_get_value">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </function>
      <function name="iter_next" c:identifier="dzl_graph_view_model_iter_next">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
        </parameters>
      </function>
      <function name="iter_set"
                c:identifier="dzl_graph_view_model_iter_set"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
          <parameter name="first_column" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </function>
      <method name="add_column" c:identifier="dzl_graph_view_model_add_column">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <type name="GraphColumn" c:type="DzlGraphColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_end_time"
              c:identifier="dzl_graph_view_model_get_end_time">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter_first"
              c:identifier="dzl_graph_view_model_get_iter_first">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_last"
              c:identifier="dzl_graph_view_model_get_iter_last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_samples"
              c:identifier="dzl_graph_view_model_get_max_samples">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_columns"
              c:identifier="dzl_graph_view_model_get_n_columns">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timespan"
              c:identifier="dzl_graph_view_model_get_timespan">
        <return-value transfer-ownership="none">
          <type name="GLib.TimeSpan" c:type="GTimeSpan"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push" c:identifier="dzl_graph_view_model_push">
        <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">Table to push to</doc>
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">Newly created #DzlGraphModelIter</doc>
            <type name="GraphModelIter" c:type="DzlGraphModelIter*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">Time of new event</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_samples"
              c:identifier="dzl_graph_view_model_set_max_samples">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
          <parameter name="n_rows" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_timespan"
              c:identifier="dzl_graph_view_model_set_timespan">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </instance-parameter>
          <parameter name="timespan" transfer-ownership="none">
            <type name="GLib.TimeSpan" c:type="GTimeSpan"/>
          </parameter>
        </parameters>
      </method>
      <property name="max-samples"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="timespan"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="value-max" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="value-min" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="GraphModelClass"
            c:type="DzlGraphModelClass"
            glib:is-gtype-struct-for="GraphModel">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="GraphModelIter" c:type="DzlGraphModelIter">
      <field name="data" writable="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <interface name="GraphRenderer"
               c:symbol-prefix="graph_view_renderer"
               c:type="DzlGraphRenderer"
               glib:type-name="DzlGraphRenderer"
               glib:get-type="dzl_graph_view_renderer_get_type"
               glib:type-struct="GraphRendererInterface">
      <virtual-method name="render" invoker="render">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphRenderer" c:type="DzlGraphRenderer*"/>
          </instance-parameter>
          <parameter name="table" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </parameter>
          <parameter name="x_begin" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="x_end" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="y_begin" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y_end" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="cairo.RectangleInt"
                  c:type="const cairo_rectangle_int_t*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="render" c:identifier="dzl_graph_view_renderer_render">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphRenderer" c:type="DzlGraphRenderer*"/>
          </instance-parameter>
          <parameter name="table" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </parameter>
          <parameter name="x_begin" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="x_end" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="y_begin" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y_end" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="cairo.RectangleInt"
                  c:type="const cairo_rectangle_int_t*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="GraphRendererInterface"
            c:type="DzlGraphRendererInterface"
            glib:is-gtype-struct-for="GraphRenderer">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="render">
        <callback name="render">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="GraphRenderer" c:type="DzlGraphRenderer*"/>
            </parameter>
            <parameter name="table" transfer-ownership="none">
              <type name="GraphModel" c:type="DzlGraphModel*"/>
            </parameter>
            <parameter name="x_begin" transfer-ownership="none">
              <type name="gint64" c:type="gint64"/>
            </parameter>
            <parameter name="x_end" transfer-ownership="none">
              <type name="gint64" c:type="gint64"/>
            </parameter>
            <parameter name="y_begin" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
            <parameter name="y_end" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
            <parameter name="cr" transfer-ownership="none">
              <type name="cairo.Context" c:type="cairo_t*"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="cairo.RectangleInt"
                    c:type="const cairo_rectangle_int_t*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="GraphView"
           c:symbol-prefix="graph_view"
           c:type="DzlGraphView"
           parent="Gtk.DrawingArea"
           glib:type-name="DzlGraphView"
           glib:get-type="dzl_graph_view_get_type"
           glib:type-struct="GraphViewClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_graph_view_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="add_renderer" c:identifier="dzl_graph_view_add_renderer">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphView" c:type="DzlGraphView*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <type name="GraphRenderer" c:type="DzlGraphRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_model" c:identifier="dzl_graph_view_get_model">
        <doc xml:space="preserve">Gets the #DzlGraphView:model property.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlGraphModel or %NULL.</doc>
          <type name="GraphModel" c:type="DzlGraphModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphView" c:type="DzlGraphView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_model" c:identifier="dzl_graph_view_set_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GraphView" c:type="DzlGraphView*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="GraphModel" c:type="DzlGraphModel*"/>
          </parameter>
        </parameters>
      </method>
      <property name="model" writable="1" transfer-ownership="none">
        <type name="GraphModel"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.DrawingArea" c:type="GtkDrawingArea"/>
      </field>
    </class>
    <record name="GraphViewClass"
            c:type="DzlGraphViewClass"
            glib:is-gtype-struct-for="GraphView">
      <field name="parent_class">
        <type name="Gtk.DrawingAreaClass" c:type="GtkDrawingAreaClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="Heap"
            c:type="DzlHeap"
            glib:type-name="DzlHeap"
            glib:get-type="dzl_heap_get_type"
            c:symbol-prefix="heap">
      <doc xml:space="preserve">Heaps are similar to a partially sorted tree but implemented as an
array. They allow for efficient O(1) lookup of the highest priority
item as it will always be the first item of the array.

To create a new heap use dzl_heap_new().

To add items to the heap, use dzl_heap_insert_val() or
dzl_heap_insert_vals() to insert in bulk.

To access an item in the heap, use dzl_heap_index().

To remove an arbitrary item from the heap, use dzl_heap_extract_index().

To remove the highest priority item in the heap, use dzl_heap_extract().

To free a heap, use dzl_heap_unref().

Here is an example that stores integers in a #DzlHeap:
|[&lt;!-- language="C" --&gt;
static int
cmpint (gconstpointer a,
        gconstpointer b)
{
  return *(const gint *)a - *(const gint *)b;
}

int
main (gint   argc,
      gchar *argv[])
{
  DzlHeap *heap;
  gint i;
  gint v;

  heap = dzl_heap_new (sizeof (gint), cmpint);

  for (i = 0; i &lt; 10000; i++)
    dzl_heap_insert_val (heap, i);
  for (i = 0; i &lt; 10000; i++)
    dzl_heap_extract (heap, &amp;v);

  dzl_heap_unref (heap);
}
]|</doc>
      <field name="data" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="len" writable="1">
        <type name="gsize" c:type="gsize"/>
      </field>
      <constructor name="new" c:identifier="dzl_heap_new">
        <doc xml:space="preserve">Creates a new #DzlHeap. A heap is a tree-like structure stored in
an array that is not fully sorted, but head is guaranteed to be either
the max, or min value based on @compare_func. This is also known as
a priority queue.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly allocated #DzlHeap</doc>
          <type name="Heap" c:type="DzlHeap*"/>
        </return-value>
        <parameters>
          <parameter name="element_size" transfer-ownership="none">
            <doc xml:space="preserve">the size of each element in the heap</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="compare_func"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">a function to compare to elements</doc>
            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="extract" c:identifier="dzl_heap_extract">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="heap" transfer-ownership="none">
            <type name="Heap" c:type="DzlHeap*"/>
          </instance-parameter>
          <parameter name="result"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="extract_index" c:identifier="dzl_heap_extract_index">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="heap" transfer-ownership="none">
            <type name="Heap" c:type="DzlHeap*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="result"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_vals" c:identifier="dzl_heap_insert_vals">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="heap" transfer-ownership="none">
            <type name="Heap" c:type="DzlHeap*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dzl_heap_ref">
        <doc xml:space="preserve">Increments the reference count of @heap by one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">@heap</doc>
          <type name="Heap" c:type="DzlHeap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="heap" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlHeap</doc>
            <type name="Heap" c:type="DzlHeap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dzl_heap_unref">
        <doc xml:space="preserve">Decrements the reference count of @heap by one, freeing the structure
when the reference count reaches zero.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="heap" transfer-ownership="full">
            <doc xml:space="preserve">An #DzlHeap</doc>
            <type name="Heap" c:type="DzlHeap*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="JoinedMenu"
           c:symbol-prefix="joined_menu"
           c:type="DzlJoinedMenu"
           parent="Gio.MenuModel"
           glib:type-name="DzlJoinedMenu"
           glib:get-type="dzl_joined_menu_get_type"
           glib:type-struct="JoinedMenuClass">
      <constructor name="new" c:identifier="dzl_joined_menu_new">
        <return-value transfer-ownership="full">
          <type name="JoinedMenu" c:type="DzlJoinedMenu*"/>
        </return-value>
      </constructor>
      <method name="append_menu" c:identifier="dzl_joined_menu_append_menu">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="JoinedMenu" c:type="DzlJoinedMenu*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_joined" c:identifier="dzl_joined_menu_get_n_joined">
        <doc xml:space="preserve">Gets the number of joined menus.</doc>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlJoinedMenu</doc>
            <type name="JoinedMenu" c:type="DzlJoinedMenu*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend_menu" c:identifier="dzl_joined_menu_prepend_menu">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="JoinedMenu" c:type="DzlJoinedMenu*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_index" c:identifier="dzl_joined_menu_remove_index">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="JoinedMenu" c:type="DzlJoinedMenu*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_menu" c:identifier="dzl_joined_menu_remove_menu">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="JoinedMenu" c:type="DzlJoinedMenu*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="JoinedMenuClass"
            c:type="DzlJoinedMenuClass"
            glib:is-gtype-struct-for="JoinedMenu">
      <field name="parent_class">
        <type name="Gio.MenuModelClass" c:type="GMenuModelClass"/>
      </field>
    </record>
    <constant name="LOG_LEVEL_TRACE"
              value="1"
              c:type="DZL_LOG_LEVEL_TRACE"
              introspectable="0">
      <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/>
    </constant>
    <class name="ListBox"
           c:symbol-prefix="list_box"
           c:type="DzlListBox"
           parent="Gtk.ListBox"
           glib:type-name="DzlListBox"
           glib:get-type="dzl_list_box_get_type"
           glib:type-struct="ListBoxClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_list_box_new">
        <return-value transfer-ownership="none">
          <type name="ListBox" c:type="DzlListBox*"/>
        </return-value>
        <parameters>
          <parameter name="row_type" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_model" c:identifier="dzl_list_box_get_model">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GListModel or %NULL.</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ListBox" c:type="DzlListBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_property_name"
              c:identifier="dzl_list_box_get_property_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ListBox" c:type="DzlListBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_type" c:identifier="dzl_list_box_get_row_type">
        <return-value transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ListBox" c:type="DzlListBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_model" c:identifier="dzl_list_box_set_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ListBox" c:type="DzlListBox*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_recycle_max"
              c:identifier="dzl_list_box_set_recycle_max"
              version="3.28">
        <doc xml:space="preserve">Sets the max number of rows to cache for reuse.  Set to 0 to return
to the default.</doc>
        <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">a #DzlListBox</doc>
            <type name="ListBox" c:type="DzlListBox*"/>
          </instance-parameter>
          <parameter name="recycle_max" transfer-ownership="none">
            <doc xml:space="preserve">max number of rows to cache</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="property-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="row-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </property>
      <property name="row-type-name"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.ListBox" c:type="GtkListBox"/>
      </field>
    </class>
    <record name="ListBoxClass"
            c:type="DzlListBoxClass"
            glib:is-gtype-struct-for="ListBox">
      <field name="parent_class">
        <type name="Gtk.ListBoxClass" c:type="GtkListBoxClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="ListBoxRow"
           c:symbol-prefix="list_box_row"
           c:type="DzlListBoxRow"
           parent="Gtk.ListBoxRow"
           abstract="1"
           glib:type-name="DzlListBoxRow"
           glib:get-type="dzl_list_box_row_get_type"
           glib:type-struct="ListBoxRowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_list_box_row_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow"/>
      </field>
    </class>
    <record name="ListBoxRowClass"
            c:type="DzlListBoxRowClass"
            glib:is-gtype-struct-for="ListBoxRow">
      <field name="parent_class">
        <type name="Gtk.ListBoxRowClass" c:type="GtkListBoxRowClass"/>
      </field>
    </record>
    <class name="ListStoreAdapter"
           c:symbol-prefix="list_store_adapter"
           c:type="DzlListStoreAdapter"
           parent="GObject.Object"
           glib:type-name="DzlListStoreAdapter"
           glib:get-type="dzl_list_store_adapter_get_type"
           glib:type-struct="ListStoreAdapterClass">
      <implements name="Gtk.TreeModel"/>
      <constructor name="new" c:identifier="dzl_list_store_adapter_new">
        <return-value transfer-ownership="full">
          <type name="ListStoreAdapter" c:type="DzlListStoreAdapter*"/>
        </return-value>
        <parameters>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_model"
              c:identifier="dzl_list_store_adapter_get_model"
              version="3.26">
        <doc xml:space="preserve">Gets the model being adapted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GListModel</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlListStoreAdapter</doc>
            <type name="ListStoreAdapter" c:type="DzlListStoreAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_model" c:identifier="dzl_list_store_adapter_set_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ListStoreAdapter" c:type="DzlListStoreAdapter*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <property name="model" writable="1" transfer-ownership="none">
        <type name="Gio.ListModel"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ListStoreAdapterClass"
            c:type="DzlListStoreAdapterClass"
            glib:is-gtype-struct-for="ListStoreAdapter">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="3" c:type="DZL_MAJOR_VERSION">
      <doc xml:space="preserve">Dzl major version component (e.g. 1 if %DZL_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="0" c:type="DZL_MICRO_VERSION">
      <doc xml:space="preserve">Dzl micro version component (e.g. 3 if %DZL_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="28" c:type="DZL_MINOR_VERSION">
      <doc xml:space="preserve">Dzl minor version component (e.g. 2 if %DZL_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="MenuButton"
           c:symbol-prefix="menu_button"
           c:type="DzlMenuButton"
           parent="Gtk.MenuButton"
           glib:type-name="DzlMenuButton"
           glib:get-type="dzl_menu_button_get_type"
           glib:type-struct="MenuButtonClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Activatable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new_with_model"
                   c:identifier="dzl_menu_button_new_with_model">
        <doc xml:space="preserve">Creates a new #DzlMenuButton with the icon @icon_name and
the menu contents of @model.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #DzlMenuButton</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve">An icon-name for the button</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="model"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GMenuModel or %NULL</doc>
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_model"
              c:identifier="dzl_menu_button_get_model"
              version="3.26">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlMenuButton or %NULL.</doc>
          <type name="Gio.MenuModel" c:type="GMenuModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlMenuButton</doc>
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_accels"
              c:identifier="dzl_menu_button_get_show_accels">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_arrow"
              c:identifier="dzl_menu_button_get_show_arrow">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_icons"
              c:identifier="dzl_menu_button_get_show_icons">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_model" c:identifier="dzl_menu_button_set_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_accels"
              c:identifier="dzl_menu_button_set_show_accels"
              version="3.26">
        <doc xml:space="preserve">Sets the #DzlMenuButton:show-accels property.

If %TRUE, accelerators will be displayed next to menu items that
contain a shortcut.</doc>
        <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">a #DzlMenuButton</doc>
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
          <parameter name="show_accels" transfer-ownership="none">
            <doc xml:space="preserve">if accelerators should be visible</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_arrow"
              c:identifier="dzl_menu_button_set_show_arrow"
              version="3.26">
        <doc xml:space="preserve">Sets the #DzlMenuButton:show-arrow property.

If %TRUE, an pan-down-symbolic image will be displayed next to the
image in the button.</doc>
        <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">a #DzlMenuButton</doc>
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
          <parameter name="show_arrow" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_icons"
              c:identifier="dzl_menu_button_set_show_icons"
              version="3.26">
        <doc xml:space="preserve">Sets the #DzlMenuButton:show-icons property.

If %TRUE, icons will be displayed next to menu items that
contain a shortcut.</doc>
        <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">a #DzlMenuButton</doc>
            <type name="MenuButton" c:type="DzlMenuButton*"/>
          </instance-parameter>
          <parameter name="show_icons" transfer-ownership="none">
            <doc xml:space="preserve">if icons should be visible</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon-name"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="menu-id"
                version="3.26"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The "menu-id" property can be used to automatically load a
#GMenuModel from the applications merged menus. This is
performed via dzl_application_get_menu_by_id().</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="model" writable="1" transfer-ownership="none">
        <type name="Gio.MenuModel"/>
      </property>
      <property name="show-accels" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-arrow" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-icons" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="transitions-enabled"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.MenuButton" c:type="GtkMenuButton"/>
      </field>
    </class>
    <record name="MenuButtonClass"
            c:type="DzlMenuButtonClass"
            glib:is-gtype-struct-for="MenuButton">
      <field name="parent_class">
        <type name="Gtk.MenuButtonClass" c:type="GtkMenuButtonClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="MenuManager"
           c:symbol-prefix="menu_manager"
           c:type="DzlMenuManager"
           version="3.26"
           parent="GObject.Object"
           glib:type-name="DzlMenuManager"
           glib:get-type="dzl_menu_manager_get_type"
           glib:type-struct="MenuManagerClass">
      <doc xml:space="preserve">The goal of #DzlMenuManager is to simplify the process of merging multiple
GtkBuilder .ui files containing menus into a single representation of the
application menus. Additionally, it provides the ability to "unmerge"
previously merged menus.

This allows for an application to have plugins which seemlessly extends
the core application menus.

Implementation notes:

To make this work, we don't use the GMenu instances created by a GtkBuilder
instance. Instead, we create the menus ourself and recreate section and
submenu links. This allows the #DzlMenuManager to be in full control of
the generated menus.

dzl_menu_manager_get_menu_by_id() will always return a #GMenu, however
that menu may contain no children until something has extended it later
on during the application process.</doc>
      <constructor name="new" c:identifier="dzl_menu_manager_new">
        <return-value transfer-ownership="full">
          <type name="MenuManager" c:type="DzlMenuManager*"/>
        </return-value>
      </constructor>
      <method name="add_filename"
              c:identifier="dzl_menu_manager_add_filename"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuManager" c:type="DzlMenuManager*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_resource"
              c:identifier="dzl_menu_manager_add_resource"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuManager" c:type="DzlMenuManager*"/>
          </instance-parameter>
          <parameter name="resource" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_menu_by_id"
              c:identifier="dzl_menu_manager_get_menu_by_id">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GMenu.</doc>
          <type name="Gio.Menu" c:type="GMenu*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuManager" c:type="DzlMenuManager*"/>
          </instance-parameter>
          <parameter name="menu_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge" c:identifier="dzl_menu_manager_merge">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MenuManager" c:type="DzlMenuManager*"/>
          </instance-parameter>
          <parameter name="menu_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove"
              c:identifier="dzl_menu_manager_remove"
              version="3.26">
        <doc xml:space="preserve">This removes items from menus that were added as part of a previous
menu merge. Use the value returned from dzl_menu_manager_merge() as
the @merge_id.</doc>
        <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">a #DzlMenuManager</doc>
            <type name="MenuManager" c:type="DzlMenuManager*"/>
          </instance-parameter>
          <parameter name="merge_id" transfer-ownership="none">
            <doc xml:space="preserve">A previously registered merge id</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="MenuManagerClass"
            c:type="DzlMenuManagerClass"
            glib:is-gtype-struct-for="MenuManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="MultiPaned"
           c:symbol-prefix="multi_paned"
           c:type="DzlMultiPaned"
           parent="Gtk.Container"
           glib:type-name="DzlMultiPaned"
           glib:get-type="dzl_multi_paned_get_type"
           glib:type-struct="MultiPanedClass">
      <doc xml:space="preserve">This widget is similar to #GtkPaned except that it allows adding more than
two children to the widget. For each additional child added to the
#DzlMultiPaned, an additional resize grip is added.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_multi_paned_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="resize_drag_begin">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MultiPaned" c:type="DzlMultiPaned*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="resize_drag_end">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MultiPaned" c:type="DzlMultiPaned*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_at_point"
              c:identifier="dzl_multi_paned_get_at_point"
              version="3.28">
        <doc xml:space="preserve">Locates the widget at position x,y within widget.

@x and @y should be relative to @self.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a #GtkWidget or %NULL</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlMultiPaned</doc>
            <type name="MultiPaned" c:type="DzlMultiPaned*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">x coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_children"
              c:identifier="dzl_multi_paned_get_n_children">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MultiPaned" c:type="DzlMultiPaned*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_child"
              c:identifier="dzl_multi_paned_get_nth_child">
        <doc xml:space="preserve">Gets the @nth child of the #DzlMultiPaned.

It is an error to call this function with a value &gt;= the result of
dzl_multi_paned_get_nth_child().

The index starts from 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlMultiPaned</doc>
            <type name="MultiPaned" c:type="DzlMultiPaned*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="orientation" writable="1" transfer-ownership="none">
        <type name="Gtk.Orientation"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
      <glib:signal name="resize-drag-begin" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="resize-drag-end" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MultiPanedClass"
            c:type="DzlMultiPanedClass"
            glib:is-gtype-struct-for="MultiPaned">
      <field name="parent">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="resize_drag_begin">
        <callback name="resize_drag_begin">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="MultiPaned" c:type="DzlMultiPaned*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="resize_drag_end">
        <callback name="resize_drag_end">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="MultiPaned" c:type="DzlMultiPaned*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="Path"
           c:symbol-prefix="path"
           c:type="DzlPath"
           parent="GObject.Object"
           glib:type-name="DzlPath"
           glib:get-type="dzl_path_get_type"
           glib:type-struct="PathClass">
      <constructor name="new" c:identifier="dzl_path_new">
        <return-value transfer-ownership="full">
          <type name="Path" c:type="DzlPath*"/>
        </return-value>
      </constructor>
      <method name="append" c:identifier="dzl_path_append">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="PathElement" c:type="DzlPathElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_element" c:identifier="dzl_path_get_element">
        <doc xml:space="preserve">Gets the path element found at @index.

Indexes start from zero.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlPathElement.</doc>
          <type name="PathElement" c:type="DzlPathElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_elements" c:identifier="dzl_path_get_elements">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The elements of the path.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PathElement"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_length" c:identifier="dzl_path_get_length">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_prefix" c:identifier="dzl_path_has_prefix">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_empty" c:identifier="dzl_path_is_empty">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="dzl_path_prepend">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
          <parameter name="element" transfer-ownership="none">
            <type name="PathElement" c:type="DzlPathElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="printf" c:identifier="dzl_path_printf">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <class name="PathBar"
           c:symbol-prefix="path_bar"
           c:type="DzlPathBar"
           parent="Gtk.Box"
           glib:type-name="DzlPathBar"
           glib:get-type="dzl_path_bar_get_type"
           glib:type-struct="PathBarClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_path_bar_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_path" c:identifier="dzl_path_bar_get_path">
        <doc xml:space="preserve">Gets the path for the view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlPath.</doc>
          <type name="Path" c:type="DzlPath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PathBar" c:type="DzlPathBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_path" c:identifier="dzl_path_bar_set_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PathBar" c:type="DzlPathBar*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="Path" c:type="DzlPath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selected_index"
              c:identifier="dzl_path_bar_set_selected_index">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PathBar" c:type="DzlPathBar*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="path" writable="1" transfer-ownership="none">
        <type name="Path"/>
      </property>
      <glib:signal name="element-selected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Path"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="PathElement"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="populate-menu" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Path"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="PathElement"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Gio.Menu"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PathBarClass"
            c:type="DzlPathBarClass"
            glib:is-gtype-struct-for="PathBar">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
    </record>
    <record name="PathClass"
            c:type="DzlPathClass"
            glib:is-gtype-struct-for="Path">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="PathElement"
           c:symbol-prefix="path_element"
           c:type="DzlPathElement"
           parent="GObject.Object"
           glib:type-name="DzlPathElement"
           glib:get-type="dzl_path_element_get_type"
           glib:type-struct="PathElementClass">
      <constructor name="new"
                   c:identifier="dzl_path_element_new"
                   version="3.26">
        <doc xml:space="preserve">Creates a new path element for an #DzlPath.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #DzlPathElement</doc>
          <type name="PathElement" c:type="DzlPathElement*"/>
        </return-value>
        <parameters>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An id for the path element.</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">An optional icon name for the element</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">The title of the element.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_icon_name"
              c:identifier="dzl_path_element_get_icon_name"
              version="3.26">
        <doc xml:space="preserve">Gets the #DzlPathElement:icon-name property. This is used by the
path bar to display an icon next to the element of the path.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The icon-name for the #DzlPathElement.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlPathElement</doc>
            <type name="PathElement" c:type="DzlPathElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="dzl_path_element_get_id"
              version="3.26">
        <doc xml:space="preserve">Gets the id for the element. Generally, a path is built of
multiple elements and each element should have an id that
is useful to the application that it using it. You might store
the name of a directory, or some other key as the id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The id for the #DzlPathElement.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlPathElement</doc>
            <type name="PathElement" c:type="DzlPathElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="dzl_path_element_get_title"
              version="3.26">
        <doc xml:space="preserve">Gets the #DzlPathElement:title property. This is used by the
path bar to display text representing the element of the path.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The title for the #DzlPathElement.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlPathElement</doc>
            <type name="PathElement" c:type="DzlPathElement*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="icon-name"
                version="3.26"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The icon-name of the icon to display next to the path element
in the path bar. Set to %NULL for no icon.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id"
                version="3.26"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The id property is an application specific identifier for the
element within the path.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                version="3.26"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The title property should contain the display text that should
be shown to represent the element in the #DzlPathBar.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="PathElementClass"
            c:type="DzlPathElementClass"
            glib:is-gtype-struct-for="PathElement">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="PatternSpec"
            c:type="DzlPatternSpec"
            glib:type-name="DzlPatternSpec"
            glib:get-type="dzl_pattern_spec_get_type"
            c:symbol-prefix="pattern_spec">
      <constructor name="new" c:identifier="dzl_pattern_spec_new">
        <return-value transfer-ownership="full">
          <type name="PatternSpec" c:type="DzlPatternSpec*"/>
        </return-value>
        <parameters>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_text" c:identifier="dzl_pattern_spec_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="dzl_pattern_spec_match">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </instance-parameter>
          <parameter name="haystack" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dzl_pattern_spec_ref">
        <return-value transfer-ownership="full">
          <type name="PatternSpec" c:type="DzlPatternSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dzl_pattern_spec_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="PillBox"
           c:symbol-prefix="pill_box"
           c:type="DzlPillBox"
           parent="Gtk.EventBox"
           glib:type-name="DzlPillBox"
           glib:get-type="dzl_pill_box_get_type"
           glib:type-struct="PillBoxClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_pill_box_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_label" c:identifier="dzl_pill_box_get_label">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PillBox" c:type="DzlPillBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="dzl_pill_box_set_label">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PillBox" c:type="DzlPillBox*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="PillBoxClass"
            c:type="DzlPillBoxClass"
            glib:is-gtype-struct-for="PillBox">
      <field name="parent_class">
        <type name="Gtk.EventBoxClass" c:type="GtkEventBoxClass"/>
      </field>
    </record>
    <interface name="Preferences"
               c:symbol-prefix="preferences"
               c:type="DzlPreferences"
               glib:type-name="DzlPreferences"
               glib:get-type="dzl_preferences_get_type"
               glib:type-struct="PreferencesInterface">
      <virtual-method name="add_custom" invoker="add_custom">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="keywords"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Optional keywords for search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_file_chooser" invoker="add_file_chooser">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Gtk.FileChooserAction" c:type="GtkFileChooserAction"/>
          </parameter>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_font_button" invoker="add_font_button">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_group" invoker="add_group">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_list_group" invoker="add_list_group">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="Gtk.SelectionMode" c:type="GtkSelectionMode"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_page" invoker="add_page">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_radio" invoker="add_radio">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="variant_string"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional gvariant string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional subtitle</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Optional keywords for search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_spin_button" invoker="add_spin_button">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_switch" invoker="add_switch">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="variant_string"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional gvariant string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional subtitle</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Optional keywords for search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_widget" invoker="get_widget">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="widget_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_id" invoker="remove_id">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="widget_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_page" invoker="set_page">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="map" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_custom" c:identifier="dzl_preferences_add_custom">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="keywords"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Optional keywords for search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_file_chooser"
              c:identifier="dzl_preferences_add_file_chooser">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Gtk.FileChooserAction" c:type="GtkFileChooserAction"/>
          </parameter>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_font_button"
              c:identifier="dzl_preferences_add_font_button">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_group" c:identifier="dzl_preferences_add_group">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_list_group"
              c:identifier="dzl_preferences_add_list_group">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="Gtk.SelectionMode" c:type="GtkSelectionMode"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_page" c:identifier="dzl_preferences_add_page">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_radio" c:identifier="dzl_preferences_add_radio">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="variant_string"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional gvariant string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional subtitle</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Optional keywords for search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_spin_button"
              c:identifier="dzl_preferences_add_spin_button">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_switch" c:identifier="dzl_preferences_add_switch">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="variant_string"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional gvariant string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An optional subtitle</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keywords"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Optional keywords for search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_widget" c:identifier="dzl_preferences_get_widget">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="widget_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_id" c:identifier="dzl_preferences_remove_id">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="widget_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_page" c:identifier="dzl_preferences_set_page">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Preferences" c:type="DzlPreferences*"/>
          </instance-parameter>
          <parameter name="page_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="map" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
    </interface>
    <class name="PreferencesBin"
           c:symbol-prefix="preferences_bin"
           c:type="DzlPreferencesBin"
           parent="Gtk.Bin"
           glib:type-name="DzlPreferencesBin"
           glib:get-type="dzl_preferences_bin_get_type"
           glib:type-struct="PreferencesBinClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <virtual-method name="connect">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesBin" c:type="DzlPreferencesBin*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disconnect">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesBin" c:type="DzlPreferencesBin*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="matches">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesBin" c:type="DzlPreferencesBin*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <property name="keywords"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="priority"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="schema-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <glib:signal name="preference-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="PreferencesBinClass"
            c:type="DzlPreferencesBinClass"
            glib:is-gtype-struct-for="PreferencesBin">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="connect">
        <callback name="connect">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="PreferencesBin" c:type="DzlPreferencesBin*"/>
            </parameter>
            <parameter name="settings" transfer-ownership="none">
              <type name="Gio.Settings" c:type="GSettings*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disconnect">
        <callback name="disconnect">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="PreferencesBin" c:type="DzlPreferencesBin*"/>
            </parameter>
            <parameter name="settings" transfer-ownership="none">
              <type name="Gio.Settings" c:type="GSettings*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="matches">
        <callback name="matches">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="PreferencesBin" c:type="DzlPreferencesBin*"/>
            </parameter>
            <parameter name="spec" transfer-ownership="none">
              <type name="PatternSpec" c:type="DzlPatternSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="PreferencesEntry"
           c:symbol-prefix="preferences_entry"
           c:type="DzlPreferencesEntry"
           parent="PreferencesBin"
           glib:type-name="DzlPreferencesEntry"
           glib:get-type="dzl_preferences_entry_get_type"
           glib:type-struct="PreferencesEntryClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <method name="get_entry_widget"
              c:identifier="dzl_preferences_entry_get_entry_widget">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesEntry" c:type="DzlPreferencesEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title_widget"
              c:identifier="dzl_preferences_entry_get_title_widget">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesEntry" c:type="DzlPreferencesEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="text" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="PreferencesBin" c:type="DzlPreferencesBin"/>
      </field>
      <glib:signal name="activate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PreferencesEntryClass"
            c:type="DzlPreferencesEntryClass"
            glib:is-gtype-struct-for="PreferencesEntry">
      <field name="parent_class">
        <type name="PreferencesBinClass" c:type="DzlPreferencesBinClass"/>
      </field>
    </record>
    <class name="PreferencesFileChooserButton"
           c:symbol-prefix="preferences_file_chooser_button"
           c:type="DzlPreferencesFileChooserButton"
           parent="PreferencesBin"
           glib:type-name="DzlPreferencesFileChooserButton"
           glib:get-type="dzl_preferences_file_chooser_button_get_type"
           glib:type-struct="PreferencesFileChooserButtonClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <property name="action"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.FileChooserAction"/>
      </property>
      <property name="key"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="PreferencesFileChooserButtonClass"
            c:type="DzlPreferencesFileChooserButtonClass"
            glib:is-gtype-struct-for="PreferencesFileChooserButton">
      <field name="parent_class">
        <type name="PreferencesBinClass" c:type="DzlPreferencesBinClass"/>
      </field>
    </record>
    <class name="PreferencesFlowBox"
           c:symbol-prefix="preferences_flow_box"
           c:type="DzlPreferencesFlowBox"
           parent="ColumnLayout"
           glib:type-name="DzlPreferencesFlowBox"
           glib:get-type="dzl_preferences_flow_box_get_type"
           glib:type-struct="PreferencesFlowBoxClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_preferences_flow_box_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
    </class>
    <record name="PreferencesFlowBoxClass"
            c:type="DzlPreferencesFlowBoxClass"
            glib:is-gtype-struct-for="PreferencesFlowBox">
      <field name="parent_class">
        <type name="ColumnLayoutClass" c:type="DzlColumnLayoutClass"/>
      </field>
    </record>
    <class name="PreferencesFontButton"
           c:symbol-prefix="preferences_font_button"
           c:type="DzlPreferencesFontButton"
           parent="PreferencesBin"
           glib:type-name="DzlPreferencesFontButton"
           glib:get-type="dzl_preferences_font_button_get_type"
           glib:type-struct="PreferencesFontButtonClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <property name="key"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="activate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="PreferencesFontButtonClass"
            c:type="DzlPreferencesFontButtonClass"
            glib:is-gtype-struct-for="PreferencesFontButton">
      <field name="parent_class">
        <type name="PreferencesBinClass" c:type="DzlPreferencesBinClass"/>
      </field>
    </record>
    <class name="PreferencesGroup"
           c:symbol-prefix="preferences_group"
           c:type="DzlPreferencesGroup"
           parent="Gtk.Bin"
           glib:type-name="DzlPreferencesGroup"
           glib:get-type="dzl_preferences_group_get_type"
           glib:type-struct="PreferencesGroupClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <method name="add" c:identifier="dzl_preferences_group_add">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="dzl_preferences_group_get_priority">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_preferences_group_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="refilter" c:identifier="dzl_preferences_group_refilter">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_map" c:identifier="dzl_preferences_group_set_map">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
          </instance-parameter>
          <parameter name="map" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="is-list"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mode" writable="1" transfer-ownership="none">
        <type name="Gtk.SelectionMode"/>
      </property>
      <property name="priority"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="PreferencesGroupClass"
            c:type="DzlPreferencesGroupClass"
            glib:is-gtype-struct-for="PreferencesGroup">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <record name="PreferencesInterface"
            c:type="DzlPreferencesInterface"
            glib:is-gtype-struct-for="Preferences">
      <field name="parent_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="set_page">
        <callback name="set_page">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="map" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_page">
        <callback name="add_page">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_group">
        <callback name="add_group">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_list_group">
        <callback name="add_list_group">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <type name="Gtk.SelectionMode" c:type="GtkSelectionMode"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_radio">
        <callback name="add_radio">
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="schema_id" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="path"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional path</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="variant_string"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional gvariant string</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional title</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="subtitle"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional subtitle</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="keywords"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">Optional keywords for search</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_font_button">
        <callback name="add_font_button">
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="schema_id" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="keywords" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_switch">
        <callback name="add_switch">
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="schema_id" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="path"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional path</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="variant_string"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional gvariant string</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional title</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="subtitle"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">An optional subtitle</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="keywords"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">Optional keywords for search</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_spin_button">
        <callback name="add_spin_button">
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="schema_id" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="subtitle" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="keywords" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_file_chooser">
        <callback name="add_file_chooser">
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="schema_id" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="subtitle" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Gtk.FileChooserAction"
                    c:type="GtkFileChooserAction"/>
            </parameter>
            <parameter name="keywords" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_custom">
        <callback name="add_custom">
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="page_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="group_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="keywords"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">Optional keywords for search</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="priority" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_id">
        <callback name="remove_id">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="widget_id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_widget">
        <callback name="get_widget">
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Preferences" c:type="DzlPreferences*"/>
            </parameter>
            <parameter name="widget_id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="PreferencesPage"
           c:symbol-prefix="preferences_page"
           c:type="DzlPreferencesPage"
           parent="Gtk.Bin"
           glib:type-name="DzlPreferencesPage"
           glib:get-type="dzl_preferences_page_get_type"
           glib:type-struct="PreferencesPageClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <method name="add_group" c:identifier="dzl_preferences_page_add_group">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesPage" c:type="DzlPreferencesPage*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_group" c:identifier="dzl_preferences_page_get_group">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlPreferencesGroup or %NULL.</doc>
          <type name="PreferencesGroup" c:type="DzlPreferencesGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesPage" c:type="DzlPreferencesPage*"/>
          </instance-parameter>
          <parameter name="group_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refilter" c:identifier="dzl_preferences_page_refilter">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesPage" c:type="DzlPreferencesPage*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <type name="PatternSpec" c:type="DzlPatternSpec*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_map" c:identifier="dzl_preferences_page_set_map">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesPage" c:type="DzlPreferencesPage*"/>
          </instance-parameter>
          <parameter name="map" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="priority" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="PreferencesPageClass"
            c:type="DzlPreferencesPageClass"
            glib:is-gtype-struct-for="PreferencesPage">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <class name="PreferencesSpinButton"
           c:symbol-prefix="preferences_spin_button"
           c:type="DzlPreferencesSpinButton"
           parent="PreferencesBin"
           glib:type-name="DzlPreferencesSpinButton"
           glib:get-type="dzl_preferences_spin_button_get_type"
           glib:type-struct="PreferencesSpinButtonClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <method name="get_spin_button"
              c:identifier="dzl_preferences_spin_button_get_spin_button">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The actual spin button widget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesSpinButton"
                  c:type="DzlPreferencesSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="key"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="activate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="PreferencesSpinButtonClass"
            c:type="DzlPreferencesSpinButtonClass"
            glib:is-gtype-struct-for="PreferencesSpinButton">
      <field name="parent_class">
        <type name="PreferencesBinClass" c:type="DzlPreferencesBinClass"/>
      </field>
    </record>
    <class name="PreferencesSwitch"
           c:symbol-prefix="preferences_switch"
           c:type="DzlPreferencesSwitch"
           parent="PreferencesBin"
           glib:type-name="DzlPreferencesSwitch"
           glib:get-type="dzl_preferences_switch_get_type"
           glib:type-struct="PreferencesSwitchClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <property name="is-radio"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="key"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="target"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.Variant"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="PreferencesSwitchClass"
            c:type="DzlPreferencesSwitchClass"
            glib:is-gtype-struct-for="PreferencesSwitch">
      <field name="parent_class">
        <type name="PreferencesBinClass" c:type="DzlPreferencesBinClass"/>
      </field>
    </record>
    <class name="PreferencesView"
           c:symbol-prefix="preferences_view"
           c:type="DzlPreferencesView"
           parent="Gtk.Bin"
           glib:type-name="DzlPreferencesView"
           glib:get-type="dzl_preferences_view_get_type"
           glib:type-struct="PreferencesViewClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Preferences"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_preferences_view_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="reapply_filter"
              c:identifier="dzl_preferences_view_reapply_filter">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PreferencesView" c:type="DzlPreferencesView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
    </class>
    <record name="PreferencesViewClass"
            c:type="DzlPreferencesViewClass"
            glib:is-gtype-struct-for="PreferencesView">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="PriorityBox"
           c:symbol-prefix="priority_box"
           c:type="DzlPriorityBox"
           parent="Gtk.Box"
           glib:type-name="DzlPriorityBox"
           glib:get-type="dzl_priority_box_get_type"
           glib:type-struct="PriorityBoxClass">
      <doc xml:space="preserve">This is like a #GtkBox but uses stable priorities to sort.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_priority_box_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </field>
    </class>
    <record name="PriorityBoxClass"
            c:type="DzlPriorityBoxClass"
            glib:is-gtype-struct-for="PriorityBox">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="ProgressButton"
           c:symbol-prefix="progress_button"
           c:type="DzlProgressButton"
           parent="Gtk.Button"
           glib:type-name="DzlProgressButton"
           glib:get-type="dzl_progress_button_get_type"
           glib:type-struct="ProgressButtonClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Activatable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_progress_button_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_progress"
              c:identifier="dzl_progress_button_get_progress">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProgressButton" c:type="DzlProgressButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_progress"
              c:identifier="dzl_progress_button_get_show_progress">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProgressButton" c:type="DzlProgressButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_progress"
              c:identifier="dzl_progress_button_set_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="ProgressButton" c:type="DzlProgressButton*"/>
          </instance-parameter>
          <parameter name="percentage" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_progress"
              c:identifier="dzl_progress_button_set_show_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="ProgressButton" c:type="DzlProgressButton*"/>
          </instance-parameter>
          <parameter name="show_progress" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="progress" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="show-progress" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Button" c:type="GtkButton"/>
      </field>
    </class>
    <record name="ProgressButtonClass"
            c:type="DzlProgressButtonClass"
            glib:is-gtype-struct-for="ProgressButton">
      <field name="parent_class">
        <type name="Gtk.ButtonClass" c:type="GtkButtonClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="ProgressIcon"
           c:symbol-prefix="progress_icon"
           c:type="DzlProgressIcon"
           parent="Gtk.DrawingArea"
           glib:type-name="DzlProgressIcon"
           glib:get-type="dzl_progress_icon_get_type"
           glib:type-struct="ProgressIconClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_progress_icon_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_progress"
              c:identifier="dzl_progress_icon_get_progress">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProgressIcon" c:type="DzlProgressIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_progress"
              c:identifier="dzl_progress_icon_set_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProgressIcon" c:type="DzlProgressIcon*"/>
          </instance-parameter>
          <parameter name="progress" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="progress" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="ProgressIconClass"
            c:type="DzlProgressIconClass"
            glib:is-gtype-struct-for="ProgressIcon">
      <field name="parent_class">
        <type name="Gtk.DrawingAreaClass" c:type="GtkDrawingAreaClass"/>
      </field>
    </record>
    <class name="ProgressMenuButton"
           c:symbol-prefix="progress_menu_button"
           c:type="DzlProgressMenuButton"
           parent="Gtk.MenuButton"
           glib:type-name="DzlProgressMenuButton"
           glib:get-type="dzl_progress_menu_button_get_type"
           glib:type-struct="ProgressMenuButtonClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Activatable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_progress_menu_button_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_progress"
              c:identifier="dzl_progress_menu_button_get_progress">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="ProgressMenuButton" c:type="DzlProgressMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_theatric"
              c:identifier="dzl_progress_menu_button_get_show_theatric">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProgressMenuButton" c:type="DzlProgressMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reset_theatrics"
              c:identifier="dzl_progress_menu_button_reset_theatrics">
        <doc xml:space="preserve">To avoid suprious animations from the button, you must call this function any
time you want to allow animations to continue. This is because animations are
automatically started upon reaching a progress of 1.0.

If you are performing operations in the background, calling this function
every time you add an operation is a good strategry.</doc>
        <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">a #DzlProgressMenuButton</doc>
            <type name="ProgressMenuButton" c:type="DzlProgressMenuButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_progress"
              c:identifier="dzl_progress_menu_button_set_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="ProgressMenuButton" c:type="DzlProgressMenuButton*"/>
          </instance-parameter>
          <parameter name="progress" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_theatric"
              c:identifier="dzl_progress_menu_button_set_show_theatric">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProgressMenuButton" c:type="DzlProgressMenuButton*"/>
          </instance-parameter>
          <parameter name="show_theatic" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="progress" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="show-theatric" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="theatric-icon-name"
                writable="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="transition-duration"
                writable="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.MenuButton" c:type="GtkMenuButton"/>
      </field>
    </class>
    <record name="ProgressMenuButtonClass"
            c:type="DzlProgressMenuButtonClass"
            glib:is-gtype-struct-for="ProgressMenuButton">
      <field name="parent_class">
        <type name="Gtk.MenuButtonClass" c:type="GtkMenuButtonClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <bitfield name="PropertiesFlags" c:type="DzlPropertiesFlags">
      <member name="none" value="0" c:identifier="DZL_PROPERTIES_FLAGS_NONE">
      </member>
      <member name="stateful_booleans"
              value="1"
              c:identifier="DZL_PROPERTIES_FLAGS_STATEFUL_BOOLEANS">
      </member>
    </bitfield>
    <class name="PropertiesGroup"
           c:symbol-prefix="properties_group"
           c:type="DzlPropertiesGroup"
           parent="GObject.Object"
           glib:type-name="DzlPropertiesGroup"
           glib:get-type="dzl_properties_group_get_type"
           glib:type-struct="PropertiesGroupClass">
      <implements name="Gio.ActionGroup"/>
      <constructor name="new"
                   c:identifier="dzl_properties_group_new"
                   version="3.26">
        <doc xml:space="preserve">This creates a new #DzlPropertiesGroup to create stateful actions
around properties in @object.

Call dzl_properties_group_add_property() to add a property to
action name mapping for this group. Until you've called this,
no actions are mapped.

Note that #DzlPropertiesGroup only holds a weak reference to
@object and therefore you must keep @object alive elsewhere.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #DzlPropertiesGroup</doc>
          <type name="PropertiesGroup" c:type="DzlPropertiesGroup*"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The object containing the properties</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_type"
                   c:identifier="dzl_properties_group_new_for_type">
        <doc xml:space="preserve">This creates a new #DzlPropertiesGroup for which the initial object is
%NULL.

Set @object_type to a type of a class which is a #GObject-based type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlPropertiesGroup.</doc>
          <type name="PropertiesGroup" c:type="DzlPropertiesGroup*"/>
        </return-value>
        <parameters>
          <parameter name="object_type" transfer-ownership="none">
            <doc xml:space="preserve">A #GObjectClass based type</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_all_properties"
              c:identifier="dzl_properties_group_add_all_properties"
              version="3.26">
        <doc xml:space="preserve">This function will try to add all properties found on the target
instance to the group. Only properties that are supported by the
#DzlPropertiesGroup will be added.

The action name of all added properties will be identical to their
property name.</doc>
        <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">A #DzlPropertiesGroup</doc>
            <type name="PropertiesGroup" c:type="DzlPropertiesGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_property"
              c:identifier="dzl_properties_group_add_property"
              version="3.26">
        <doc xml:space="preserve">Adds a new stateful action named @name which maps to the underlying
property @property_name of #DzlPropertiesGroup:object.</doc>
        <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">a #DzlPropertiesGroup</doc>
            <type name="PropertiesGroup" c:type="DzlPropertiesGroup*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the action</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_property_full"
              c:identifier="dzl_properties_group_add_property_full"
              version="3.26">
        <doc xml:space="preserve">Adds a new stateful action named @name which maps to the underlying
property @property_name of #DzlPropertiesGroup:object.

Seting @flags allows you to tweak some settings about the action.</doc>
        <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">a #DzlPropertiesGroup</doc>
            <type name="PropertiesGroup" c:type="DzlPropertiesGroup*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the action</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">optional flags for the action</doc>
            <type name="PropertiesFlags" c:type="DzlPropertiesFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove"
              c:identifier="dzl_properties_group_remove"
              version="3.26">
        <doc xml:space="preserve">Removes an action from @self that was previously added with
dzl_properties_group_add_property(). @name should match the
name parameter to that function.</doc>
        <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">a #DzlPropertiesGroup</doc>
            <type name="PropertiesGroup" c:type="DzlPropertiesGroup*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the action</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="object" writable="1" transfer-ownership="none">
        <type name="GObject.Object"/>
      </property>
      <property name="object-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </property>
    </class>
    <record name="PropertiesGroupClass"
            c:type="DzlPropertiesGroupClass"
            glib:is-gtype-struct-for="PropertiesGroup">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="RadioBox"
           c:symbol-prefix="radio_box"
           c:type="DzlRadioBox"
           parent="Gtk.Bin"
           glib:type-name="DzlRadioBox"
           glib:get-type="dzl_radio_box_get_type"
           glib:type-struct="RadioBoxClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_radio_box_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="add_item" c:identifier="dzl_radio_box_add_item">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RadioBox" c:type="DzlRadioBox*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_active_id" c:identifier="dzl_radio_box_get_active_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RadioBox" c:type="DzlRadioBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active_id" c:identifier="dzl_radio_box_set_active_id">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RadioBox" c:type="DzlRadioBox*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="active-id" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="has-more" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-more" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="RadioBoxClass"
            c:type="DzlRadioBoxClass"
            glib:is-gtype-struct-for="RadioBox">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="_padding1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_padding2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_padding3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_padding4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="RecursiveFileMonitor"
           c:symbol-prefix="recursive_file_monitor"
           c:type="DzlRecursiveFileMonitor"
           parent="GObject.Object"
           glib:type-name="DzlRecursiveFileMonitor"
           glib:get-type="dzl_recursive_file_monitor_get_type"
           glib:type-struct="RecursiveFileMonitorClass">
      <constructor name="new" c:identifier="dzl_recursive_file_monitor_new">
        <return-value transfer-ownership="full">
          <type name="RecursiveFileMonitor" c:type="DzlRecursiveFileMonitor*"/>
        </return-value>
        <parameters>
          <parameter name="root" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="cancel"
              c:identifier="dzl_recursive_file_monitor_cancel"
              version="3.28">
        <doc xml:space="preserve">Cancels the recursive file monitor.</doc>
        <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">a #DzlRecursiveFileMonitor</doc>
            <type name="RecursiveFileMonitor"
                  c:type="DzlRecursiveFileMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root"
              c:identifier="dzl_recursive_file_monitor_get_root"
              version="3.28">
        <doc xml:space="preserve">Gets the root directory used forthe file monitor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GFile</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlRecursiveFileMonitor</doc>
            <type name="RecursiveFileMonitor"
                  c:type="DzlRecursiveFileMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_ignore_func"
              c:identifier="dzl_recursive_file_monitor_set_ignore_func"
              version="3.28">
        <doc xml:space="preserve">Sets a callback function to determine if a #GFile should be ignored
from signal emission.

@ignore_func will always be called from the applications main thread.

If @ignore_func is %NULL, it is set to the default which does not
ignore any files or directories.</doc>
        <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">a #DzlRecursiveFileMonitor</doc>
            <type name="RecursiveFileMonitor"
                  c:type="DzlRecursiveFileMonitor*"/>
          </instance-parameter>
          <parameter name="ignore_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve">a #DzlRecursiveIgnoreFunc</doc>
            <type name="RecursiveIgnoreFunc" c:type="DzlRecursiveIgnoreFunc"/>
          </parameter>
          <parameter name="ignore_func_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">closure data for @ignore_func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="ignore_func_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">destroy notify for @ignore_func_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_async"
              c:identifier="dzl_recursive_file_monitor_start_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RecursiveFileMonitor"
                  c:type="DzlRecursiveFileMonitor*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_finish"
              c:identifier="dzl_recursive_file_monitor_start_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RecursiveFileMonitor"
                  c:type="DzlRecursiveFileMonitor*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="root"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <glib:signal name="changed" when="last" version="3.28">
        <doc xml:space="preserve">This event is similar to #GFileMonitor::changed but can be fired from
any of the monitored directories in the recursive mount.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile</doc>
            <type name="Gio.File"/>
          </parameter>
          <parameter name="other_file"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GFile for the other file when applicable</doc>
            <type name="Gio.File"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">the #GFileMonitorEvent event</doc>
            <type name="Gio.FileMonitorEvent"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RecursiveFileMonitorClass"
            c:type="DzlRecursiveFileMonitorClass"
            glib:is-gtype-struct-for="RecursiveFileMonitor">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="RecursiveIgnoreFunc" c:type="DzlRecursiveIgnoreFunc">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="Ring"
            c:type="DzlRing"
            glib:type-name="DzlRing"
            glib:get-type="dzl_ring_get_type"
            c:symbol-prefix="ring">
      <field name="data" writable="1">
        <type name="guint8" c:type="guint8*"/>
      </field>
      <field name="len" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pos" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <constructor name="sized_new" c:identifier="dzl_ring_sized_new">
        <doc xml:space="preserve">Creates a new instance of #DzlRing with the given number of elements.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #DzlRing.</doc>
          <type name="Ring" c:type="DzlRing*"/>
        </return-value>
        <parameters>
          <parameter name="element_size" transfer-ownership="none">
            <doc xml:space="preserve">The size per element.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="reserved_size" transfer-ownership="none">
            <doc xml:space="preserve">The number of elements to allocate.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="element_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">Notification called when removing an element.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_vals" c:identifier="dzl_ring_append_vals">
        <doc xml:space="preserve">Appends @len values located at @data.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the index of the first item.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="ring" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlRing.</doc>
            <type name="Ring" c:type="DzlRing*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A pointer to the array of values.</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve">The number of values.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="dzl_ring_foreach">
        <doc xml:space="preserve">Calls @func for every item in the #DzlRing starting from the most recently
inserted element to the least recently inserted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ring" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlRing.</doc>
            <type name="Ring" c:type="DzlRing*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">A #GFunc to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dzl_ring_ref">
        <doc xml:space="preserve">Atomically increments the reference count of @ring by one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The @ring pointer.</doc>
          <type name="Ring" c:type="DzlRing*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ring" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlRing.</doc>
            <type name="Ring" c:type="DzlRing*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dzl_ring_unref">
        <doc xml:space="preserve">Atomically decrements the reference count of @ring by one.  When the
reference count reaches zero, the structure is freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ring" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlRing.</doc>
            <type name="Ring" c:type="DzlRing*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="ScrolledWindow"
           c:symbol-prefix="scrolled_window"
           c:type="DzlScrolledWindow"
           parent="Gtk.ScrolledWindow"
           glib:type-name="DzlScrolledWindow"
           glib:get-type="dzl_scrolled_window_get_type"
           glib:type-struct="ScrolledWindowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
    </class>
    <record name="ScrolledWindowClass"
            c:type="DzlScrolledWindowClass"
            glib:is-gtype-struct-for="ScrolledWindow">
      <field name="parent_class">
        <type name="Gtk.ScrolledWindowClass" c:type="GtkScrolledWindowClass"/>
      </field>
    </record>
    <class name="SearchBar"
           c:symbol-prefix="search_bar"
           c:type="DzlSearchBar"
           parent="Gtk.Bin"
           glib:type-name="DzlSearchBar"
           glib:get-type="dzl_search_bar_get_type"
           glib:type-struct="SearchBarClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_search_bar_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_entry" c:identifier="dzl_search_bar_get_entry">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkSearchEntry.</doc>
          <type name="Gtk.SearchEntry" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchBar" c:type="DzlSearchBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_mode_enabled"
              c:identifier="dzl_search_bar_get_search_mode_enabled">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchBar" c:type="DzlSearchBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_close_button"
              c:identifier="dzl_search_bar_get_show_close_button">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchBar" c:type="DzlSearchBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_search_mode_enabled"
              c:identifier="dzl_search_bar_set_search_mode_enabled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchBar" c:type="DzlSearchBar*"/>
          </instance-parameter>
          <parameter name="search_mode_enabled" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_close_button"
              c:identifier="dzl_search_bar_set_show_close_button">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchBar" c:type="DzlSearchBar*"/>
          </instance-parameter>
          <parameter name="show_close_button" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="search-mode-enabled"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-close-button"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <glib:signal name="activate" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="reveal" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SearchBarClass"
            c:type="DzlSearchBarClass"
            glib:is-gtype-struct-for="SearchBar">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <class name="SettingsFlagAction"
           c:symbol-prefix="settings_flag_action"
           c:type="DzlSettingsFlagAction"
           parent="GObject.Object"
           glib:type-name="DzlSettingsFlagAction"
           glib:get-type="dzl_settings_flag_action_get_type"
           glib:type-struct="SettingsFlagActionClass">
      <implements name="Gio.Action"/>
      <function name="new" c:identifier="dzl_settings_flag_action_new">
        <doc xml:space="preserve">This creates a new action that can be used to toggle an individual flag in
a #GSettings key which is of a flags type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GAction.</doc>
          <type name="Gio.Action" c:type="GAction*"/>
        </return-value>
        <parameters>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="schema_key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flag_nick" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <property name="flag-nick"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="schema-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="schema-key" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="SettingsFlagActionClass"
            c:type="DzlSettingsFlagActionClass"
            glib:is-gtype-struct-for="SettingsFlagAction">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SettingsSandwich"
           c:symbol-prefix="settings_sandwich"
           c:type="DzlSettingsSandwich"
           parent="GObject.Object"
           glib:type-name="DzlSettingsSandwich"
           glib:get-type="dzl_settings_sandwich_get_type"
           glib:type-struct="SettingsSandwichClass">
      <constructor name="new" c:identifier="dzl_settings_sandwich_new">
        <return-value transfer-ownership="full">
          <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
        </return-value>
        <parameters>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append" c:identifier="dzl_settings_sandwich_append">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
        </parameters>
      </method>
      <method name="bind" c:identifier="dzl_settings_sandwich_bind">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="Gio.SettingsBindFlags" c:type="GSettingsBindFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="bind_with_mapping"
              c:identifier="dzl_settings_sandwich_bind_with_mapping">
        <doc xml:space="preserve">Creates a new binding similar to g_settings_bind_with_mapping() but applying
from the resolved value via the settings sandwich.</doc>
        <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">An #DzlSettingsSandwich.</doc>
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">the settings key to bind.
@object (type GObject.Object): the target object.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve">the property on @object to apply.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for the binding.</doc>
            <type name="Gio.SettingsBindFlags" c:type="GSettingsBindFlags"/>
          </parameter>
          <parameter name="get_mapping"
                     transfer-ownership="none"
                     scope="notified"
                     closure="6"
                     destroy="7">
            <doc xml:space="preserve">the get mapping function</doc>
            <type name="Gio.SettingsBindGetMapping"
                  c:type="GSettingsBindGetMapping"/>
          </parameter>
          <parameter name="set_mapping"
                     transfer-ownership="none"
                     scope="notified"
                     closure="6"
                     destroy="7">
            <doc xml:space="preserve">the set mapping function</doc>
            <type name="Gio.SettingsBindSetMapping"
                  c:type="GSettingsBindSetMapping"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @get_mapping and @set_mapping.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">destroy notify for @user_data.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean"
              c:identifier="dzl_settings_sandwich_get_boolean">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_value"
              c:identifier="dzl_settings_sandwich_get_default_value">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_double"
              c:identifier="dzl_settings_sandwich_get_double">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int" c:identifier="dzl_settings_sandwich_get_int">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="dzl_settings_sandwich_get_string">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uint" c:identifier="dzl_settings_sandwich_get_uint">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_user_value"
              c:identifier="dzl_settings_sandwich_get_user_value">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="dzl_settings_sandwich_get_value">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean"
              c:identifier="dzl_settings_sandwich_set_boolean">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_double"
              c:identifier="dzl_settings_sandwich_set_double">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int" c:identifier="dzl_settings_sandwich_set_int">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="dzl_settings_sandwich_set_string">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uint" c:identifier="dzl_settings_sandwich_set_uint">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="dzl_settings_sandwich_set_value">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unbind" c:identifier="dzl_settings_sandwich_unbind">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SettingsSandwich" c:type="DzlSettingsSandwich*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="schema-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="SettingsSandwichClass"
            c:type="DzlSettingsSandwichClass"
            glib:is-gtype-struct-for="SettingsSandwich">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ShortcutAccelDialog"
           c:symbol-prefix="shortcut_accel_dialog"
           c:type="DzlShortcutAccelDialog"
           parent="Gtk.Dialog"
           glib:type-name="DzlShortcutAccelDialog"
           glib:get-type="dzl_shortcut_accel_dialog_get_type"
           glib:type-struct="ShortcutAccelDialogClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_shortcut_accel_dialog_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_accelerator"
              c:identifier="dzl_shortcut_accel_dialog_get_accelerator">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutAccelDialog" c:type="DzlShortcutAccelDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_chord"
              c:identifier="dzl_shortcut_accel_dialog_get_chord">
        <return-value transfer-ownership="none">
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutAccelDialog" c:type="DzlShortcutAccelDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shortcut_title"
              c:identifier="dzl_shortcut_accel_dialog_get_shortcut_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutAccelDialog" c:type="DzlShortcutAccelDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_accelerator"
              c:identifier="dzl_shortcut_accel_dialog_set_accelerator">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutAccelDialog" c:type="DzlShortcutAccelDialog*"/>
          </instance-parameter>
          <parameter name="accelerator" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_shortcut_title"
              c:identifier="dzl_shortcut_accel_dialog_set_shortcut_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutAccelDialog" c:type="DzlShortcutAccelDialog*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="accelerator" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="shortcut-title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ShortcutAccelDialogClass"
            c:type="DzlShortcutAccelDialogClass"
            glib:is-gtype-struct-for="ShortcutAccelDialog">
      <field name="parent_class">
        <type name="Gtk.DialogClass" c:type="GtkDialogClass"/>
      </field>
    </record>
    <record name="ShortcutChord"
            c:type="DzlShortcutChord"
            glib:type-name="DzlShortcutChord"
            glib:get-type="dzl_shortcut_chord_get_type"
            c:symbol-prefix="shortcut_chord">
      <constructor name="new_from_event"
                   c:identifier="dzl_shortcut_chord_new_from_event">
        <return-value transfer-ownership="full">
          <type name="ShortcutChord" c:type="DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventKey" c:type="const GdkEventKey*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="dzl_shortcut_chord_new_from_string">
        <return-value transfer-ownership="full">
          <type name="ShortcutChord" c:type="DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <parameter name="accelerator" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_event"
              c:identifier="dzl_shortcut_chord_append_event">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="DzlShortcutChord*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventKey" c:type="const GdkEventKey*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="dzl_shortcut_chord_copy">
        <return-value transfer-ownership="full">
          <type name="ShortcutChord" c:type="DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="dzl_shortcut_chord_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="DzlShortcutChord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label" c:identifier="dzl_shortcut_chord_get_label">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_length" c:identifier="dzl_shortcut_chord_get_length">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_key" c:identifier="dzl_shortcut_chord_get_nth_key">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="keyval" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="modifier" transfer-ownership="none">
            <type name="Gdk.ModifierType" c:type="GdkModifierType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_modifier"
              c:identifier="dzl_shortcut_chord_has_modifier">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="dzl_shortcut_chord_match">
        <return-value transfer-ownership="none">
          <type name="ShortcutMatch" c:type="DzlShortcutMatch"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="dzl_shortcut_chord_to_string">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="equal" c:identifier="dzl_shortcut_chord_equal">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="data1"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="data2"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="hash" c:identifier="dzl_shortcut_chord_hash">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="ShortcutChordTable"
            c:type="DzlShortcutChordTable"
            disguised="1">
      <method name="add" c:identifier="dzl_shortcut_chord_table_add">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="dzl_shortcut_chord_table_foreach">
        <doc xml:space="preserve">This function will call @foreach_func for each chord in the table.</doc>
        <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">a #DzlShortcutChordTable</doc>
            <type name="ShortcutChordTable"
                  c:type="const DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="foreach_func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">A callback for each chord</doc>
            <type name="ShortcutChordTableForeach"
                  c:type="DzlShortcutChordTableForeach"/>
          </parameter>
          <parameter name="foreach_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @foreach_func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="dzl_shortcut_chord_table_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="dzl_shortcut_chord_table_lookup">
        <return-value transfer-ownership="none">
          <type name="ShortcutMatch" c:type="DzlShortcutMatch"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_data"
              c:identifier="dzl_shortcut_chord_table_lookup_data">
        <return-value transfer-ownership="none">
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="printf" c:identifier="dzl_shortcut_chord_table_printf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable"
                  c:type="const DzlShortcutChordTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="dzl_shortcut_chord_table_remove">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_data"
              c:identifier="dzl_shortcut_chord_table_remove_data">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_free_func"
              c:identifier="dzl_shortcut_chord_table_set_free_func">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
          </instance-parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="dzl_shortcut_chord_table_size">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutChordTable"
                  c:type="const DzlShortcutChordTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="dzl_shortcut_chord_table_new"
                introspectable="0">
        <return-value>
          <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
        </return-value>
      </function>
    </record>
    <callback name="ShortcutChordTableForeach"
              c:type="DzlShortcutChordTableForeach">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="chord" transfer-ownership="none">
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </parameter>
        <parameter name="chord_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="ShortcutContext"
           c:symbol-prefix="shortcut_context"
           c:type="DzlShortcutContext"
           parent="GObject.Object"
           glib:type-name="DzlShortcutContext"
           glib:get-type="dzl_shortcut_context_get_type"
           glib:type-struct="ShortcutContextClass">
      <constructor name="new" c:identifier="dzl_shortcut_context_new">
        <return-value transfer-ownership="full">
          <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="activate" c:identifier="dzl_shortcut_context_activate">
        <return-value transfer-ownership="none">
          <type name="ShortcutMatch" c:type="DzlShortcutMatch"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_action" c:identifier="dzl_shortcut_context_add_action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="detailed_action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_command"
              c:identifier="dzl_shortcut_context_add_command">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="command" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_signal"
              c:identifier="dzl_shortcut_context_add_signal"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signal_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="n_args" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_signal_va_list"
              c:identifier="dzl_shortcut_context_add_signal_va_list"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signal_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="n_args" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_signalv"
              c:identifier="dzl_shortcut_context_add_signalv">
        <doc xml:space="preserve">This is similar to dzl_shortcut_context_add_signal() but is easier to use
from language bindings.

Note that this transfers ownership of the @values array.</doc>
        <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">a #DzlShortcutContext</doc>
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <doc xml:space="preserve">the accelerator for the shortcut</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signal_name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the signal</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="values"
                     transfer-ownership="container"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The
  values to use when calling the signal.</doc>
            <array name="GLib.Array" c:type="GArray*">
              <type name="GObject.Value"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="dzl_shortcut_context_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_data"
              c:identifier="dzl_shortcut_context_load_from_data"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_resource"
              c:identifier="dzl_shortcut_context_load_from_resource"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="dzl_shortcut_context_remove">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="use-binding-sets" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="ShortcutContextClass"
            c:type="DzlShortcutContextClass"
            glib:is-gtype-struct-for="ShortcutContext">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ShortcutController"
           c:symbol-prefix="shortcut_controller"
           c:type="DzlShortcutController"
           parent="GObject.Object"
           glib:type-name="DzlShortcutController"
           glib:get-type="dzl_shortcut_controller_get_type"
           glib:type-struct="ShortcutControllerClass">
      <constructor name="new" c:identifier="dzl_shortcut_controller_new">
        <return-value transfer-ownership="full">
          <type name="ShortcutController" c:type="DzlShortcutController*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="find" c:identifier="dzl_shortcut_controller_find">
        <doc xml:space="preserve">Finds the registered #DzlShortcutController for a widget.

The controller is created if it does not already exist.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #DzlShortcutController or %NULL.</doc>
          <type name="ShortcutController" c:type="DzlShortcutController*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </function>
      <function name="try_find"
                c:identifier="dzl_shortcut_controller_try_find">
        <doc xml:space="preserve">Finds the registered #DzlShortcutController for a widget.

If no controller is found, %NULL is returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlShortcutController or %NULL.</doc>
          <type name="ShortcutController" c:type="DzlShortcutController*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_command_action"
              c:identifier="dzl_shortcut_controller_add_command_action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="command_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_command_callback"
              c:identifier="dzl_shortcut_controller_add_command_callback">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="command_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4"
                     destroy="5">
            <type name="Gtk.Callback" c:type="GtkCallback"/>
          </parameter>
          <parameter name="callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="callback_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_command_signal"
              c:identifier="dzl_shortcut_controller_add_command_signal"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="command_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
          <parameter name="signal_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="n_args" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="execute_command"
              c:identifier="dzl_shortcut_controller_execute_command">
        <doc xml:space="preserve">This method will locate and execute the command matching the id @command.

If the command is not found, %FALSE is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the command was found and executed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="command" transfer-ownership="none">
            <doc xml:space="preserve">the id of the command</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_context"
              c:identifier="dzl_shortcut_controller_get_context"
              version="3.26">
        <doc xml:space="preserve">This function gets the #DzlShortcutController:context property, which
is the current context to dispatch events to. An #DzlShortcutContext
is a group of keybindings that may be activated in response to a
single or series of #GdkEventKey.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlShortcutContext or %NULL.</doc>
          <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context_for_phase"
              c:identifier="dzl_shortcut_controller_get_context_for_phase"
              version="3.26">
        <doc xml:space="preserve">Controllers can have a different context for a particular phase, which allows
them to activate different keybindings depending if the event in capture,
bubble, or dispatch.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlShortcutContext or %NULL.</doc>
          <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="phase" transfer-ownership="none">
            <doc xml:space="preserve">the phase for the shorcut delivery</doc>
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_current_chord"
              c:identifier="dzl_shortcut_controller_get_current_chord">
        <doc xml:space="preserve">This method gets the #DzlShortcutController:current-chord property.
This is useful if you want to monitor in-progress chord building.

Note that this value will only be valid on the controller for the
toplevel widget (a #GtkWindow). Chords are not tracked at the
individual widget controller level.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlShortcutChord or %NULL.</doc>
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_manager"
              c:identifier="dzl_shortcut_controller_get_manager">
        <doc xml:space="preserve">Gets the #DzlShortcutManager associated with this controller.

Generally, this will look for the root controller's manager as mixing and
matching managers in a single window hierarchy is not supported.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlShortcutManager.</doc>
          <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_context_by_name"
              c:identifier="dzl_shortcut_controller_set_context_by_name"
              version="3.26">
        <doc xml:space="preserve">Changes the context for the controller to the context matching @name.

Contexts are resolved at runtime through the current theme (and possibly
a parent theme if it inherits from one).</doc>
        <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">a #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The name of the context</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_manager"
              c:identifier="dzl_shortcut_controller_set_manager">
        <doc xml:space="preserve">Sets the #DzlShortcutController:manager property.

If you set this to %NULL, it will revert to the default #DzlShortcutManager
for the process.</doc>
        <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">a #DzlShortcutController</doc>
            <type name="ShortcutController" c:type="DzlShortcutController*"/>
          </instance-parameter>
          <parameter name="manager"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #DzlShortcutManager or %NULL</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context" transfer-ownership="none">
        <type name="ShortcutContext"/>
      </property>
      <property name="current-chord" transfer-ownership="none">
        <type name="ShortcutChord"/>
      </property>
      <property name="manager" writable="1" transfer-ownership="none">
        <type name="ShortcutManager"/>
      </property>
      <property name="widget"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <glib:signal name="reset" when="last" action="1">
        <doc xml:space="preserve">This signal is emitted when the shortcut controller is requesting
the widget to reset any state it may have regarding the shortcut
controller. Such an example might be a modal system that lives
outside the controller whose state should be cleared in response
to the controller changing modes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-context-named" when="last" action="1">
        <doc xml:space="preserve">This changes the current context on the #DzlShortcutController to be the
context matching @name. This is found by looking up the context by name
in the active #DzlShortcutTheme.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">The name of the context</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ShortcutControllerClass"
            c:type="DzlShortcutControllerClass"
            glib:is-gtype-struct-for="ShortcutController">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="ShortcutEntry" c:type="DzlShortcutEntry">
      <doc xml:space="preserve">The #DzlShortcutEntry structure can be used to bulk register shortcuts
for a particular widget. It can also do the necessary hooks of registering
commands that can be changed using the keytheme components.</doc>
      <field name="command" writable="1">
        <doc xml:space="preserve">the command identifier</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="phase" writable="1">
        <doc xml:space="preserve">the phase for activation, or 0 for the default</doc>
        <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
      </field>
      <field name="default_accel" writable="1">
        <doc xml:space="preserve">the default accelerator for the command, if any</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="section" writable="1">
        <doc xml:space="preserve">the section for the shortcuts window</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="group" writable="1">
        <doc xml:space="preserve">the group for the shortcuts window</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="title" writable="1">
        <doc xml:space="preserve">the title for the shortcuts window</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="subtitle" writable="1">
        <doc xml:space="preserve">the subtitle for the shortcuts window, if any</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <class name="ShortcutLabel"
           c:symbol-prefix="shortcut_label"
           c:type="DzlShortcutLabel"
           parent="Gtk.Box"
           glib:type-name="DzlShortcutLabel"
           glib:get-type="dzl_shortcut_label_get_type"
           glib:type-struct="ShortcutLabelClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_shortcut_label_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_accelerator"
              c:identifier="dzl_shortcut_label_get_accelerator">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutLabel" c:type="DzlShortcutLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_chord" c:identifier="dzl_shortcut_label_get_chord">
        <doc xml:space="preserve">Gets the chord for the label, or %NULL.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlShortcutChord or %NULL</doc>
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutLabel</doc>
            <type name="ShortcutLabel" c:type="DzlShortcutLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_accelerator"
              c:identifier="dzl_shortcut_label_set_accelerator">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutLabel" c:type="DzlShortcutLabel*"/>
          </instance-parameter>
          <parameter name="accelerator" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_chord" c:identifier="dzl_shortcut_label_set_chord">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutLabel" c:type="DzlShortcutLabel*"/>
          </instance-parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
        </parameters>
      </method>
      <property name="accelerator" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="chord" writable="1" transfer-ownership="none">
        <type name="ShortcutChord"/>
      </property>
    </class>
    <record name="ShortcutLabelClass"
            c:type="DzlShortcutLabelClass"
            glib:is-gtype-struct-for="ShortcutLabel">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
    </record>
    <class name="ShortcutManager"
           c:symbol-prefix="shortcut_manager"
           c:type="DzlShortcutManager"
           parent="GObject.Object"
           glib:type-name="DzlShortcutManager"
           glib:get-type="dzl_shortcut_manager_get_type"
           glib:type-struct="ShortcutManagerClass">
      <implements name="Gio.Initable"/>
      <implements name="Gio.ListModel"/>
      <function name="get_default"
                c:identifier="dzl_shortcut_manager_get_default">
        <doc xml:space="preserve">Gets the singleton #DzlShortcutManager for the process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #DzlShortcutManager.</doc>
          <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
        </return-value>
      </function>
      <method name="add_action" c:identifier="dzl_shortcut_manager_add_action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="detailed_action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="section" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_command"
              c:identifier="dzl_shortcut_manager_add_command">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="command" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="section" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="group" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_shortcut_entries"
              c:identifier="dzl_shortcut_manager_add_shortcut_entries">
        <doc xml:space="preserve">This method will add @shortcuts to the #DzlShortcutManager.

This provides a simple way for widgets to add their shortcuts to the manager
so that they may be overriden by themes or the end user.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">a #DzlShortcutManager or %NULL for the default</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="shortcuts" transfer-ownership="none">
            <doc xml:space="preserve">shortcuts to add</doc>
            <array length="1" zero-terminated="0" c:type="DzlShortcutEntry*">
              <type name="ShortcutEntry" c:type="DzlShortcutEntry"/>
            </array>
          </parameter>
          <parameter name="n_shortcuts" transfer-ownership="none">
            <doc xml:space="preserve">the number of entries in @shortcuts</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="translation_domain"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the gettext domain to use for translations</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_shortcuts_to_window"
              c:identifier="dzl_shortcut_manager_add_shortcuts_to_window">
        <doc xml:space="preserve">Adds shortcuts registered with the #DzlShortcutManager to the
#DzlShortcutsWindow.</doc>
        <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">A #DzlShortcutManager</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlShortcutsWindow</doc>
            <type name="ShortcutsWindow" c:type="DzlShortcutsWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_search_path"
              c:identifier="dzl_shortcut_manager_append_search_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_theme" c:identifier="dzl_shortcut_manager_get_theme">
        <doc xml:space="preserve">Gets the "theme" property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #DzlShortcutTheme.</doc>
          <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">A #DzlShortcutManager or %NULL</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_theme_by_name"
              c:identifier="dzl_shortcut_manager_get_theme_by_name">
        <doc xml:space="preserve">Locates a theme by the name of the theme.

If @theme_name is %NULL, then the internal theme is used. You probably dont
need to use that as it is used by various controllers to hook up their
default actions.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlShortcutTheme or %NULL.</doc>
          <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutManager</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="theme_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the name of a theme or %NULL of the internal theme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_theme_name"
              c:identifier="dzl_shortcut_manager_get_theme_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_dir"
              c:identifier="dzl_shortcut_manager_get_user_dir">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_event"
              c:identifier="dzl_shortcut_manager_handle_event">
        <doc xml:space="preserve">This function will try to dispatch @event to the proper widget and
#DzlShortcutContext. If the event is handled, then %TRUE is returned.

You should call this from #GtkWidget::key-press-event handler in your
#GtkWindow toplevel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the event was handled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">An #DzlShortcutManager</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">A #GdkEventKey event to handle.</doc>
            <type name="Gdk.EventKey" c:type="const GdkEventKey*"/>
          </parameter>
          <parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_search_path"
              c:identifier="dzl_shortcut_manager_prepend_search_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_reload"
              c:identifier="dzl_shortcut_manager_queue_reload">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reload" c:identifier="dzl_shortcut_manager_reload">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_search_path"
              c:identifier="dzl_shortcut_manager_remove_search_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_theme" c:identifier="dzl_shortcut_manager_set_theme">
        <doc xml:space="preserve">Sets the theme for the shortcut manager.</doc>
        <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">An #DzlShortcutManager</doc>
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="theme" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlShortcutTheme</doc>
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_theme_name"
              c:identifier="dzl_shortcut_manager_set_theme_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="theme_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_dir"
              c:identifier="dzl_shortcut_manager_set_user_dir">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </instance-parameter>
          <parameter name="user_dir" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="theme" writable="1" transfer-ownership="none">
        <type name="ShortcutTheme"/>
      </property>
      <property name="theme-name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="user-dir" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ShortcutManagerClass"
            c:type="DzlShortcutManagerClass"
            glib:is-gtype-struct-for="ShortcutManager">
      <field name="parent_instance">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <enumeration name="ShortcutMatch"
                 glib:type-name="DzlShortcutMatch"
                 glib:get-type="dzl_shortcut_match_get_type"
                 c:type="DzlShortcutMatch">
      <member name="none"
              value="0"
              c:identifier="DZL_SHORTCUT_MATCH_NONE"
              glib:nick="none">
      </member>
      <member name="equal"
              value="1"
              c:identifier="DZL_SHORTCUT_MATCH_EQUAL"
              glib:nick="equal">
      </member>
      <member name="partial"
              value="2"
              c:identifier="DZL_SHORTCUT_MATCH_PARTIAL"
              glib:nick="partial">
      </member>
    </enumeration>
    <class name="ShortcutModel"
           c:symbol-prefix="shortcut_model"
           c:type="DzlShortcutModel"
           parent="Gtk.TreeStore"
           glib:type-name="DzlShortcutModel"
           glib:get-type="dzl_shortcut_model_get_type"
           glib:type-struct="ShortcutModelClass">
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.TreeDragDest"/>
      <implements name="Gtk.TreeDragSource"/>
      <implements name="Gtk.TreeModel"/>
      <implements name="Gtk.TreeSortable"/>
      <function name="new" c:identifier="dzl_shortcut_model_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GtkTreeModel</doc>
          <type name="Gtk.TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
      </function>
      <method name="get_manager" c:identifier="dzl_shortcut_model_get_manager">
        <doc xml:space="preserve">Gets the manager to be edited.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlShortcutManager</doc>
          <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutModel</doc>
            <type name="ShortcutModel" c:type="DzlShortcutModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_theme" c:identifier="dzl_shortcut_model_get_theme">
        <doc xml:space="preserve">Get the theme to be edited.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlShortcutTheme</doc>
          <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutModel</doc>
            <type name="ShortcutModel" c:type="DzlShortcutModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rebuild" c:identifier="dzl_shortcut_model_rebuild">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutModel" c:type="DzlShortcutModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_chord" c:identifier="dzl_shortcut_model_set_chord">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutModel" c:type="DzlShortcutModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_manager" c:identifier="dzl_shortcut_model_set_manager">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutModel" c:type="DzlShortcutModel*"/>
          </instance-parameter>
          <parameter name="manager" transfer-ownership="none">
            <type name="ShortcutManager" c:type="DzlShortcutManager*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_theme" c:identifier="dzl_shortcut_model_set_theme">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutModel" c:type="DzlShortcutModel*"/>
          </instance-parameter>
          <parameter name="theme" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </parameter>
        </parameters>
      </method>
      <property name="manager" writable="1" transfer-ownership="none">
        <type name="ShortcutManager"/>
      </property>
      <property name="theme" writable="1" transfer-ownership="none">
        <type name="ShortcutTheme"/>
      </property>
    </class>
    <record name="ShortcutModelClass"
            c:type="DzlShortcutModelClass"
            glib:is-gtype-struct-for="ShortcutModel">
      <field name="parent_class">
        <type name="Gtk.TreeStoreClass" c:type="GtkTreeStoreClass"/>
      </field>
    </record>
    <bitfield name="ShortcutPhase"
              glib:type-name="DzlShortcutPhase"
              glib:get-type="dzl_shortcut_phase_get_type"
              c:type="DzlShortcutPhase">
      <member name="dispatch"
              value="0"
              c:identifier="DZL_SHORTCUT_PHASE_DISPATCH"
              glib:nick="dispatch">
      </member>
      <member name="capture"
              value="1"
              c:identifier="DZL_SHORTCUT_PHASE_CAPTURE"
              glib:nick="capture">
        <doc xml:space="preserve">Indicates the capture phase of the shortcut
  activation. This allows parent widgets to intercept the keybinding before
  it is dispatched to the target #GdkWindow.</doc>
      </member>
      <member name="bubble"
              value="2"
              c:identifier="DZL_SHORTCUT_PHASE_BUBBLE"
              glib:nick="bubble">
      </member>
      <member name="global"
              value="4"
              c:identifier="DZL_SHORTCUT_PHASE_GLOBAL"
              glib:nick="global">
      </member>
    </bitfield>
    <class name="ShortcutSimpleLabel"
           c:symbol-prefix="shortcut_simple_label"
           c:type="DzlShortcutSimpleLabel"
           parent="Gtk.Box"
           glib:type-name="DzlShortcutSimpleLabel"
           glib:get-type="dzl_shortcut_simple_label_get_type"
           glib:type-struct="ShortcutSimpleLabelClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_shortcut_simple_label_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_accel"
              c:identifier="dzl_shortcut_simple_label_get_accel">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_action"
              c:identifier="dzl_shortcut_simple_label_get_action">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_command"
              c:identifier="dzl_shortcut_simple_label_get_command">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="dzl_shortcut_simple_label_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_accel"
              c:identifier="dzl_shortcut_simple_label_set_accel">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_action"
              c:identifier="dzl_shortcut_simple_label_set_action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_command"
              c:identifier="dzl_shortcut_simple_label_set_command">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
          <parameter name="command" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title"
              c:identifier="dzl_shortcut_simple_label_set_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutSimpleLabel" c:type="DzlShortcutSimpleLabel*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="accel" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="action" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="command" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="show-accel" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ShortcutSimpleLabelClass"
            c:type="DzlShortcutSimpleLabelClass"
            glib:is-gtype-struct-for="ShortcutSimpleLabel">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
    </record>
    <class name="ShortcutTheme"
           c:symbol-prefix="shortcut_theme"
           c:type="DzlShortcutTheme"
           parent="GObject.Object"
           glib:type-name="DzlShortcutTheme"
           glib:get-type="dzl_shortcut_theme_get_type"
           glib:type-struct="ShortcutThemeClass">
      <constructor name="new" c:identifier="dzl_shortcut_theme_new">
        <return-value transfer-ownership="full">
          <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_command" c:identifier="dzl_shortcut_theme_add_command">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="accelerator" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="command" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_context" c:identifier="dzl_shortcut_theme_add_context">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_css_resource"
              c:identifier="dzl_shortcut_theme_add_css_resource">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_context_by_name"
              c:identifier="dzl_shortcut_theme_find_context_by_name">
        <doc xml:space="preserve">Gets the context named @name. If the context does not exist, it will
be created.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #DzlShortcutContext</doc>
          <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlShortcutContext</doc>
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">The name of the context</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_default_context"
              c:identifier="dzl_shortcut_theme_find_default_context">
        <doc xml:space="preserve">Finds the default context in the theme for @widget.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlShortcutContext or %NULL.</doc>
          <type name="ShortcutContext" c:type="DzlShortcutContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_chord_for_action"
              c:identifier="dzl_shortcut_theme_get_chord_for_action">
        <return-value transfer-ownership="none">
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="detailed_action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_chord_for_command"
              c:identifier="dzl_shortcut_theme_get_chord_for_command">
        <return-value transfer-ownership="none">
          <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="command" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="dzl_shortcut_theme_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="dzl_shortcut_theme_get_parent">
        <doc xml:space="preserve">If the #DzlShortcutTheme:parent-name property has been set, this will fetch
the parent #DzlShortcutTheme.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlShortcutTheme or %NULL.</doc>
          <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutTheme</doc>
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_name"
              c:identifier="dzl_shortcut_theme_get_parent_name">
        <doc xml:space="preserve">Gets the name of the parent shortcut theme.

This is used to resolve shortcuts from the parent theme without having to
copy them directly into this shortcut theme. It allows for some level of
copy-on-write (CoW).</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The name of the parent theme, or %NULL if none is set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutTheme</doc>
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle"
              c:identifier="dzl_shortcut_theme_get_subtitle">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_shortcut_theme_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_data"
              c:identifier="dzl_shortcut_theme_load_from_data"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="dzl_shortcut_theme_load_from_file"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_path"
              c:identifier="dzl_shortcut_theme_load_from_path"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_css_resource"
              c:identifier="dzl_shortcut_theme_remove_css_resource">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_file"
              c:identifier="dzl_shortcut_theme_save_to_file"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_path"
              c:identifier="dzl_shortcut_theme_save_to_path"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_stream"
              c:identifier="dzl_shortcut_theme_save_to_stream"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accel_for_action"
              c:identifier="dzl_shortcut_theme_set_accel_for_action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="detailed_action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="accel" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accel_for_command"
              c:identifier="dzl_shortcut_theme_set_accel_for_command">
        <doc xml:space="preserve">This will set the command to execute when @accel is pressed.  If command is
%NULL, the accelerator will be cleared.  If accelerator is %NULL, all
accelerators for @command will be cleared.</doc>
        <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">a #DzlShortcutTheme</doc>
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="command"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the command to be executed</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="accel"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the shortcut accelerator</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <doc xml:space="preserve">the phase to activate within, or 0 for the default</doc>
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_chord_for_action"
              c:identifier="dzl_shortcut_theme_set_chord_for_action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="detailed_action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="chord" transfer-ownership="none">
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_chord_for_command"
              c:identifier="dzl_shortcut_theme_set_chord_for_command">
        <doc xml:space="preserve">This will set the command to execute when @chord is pressed.  If command is
%NULL, the accelerator will be cleared.  If @chord is %NULL, all
accelerators for @command will be cleared.</doc>
        <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">a #DzlShortcutTheme</doc>
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="command"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the command to be executed</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="chord"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the chord for the command</doc>
            <type name="ShortcutChord" c:type="const DzlShortcutChord*"/>
          </parameter>
          <parameter name="phase" transfer-ownership="none">
            <doc xml:space="preserve">the phase to activate within, or 0 for the default</doc>
            <type name="ShortcutPhase" c:type="DzlShortcutPhase"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent_name"
              c:identifier="dzl_shortcut_theme_set_parent_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </instance-parameter>
          <parameter name="parent_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="parent-name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ShortcutThemeClass"
            c:type="DzlShortcutThemeClass"
            glib:is-gtype-struct-for="ShortcutTheme">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="ShortcutThemeEditor"
           c:symbol-prefix="shortcut_theme_editor"
           c:type="DzlShortcutThemeEditor"
           parent="Gtk.Bin"
           glib:type-name="DzlShortcutThemeEditor"
           glib:get-type="dzl_shortcut_theme_editor_get_type"
           glib:type-struct="ShortcutThemeEditorClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_shortcut_theme_editor_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_theme"
              c:identifier="dzl_shortcut_theme_editor_get_theme">
        <doc xml:space="preserve">Gets the shortcut theme if one hsa been set.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlShortcutTheme or %NULL</doc>
          <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlShortcutThemeEditor</doc>
            <type name="ShortcutThemeEditor" c:type="DzlShortcutThemeEditor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_theme"
              c:identifier="dzl_shortcut_theme_editor_set_theme">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutThemeEditor" c:type="DzlShortcutThemeEditor*"/>
          </instance-parameter>
          <parameter name="theme" transfer-ownership="none">
            <type name="ShortcutTheme" c:type="DzlShortcutTheme*"/>
          </parameter>
        </parameters>
      </method>
      <property name="theme" writable="1" transfer-ownership="none">
        <type name="ShortcutTheme"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve">The "changed" signal is emitted when one of the rows within the editor
has been changed.

You might want to use this signal to save your theme changes to your
configured storage backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ShortcutThemeEditorClass"
            c:type="DzlShortcutThemeEditorClass"
            glib:is-gtype-struct-for="ShortcutThemeEditor">
      <field name="parent_class">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <enumeration name="ShortcutType" version="3.20" c:type="DzlShortcutType">
      <doc xml:space="preserve">DzlShortcutType specifies the kind of shortcut that is being described.
More values may be added to this enumeration over time.</doc>
      <member name="accelerator"
              value="0"
              c:identifier="DZL_SHORTCUT_ACCELERATOR">
        <doc xml:space="preserve">The shortcut is a keyboard accelerator. The #DzlShortcutsShortcut:accelerator
  property will be used.</doc>
      </member>
      <member name="gesture_pinch"
              value="1"
              c:identifier="DZL_SHORTCUT_GESTURE_PINCH">
        <doc xml:space="preserve">The shortcut is a pinch gesture. GTK+ provides an icon and subtitle.</doc>
      </member>
      <member name="gesture_stretch"
              value="2"
              c:identifier="DZL_SHORTCUT_GESTURE_STRETCH">
        <doc xml:space="preserve">The shortcut is a stretch gesture. GTK+ provides an icon and subtitle.</doc>
      </member>
      <member name="gesture_rotate_clockwise"
              value="3"
              c:identifier="DZL_SHORTCUT_GESTURE_ROTATE_CLOCKWISE">
        <doc xml:space="preserve">The shortcut is a clockwise rotation gesture. GTK+ provides an icon and subtitle.</doc>
      </member>
      <member name="gesture_rotate_counterclockwise"
              value="4"
              c:identifier="DZL_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE">
        <doc xml:space="preserve">The shortcut is a counterclockwise rotation gesture. GTK+ provides an icon and subtitle.</doc>
      </member>
      <member name="gesture_two_finger_swipe_left"
              value="5"
              c:identifier="DZL_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT">
        <doc xml:space="preserve">The shortcut is a two-finger swipe gesture. GTK+ provides an icon and subtitle.</doc>
      </member>
      <member name="gesture_two_finger_swipe_right"
              value="6"
              c:identifier="DZL_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT">
        <doc xml:space="preserve">The shortcut is a two-finger swipe gesture. GTK+ provides an icon and subtitle.</doc>
      </member>
      <member name="gesture" value="7" c:identifier="DZL_SHORTCUT_GESTURE">
        <doc xml:space="preserve">The shortcut is a gesture. The #DzlShortcutsShortcut:icon property will be
  used.</doc>
      </member>
    </enumeration>
    <class name="ShortcutsGroup"
           c:symbol-prefix="shortcuts_group"
           c:type="DzlShortcutsGroup"
           parent="Gtk.Box"
           glib:type-name="DzlShortcutsGroup"
           glib:get-type="dzl_shortcuts_group_get_type"
           glib:type-struct="ShortcutsGroupClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <property name="accel-size-group"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size group for the accelerator portion of shortcuts in this group.

This is used internally by GTK+, and must not be modified by applications.</doc>
        <type name="Gtk.SizeGroup"/>
      </property>
      <property name="height" transfer-ownership="none">
        <doc xml:space="preserve">A rough measure for the number of lines in this group.

This is used internally by GTK+, and is not useful for applications.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The title for this group of shortcuts.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title-size-group"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size group for the textual portion of shortcuts in this group.

This is used internally by GTK+, and must not be modified by applications.</doc>
        <type name="Gtk.SizeGroup"/>
      </property>
      <property name="view" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">An optional view that the shortcuts in this group are relevant for.
The group will be hidden if the #DzlShortcutsWindow:view-name property
does not match the view of this group.

Set this to %NULL to make the group always visible.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ShortcutsGroupClass"
            c:type="DzlShortcutsGroupClass"
            disguised="1"
            glib:is-gtype-struct-for="ShortcutsGroup">
    </record>
    <class name="ShortcutsSection"
           c:symbol-prefix="shortcuts_section"
           c:type="DzlShortcutsSection"
           parent="Gtk.Box"
           glib:type-name="DzlShortcutsSection"
           glib:get-type="dzl_shortcuts_section_get_type"
           glib:type-struct="ShortcutsSectionClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <property name="max-height" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The maximum number of lines to allow per column. This property can
be used to influence how the groups in this section are distributed
across pages and columns. The default value of 15 should work in
for most cases.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="section-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">A unique name to identify this section among the sections
added to the DzlShortcutsWindow. Setting the #DzlShortcutsWindow:section-name
property to this string will make this section shown in the
DzlShortcutsWindow.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The string to show in the section selector of the DzlShortcutsWindow
for this section. If there is only one section, you don't need to
set a title, since the section selector will not be shown in this case.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="view-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">A view name to filter the groups in this section by.
See #DzlShortcutsGroup:view.

Applications are expected to use the #DzlShortcutsWindow:view-name
property for this purpose.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="change-current-page" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ShortcutsSectionClass"
            c:type="DzlShortcutsSectionClass"
            disguised="1"
            glib:is-gtype-struct-for="ShortcutsSection">
    </record>
    <class name="ShortcutsShortcut"
           c:symbol-prefix="shortcuts_shortcut"
           c:type="DzlShortcutsShortcut"
           parent="Gtk.Box"
           glib:type-name="DzlShortcutsShortcut"
           glib:get-type="dzl_shortcuts_shortcut_get_type"
           glib:type-struct="ShortcutsShortcutClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <property name="accel-size-group"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size group for the accelerator portion of this shortcut.

This is used internally by GTK+, and must not be modified by applications.</doc>
        <type name="Gtk.SizeGroup"/>
      </property>
      <property name="accelerator" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The accelerator(s) represented by this object. This property is used
if #DzlShortcutsShortcut:shortcut-type is set to #GTK_SHORTCUT_ACCELERATOR.

The syntax of this property is (an extension of) the syntax understood by
gtk_accelerator_parse(). Multiple accelerators can be specified by separating
them with a space, but keep in mind that the available width is limited.
It is also possible to specify ranges of shortcuts, using ... between the keys.
Sequences of keys can be specified using a + or &amp; between the keys.

Examples:
- A single shortcut: &amp;lt;ctl&amp;rt;&amp;lt;alt&amp;gt;delete
- Two alternative shortcuts: &amp;lt;shift&amp;gt;a Home
- A range of shortcuts: &amp;lt;alt&amp;gt;1...&amp;lt;alt&amp;gt;9
- Several keys pressed together: Control_L&amp;Control_R
- A sequence of shortcuts or keys: &amp;lt;ctl&amp;gt;c+&amp;lt;ctl&amp;gt;x

Use + instead of &amp; when the keys may (or have to be) pressed sequentially (e.g
use t+t for 'press the t key twice').

Note that &lt;, &gt; and &amp; need to be escaped as &amp;lt;, &amp;gt; and &amp;amp; when used
in .ui files.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="action-name"
                version="3.22"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">A detailed action name. If this is set for a shortcut
of type %GTK_SHORTCUT_ACCELERATOR, then GTK+ will use
the accelerators that are associated with the action
via gtk_application_set_accels_for_action(), and setting
#DzlShortcutsShortcut::accelerator is not necessary.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="direction" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The text direction for which this shortcut is active. If the shortcut
is used regardless of the text direction, set this property to
#GTK_TEXT_DIR_NONE.</doc>
        <type name="Gtk.TextDirection"/>
      </property>
      <property name="icon" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">An icon to represent the shortcut or gesture. This property is used if
#DzlShortcutsShortcut:shortcut-type is set to #GTK_SHORTCUT_GESTURE.
For the other predefined gesture types, GTK+ provides an icon on its own.</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="icon-set" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if an icon has been set.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="shortcut-type" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The type of shortcut that is represented.</doc>
        <type name="Gtk.ShortcutType"/>
      </property>
      <property name="subtitle" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The subtitle for the shortcut or gesture.

This is typically used for gestures and should be a short, one-line
text that describes the gesture itself. For the predefined gesture
types, GTK+ provides a subtitle on its own.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle-set" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if a subtitle has been set.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The textual description for the shortcut or gesture represented by
this object. This should be a short string that can fit in a single line.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title-size-group"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The size group for the textual portion of this shortcut.

This is used internally by GTK+, and must not be modified by applications.</doc>
        <type name="Gtk.SizeGroup"/>
      </property>
    </class>
    <record name="ShortcutsShortcutClass"
            c:type="DzlShortcutsShortcutClass"
            disguised="1"
            glib:is-gtype-struct-for="ShortcutsShortcut">
    </record>
    <class name="ShortcutsWindow"
           c:symbol-prefix="shortcuts_window"
           c:type="DzlShortcutsWindow"
           parent="Gtk.Window"
           glib:type-name="DzlShortcutsWindow"
           glib:get-type="dzl_shortcuts_window_get_type"
           glib:type-struct="ShortcutsWindowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <virtual-method name="close">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutsWindow" c:type="DzlShortcutsWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ShortcutsWindow" c:type="DzlShortcutsWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <property name="section-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The name of the section to show.

This should be the section-name of one of the #DzlShortcutsSection
objects that are in this shortcuts window.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="view-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The view name by which to filter the contents.

This should correspond to the #DzlShortcutsGroup:view property of some of
the #DzlShortcutsGroup objects that are inside this shortcuts window.

Set this to %NULL to show all groups.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="window">
        <type name="Gtk.Window" c:type="GtkWindow"/>
      </field>
      <glib:signal name="close" when="last" action="1">
        <doc xml:space="preserve">The ::close signal is a
[keybinding signal][GtkBindingSignal]
which gets emitted when the user uses a keybinding to close
the window.

The default binding for this signal is the Escape key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="search" when="last" action="1">
        <doc xml:space="preserve">The ::search signal is a
[keybinding signal][GtkBindingSignal]
which gets emitted when the user uses a keybinding to start a search.

The default binding for this signal is Control-F.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ShortcutsWindowClass"
            c:type="DzlShortcutsWindowClass"
            glib:is-gtype-struct-for="ShortcutsWindow">
      <field name="parent_class">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
      <field name="close">
        <callback name="close">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ShortcutsWindow" c:type="DzlShortcutsWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search">
        <callback name="search">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ShortcutsWindow" c:type="DzlShortcutsWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="SignalGroup"
           c:symbol-prefix="signal_group"
           c:type="DzlSignalGroup"
           parent="GObject.Object"
           glib:type-name="DzlSignalGroup"
           glib:get-type="dzl_signal_group_get_type"
           glib:type-struct="SignalGroupClass">
      <doc xml:space="preserve">#DzlSignalGroup manages to simplify the process of connecting
many signals to a #GObject as a group. As such there is no API
to disconnect a signal from the group.

In particular, this allows you to:

 - Change the target instance, which automatically causes disconnection
   of the signals from the old instance and connecting to the new instance.
 - Block and unblock signals as a group
 - Ensuring that blocked state transfers across target instances.

One place you might want to use such a structure is with #GtkTextView and
#GtkTextBuffer. Often times, you'll need to connect to many signals on
#GtkTextBuffer from a #GtkTextView subclass. This allows you to create a
signal group during instance construction, simply bind the
#GtkTextView:buffer property to #DzlSignalGroup:target and connect
all the signals you need. When the #GtkTextView:buffer property changes
all of the signals will be transitioned correctly.</doc>
      <constructor name="new" c:identifier="dzl_signal_group_new">
        <doc xml:space="preserve">Creates a new #DzlSignalGroup for target instances of @target_type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #DzlSignalGroup</doc>
          <type name="SignalGroup" c:type="DzlSignalGroup*"/>
        </return-value>
        <parameters>
          <parameter name="target_type" transfer-ownership="none">
            <doc xml:space="preserve">the #GType of the target instance.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="block" c:identifier="dzl_signal_group_block">
        <doc xml:space="preserve">Blocks all signal handlers managed by @self so they will not
be called during any signal emissions. Must be unblocked exactly
the same number of times it has been blocked to become active again.

This blocked state will be kept across changes of the target instance.

See: g_signal_handler_block().</doc>
        <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">the #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="connect"
              c:identifier="dzl_signal_group_connect"
              introspectable="0">
        <doc xml:space="preserve">Connects @callback to the signal @detailed_signal
on the target instance of @self.

See: g_signal_connect().</doc>
        <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">a #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
          <parameter name="detailed_signal" transfer-ownership="none">
            <doc xml:space="preserve">a string of the form "signal-name::detail"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="c_handler"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve">the #GCallback to connect</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the data to pass to @callback calls</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_after"
              c:identifier="dzl_signal_group_connect_after"
              introspectable="0">
        <doc xml:space="preserve">Connects @callback to the signal @detailed_signal
on the target instance of @self.

The @callback will be called after the default handler of the signal.

See: g_signal_connect_after().</doc>
        <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">a #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
          <parameter name="detailed_signal" transfer-ownership="none">
            <doc xml:space="preserve">a string of the form "signal-name::detail"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="c_handler"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve">the #GCallback to connect</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the data to pass to @callback calls</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_data" c:identifier="dzl_signal_group_connect_data">
        <doc xml:space="preserve">Connects @callback to the signal @detailed_signal
on the target instance of @self.

See: g_signal_connect_data().</doc>
        <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">a #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
          <parameter name="detailed_signal" transfer-ownership="none">
            <doc xml:space="preserve">a string of the form "signal-name::detail"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="c_handler"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve">the #GCallback to connect</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the data to pass to @callback calls</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="notified">
            <doc xml:space="preserve">function to be called when disposing of @self</doc>
            <type name="GObject.ClosureNotify" c:type="GClosureNotify"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags used to create the signal connection</doc>
            <type name="GObject.ConnectFlags" c:type="GConnectFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_object"
              c:identifier="dzl_signal_group_connect_object"
              introspectable="0">
        <doc xml:space="preserve">Connects @callback to the signal @detailed_signal
on the target object of @self.

Ensures that the @object stays alive during the call to @callback
by temporarily adding a reference count. When the @object is destroyed
the signal handler will automatically be removed.

See: g_signal_connect_object().</doc>
        <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">a #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
          <parameter name="detailed_signal" transfer-ownership="none">
            <doc xml:space="preserve">a string of the form "signal-name::detail"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="c_handler"
                     transfer-ownership="none"
                     scope="notified">
            <doc xml:space="preserve">the #GCallback to connect</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GObject to pass as data to @callback calls</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="GObject.ConnectFlags" c:type="GConnectFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_swapped"
              c:identifier="dzl_signal_group_connect_swapped">
        <doc xml:space="preserve">Connects @callback to the signal @detailed_signal
on the target instance of @self.

The instance on which the signal is emitted and @data
will be swapped when calling @callback.

See: g_signal_connect_swapped().</doc>
        <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">a #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
          <parameter name="detailed_signal" transfer-ownership="none">
            <doc xml:space="preserve">a string of the form "signal-name::detail"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="c_handler"
                     transfer-ownership="none"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">the #GCallback to connect</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the data to pass to @callback calls</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="dzl_signal_group_get_target">
        <doc xml:space="preserve">Gets the target instance used when connecting signals.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The target instance.</doc>
          <type name="GObject.Object" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_target" c:identifier="dzl_signal_group_set_target">
        <doc xml:space="preserve">Sets the target instance used when connecting signals. Any signal
that has been registered with dzl_signal_group_connect_object() or
similar functions will be connected to this object.

If the target instance was previously set, signals will be
disconnected from that object prior to connecting to @target.</doc>
        <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">the #DzlSignalGroup.</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
          <parameter name="target"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The target instance used
    when connecting signals.</doc>
            <type name="GObject.Object" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unblock" c:identifier="dzl_signal_group_unblock">
        <doc xml:space="preserve">Unblocks all signal handlers managed by @self so they will be
called again during any signal emissions unless it is blocked
again. Must be unblocked exactly the same number of times it
has been blocked to become active again.

See: g_signal_handler_unblock().</doc>
        <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">the #DzlSignalGroup</doc>
            <type name="SignalGroup" c:type="DzlSignalGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="target" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The target instance used when connecting signals.</doc>
        <type name="GObject.Object"/>
      </property>
      <property name="target-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The GType of the target property.</doc>
        <type name="GType" c:type="GType"/>
      </property>
      <glib:signal name="bind" when="last">
        <doc xml:space="preserve">This signal is emitted when the target instance of @self
is set to a new #GObject.

This signal will only be emitted if the target of @self is non-%NULL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="instance" transfer-ownership="none">
            <doc xml:space="preserve">a #GObject</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="unbind" when="last">
        <doc xml:space="preserve">This signal is emitted when the target instance of @self
is set to a new #GObject.

This signal will only be emitted if the previous target
of @self is non-%NULL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SignalGroupClass"
            c:type="DzlSignalGroupClass"
            glib:is-gtype-struct-for="SignalGroup">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SimpleLabel"
           c:symbol-prefix="simple_label"
           c:type="DzlSimpleLabel"
           parent="Gtk.Widget"
           glib:type-name="DzlSimpleLabel"
           glib:get-type="dzl_simple_label_get_type"
           glib:type-struct="SimpleLabelClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_simple_label_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_label" c:identifier="dzl_simple_label_get_label">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleLabel" c:type="DzlSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width_chars"
              c:identifier="dzl_simple_label_get_width_chars">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleLabel" c:type="DzlSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xalign" c:identifier="dzl_simple_label_get_xalign">
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleLabel" c:type="DzlSimpleLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_label" c:identifier="dzl_simple_label_set_label">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleLabel" c:type="DzlSimpleLabel*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_width_chars"
              c:identifier="dzl_simple_label_set_width_chars">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleLabel" c:type="DzlSimpleLabel*"/>
          </instance-parameter>
          <parameter name="width_chars" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_xalign" c:identifier="dzl_simple_label_set_xalign">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimpleLabel" c:type="DzlSimpleLabel*"/>
          </instance-parameter>
          <parameter name="xalign" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="width-chars" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="xalign" writable="1" transfer-ownership="none">
        <type name="gfloat" c:type="gfloat"/>
      </property>
    </class>
    <record name="SimpleLabelClass"
            c:type="DzlSimpleLabelClass"
            glib:is-gtype-struct-for="SimpleLabel">
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <class name="SimplePopover"
           c:symbol-prefix="simple_popover"
           c:type="DzlSimplePopover"
           parent="Gtk.Popover"
           glib:type-name="DzlSimplePopover"
           glib:get-type="dzl_simple_popover_get_type"
           glib:type-struct="SimplePopoverClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_simple_popover_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="activate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_text">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="chars" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="n_chars" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_button_text"
              c:identifier="dzl_simple_popover_get_button_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message" c:identifier="dzl_simple_popover_get_message">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ready" c:identifier="dzl_simple_popover_get_ready">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="dzl_simple_popover_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_simple_popover_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_button_text"
              c:identifier="dzl_simple_popover_set_button_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="button_text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_message" c:identifier="dzl_simple_popover_set_message">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ready" c:identifier="dzl_simple_popover_set_ready">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="ready" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text" c:identifier="dzl_simple_popover_set_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="dzl_simple_popover_set_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SimplePopover" c:type="DzlSimplePopover*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="button-text" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="message" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="ready" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="text" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Popover" c:type="GtkPopover"/>
      </field>
      <glib:signal name="activate" when="last">
        <doc xml:space="preserve">This signal is emitted when the popover's forward button is activated.
Connect to this signal to perform your forward progress.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">The text at the time of activation.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve">This signal is emitted when the entry text changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="insert-text" when="last">
        <doc xml:space="preserve">Use this signal to determine if text should be allowed to be inserted
into the text buffer. Return GDK_EVENT_STOP to prevent the text from
being inserted.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve">the position in UTF-8 characters.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="chars" transfer-ownership="none">
            <doc xml:space="preserve">the NULL terminated UTF-8 text to insert.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="n_chars" transfer-ownership="none">
            <doc xml:space="preserve">the number of UTF-8 characters in chars.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SimplePopoverClass"
            c:type="DzlSimplePopoverClass"
            glib:is-gtype-struct-for="SimplePopover">
      <field name="parent">
        <type name="Gtk.PopoverClass" c:type="GtkPopoverClass"/>
      </field>
      <field name="activate">
        <callback name="activate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SimplePopover" c:type="DzlSimplePopover*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_text">
        <callback name="insert_text">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SimplePopover" c:type="DzlSimplePopover*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="chars" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="n_chars" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SimplePopover" c:type="DzlSimplePopover*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Slider"
           c:symbol-prefix="slider"
           c:type="DzlSlider"
           parent="Gtk.Container"
           glib:type-name="DzlSlider"
           glib:get-type="dzl_slider_get_type"
           glib:type-struct="SliderClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_slider_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="add_slider" c:identifier="dzl_slider_add_slider">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Slider" c:type="DzlSlider*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="SliderPosition" c:type="DzlSliderPosition"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_position" c:identifier="dzl_slider_get_position">
        <return-value transfer-ownership="none">
          <type name="SliderPosition" c:type="DzlSliderPosition"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Slider" c:type="DzlSlider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_position" c:identifier="dzl_slider_set_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Slider" c:type="DzlSlider*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="SliderPosition" c:type="DzlSliderPosition"/>
          </parameter>
        </parameters>
      </method>
      <property name="position" writable="1" transfer-ownership="none">
        <type name="SliderPosition"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
    </class>
    <record name="SliderClass"
            c:type="DzlSliderClass"
            glib:is-gtype-struct-for="Slider">
      <field name="parent_instance">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
    </record>
    <enumeration name="SliderPosition"
                 glib:type-name="DzlSliderPosition"
                 glib:get-type="dzl_slider_position_get_type"
                 c:type="DzlSliderPosition">
      <member name="none"
              value="0"
              c:identifier="DZL_SLIDER_NONE"
              glib:nick="none">
      </member>
      <member name="top"
              value="1"
              c:identifier="DZL_SLIDER_TOP"
              glib:nick="top">
      </member>
      <member name="right"
              value="2"
              c:identifier="DZL_SLIDER_RIGHT"
              glib:nick="right">
      </member>
      <member name="bottom"
              value="3"
              c:identifier="DZL_SLIDER_BOTTOM"
              glib:nick="bottom">
      </member>
      <member name="left"
              value="4"
              c:identifier="DZL_SLIDER_LEFT"
              glib:nick="left">
      </member>
    </enumeration>
    <class name="StackList"
           c:symbol-prefix="stack_list"
           c:type="DzlStackList"
           parent="Gtk.Bin"
           glib:type-name="DzlStackList"
           glib:get-type="dzl_stack_list_get_type"
           glib:type-struct="StackListClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_stack_list_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="header_activated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
          <parameter name="row" transfer-ownership="none">
            <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_activated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
          <parameter name="row" transfer-ownership="none">
            <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="clear" c:identifier="dzl_stack_list_clear">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_depth" c:identifier="dzl_stack_list_get_depth">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_model" c:identifier="dzl_stack_list_get_model">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #DzlStackList.</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pop" c:identifier="dzl_stack_list_pop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push"
              c:identifier="dzl_stack_list_push"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StackList" c:type="DzlStackList*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
          <parameter name="create_widget_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <type name="StackListCreateWidgetFunc"
                  c:type="DzlStackListCreateWidgetFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_free_func"
                     transfer-ownership="none"
                     scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <property name="model" transfer-ownership="none">
        <type name="Gio.ListModel"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <glib:signal name="header-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.ListBoxRow"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.ListBoxRow"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="StackListClass"
            c:type="DzlStackListClass"
            glib:is-gtype-struct-for="StackList">
      <field name="parent_instance">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="row_activated">
        <callback name="row_activated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="StackList" c:type="DzlStackList*"/>
            </parameter>
            <parameter name="row" transfer-ownership="none">
              <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="header_activated">
        <callback name="header_activated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="StackList" c:type="DzlStackList*"/>
            </parameter>
            <parameter name="row" transfer-ownership="none">
              <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <callback name="StackListCreateWidgetFunc"
              c:type="DzlStackListCreateWidgetFunc"
              introspectable="0">
      <return-value>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="item"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="StateMachine"
           c:symbol-prefix="state_machine"
           c:type="DzlStateMachine"
           parent="GObject.Object"
           glib:type-name="DzlStateMachine"
           glib:get-type="dzl_state_machine_get_type"
           glib:type-struct="StateMachineClass">
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_state_machine_new">
        <return-value transfer-ownership="full">
          <type name="StateMachine" c:type="DzlStateMachine*"/>
        </return-value>
      </constructor>
      <function name="buildable_iface_init"
                c:identifier="dzl_state_machine_buildable_iface_init"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iface" transfer-ownership="none">
            <type name="Gtk.BuildableIface" c:type="GtkBuildableIface*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_binding" c:identifier="dzl_state_machine_add_binding">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="source_object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="source_property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target_object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="target_property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="GObject.BindingFlags" c:type="GBindingFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_property"
              c:identifier="dzl_state_machine_add_property"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_property_valist"
              c:identifier="dzl_state_machine_add_property_valist"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_propertyv"
              c:identifier="dzl_state_machine_add_propertyv">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_style" c:identifier="dzl_state_machine_add_style">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect_object"
              c:identifier="dzl_state_machine_connect_object"
              introspectable="0">
        <doc xml:space="preserve">Connects to the @detailed_signal of @source only when the current
state of the state machine is @state.</doc>
        <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">A #DzlStateMachine.</doc>
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">The state the signal connection should exist within</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="source"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the source object to connect to</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="detailed_signal" transfer-ownership="none">
            <doc xml:space="preserve">The detailed signal of @source to connect.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve">The callback to execute upon signal emission.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The user data for @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">signal connection flags.</doc>
            <type name="GObject.ConnectFlags" c:type="GConnectFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_action"
              c:identifier="dzl_state_machine_create_action">
        <doc xml:space="preserve">Creates a new #GAction with the name of @name.

Setting the state of this action will toggle the state of the state machine.
You should use g_variant_new_string() or similar to create the state.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #GAction.</doc>
          <type name="Gio.Action" c:type="GAction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlStateMachine</doc>
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the action.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_state" c:identifier="dzl_state_machine_get_state">
        <doc xml:space="preserve">Gets the #DzlStateMachine:state property. This is the name of the
current state of the machine.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current state of the machine.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #DzlStateMachine.</doc>
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_state"
              c:identifier="dzl_state_machine_is_state"
              version="3.28">
        <doc xml:space="preserve">Checks to see if the current state of the #DzlStateMachine matches @state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @self is currently set to @state.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlStateMachine</doc>
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the name of the state to check</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="dzl_state_machine_set_state">
        <doc xml:space="preserve">Sets the #DzlStateMachine:state property.

Registered state transformations will be applied during the state
transformation.

If the transition results in a cyclic operation, the state will stop at
the last state before the cycle was detected.</doc>
        <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">the #DzlStateMachine @self: the #</doc>
            <type name="StateMachine" c:type="DzlStateMachine*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="state" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="StateMachineClass"
            c:type="DzlStateMachineClass"
            glib:is-gtype-struct-for="StateMachine">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Suggestion"
           c:symbol-prefix="suggestion"
           c:type="DzlSuggestion"
           parent="GObject.Object"
           glib:type-name="DzlSuggestion"
           glib:get-type="dzl_suggestion_get_type"
           glib:type-struct="SuggestionClass">
      <constructor name="new" c:identifier="dzl_suggestion_new">
        <return-value transfer-ownership="full">
          <type name="Suggestion" c:type="DzlSuggestion*"/>
        </return-value>
      </constructor>
      <virtual-method name="replace_typed_text" invoker="replace_typed_text">
        <doc xml:space="preserve">This function is meant to be used to replace the text in the entry with text
that represents the suggestion most accurately. This happens when the user
presses tab while typing a suggestion. For example, if typing "gno" in the
entry, you might have a suggest_suffix of "me.org" so that the user sees
"gnome.org". But the replace_typed_text might include more data such as
"https://gnome.org" as it more closely represents the suggestion.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The replacement text to insert into
  the entry when "tab" is pressed to complete the insertion.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlSuggestion</doc>
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="typed_text" transfer-ownership="none">
            <doc xml:space="preserve">the text that was typed into the entry</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="suggest_suffix" invoker="suggest_suffix">
        <doc xml:space="preserve">This function requests potential text to append to @typed_text to make it
more clear to the user what they will be activating by selecting this
suggestion. For example, if they start typing "gno", a potential suggested
suffix might be "me.org" to create "gnome.org".</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">Suffix to append to @typed_text
  or %NULL to leave it unchanged.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestion</doc>
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="typed_text" transfer-ownership="none">
            <doc xml:space="preserve">The user entered text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_icon_name" c:identifier="dzl_suggestion_get_icon_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="dzl_suggestion_get_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle" c:identifier="dzl_suggestion_get_subtitle">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_suggestion_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="replace_typed_text"
              c:identifier="dzl_suggestion_replace_typed_text">
        <doc xml:space="preserve">This function is meant to be used to replace the text in the entry with text
that represents the suggestion most accurately. This happens when the user
presses tab while typing a suggestion. For example, if typing "gno" in the
entry, you might have a suggest_suffix of "me.org" so that the user sees
"gnome.org". But the replace_typed_text might include more data such as
"https://gnome.org" as it more closely represents the suggestion.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The replacement text to insert into
  the entry when "tab" is pressed to complete the insertion.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlSuggestion</doc>
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="typed_text" transfer-ownership="none">
            <doc xml:space="preserve">the text that was typed into the entry</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name" c:identifier="dzl_suggestion_set_icon_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="dzl_suggestion_set_id">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle" c:identifier="dzl_suggestion_set_subtitle">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="dzl_suggestion_set_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="suggest_suffix"
              c:identifier="dzl_suggestion_suggest_suffix">
        <doc xml:space="preserve">This function requests potential text to append to @typed_text to make it
more clear to the user what they will be activating by selecting this
suggestion. For example, if they start typing "gno", a potential suggested
suffix might be "me.org" to create "gnome.org".</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">Suffix to append to @typed_text
  or %NULL to leave it unchanged.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestion</doc>
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </instance-parameter>
          <parameter name="typed_text" transfer-ownership="none">
            <doc xml:space="preserve">The user entered text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon-name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="replace-typed-text" when="last">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="suggest-suffix" when="last">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SuggestionClass"
            c:type="DzlSuggestionClass"
            glib:is-gtype-struct-for="Suggestion">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="suggest_suffix">
        <callback name="suggest_suffix">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">Suffix to append to @typed_text
  or %NULL to leave it unchanged.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">a #DzlSuggestion</doc>
              <type name="Suggestion" c:type="DzlSuggestion*"/>
            </parameter>
            <parameter name="typed_text" transfer-ownership="none">
              <doc xml:space="preserve">The user entered text</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="replace_typed_text">
        <callback name="replace_typed_text">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">The replacement text to insert into
  the entry when "tab" is pressed to complete the insertion.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">An #DzlSuggestion</doc>
              <type name="Suggestion" c:type="DzlSuggestion*"/>
            </parameter>
            <parameter name="typed_text" transfer-ownership="none">
              <doc xml:space="preserve">the text that was typed into the entry</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="SuggestionEntry"
           c:symbol-prefix="suggestion_entry"
           c:type="DzlSuggestionEntry"
           parent="Gtk.Entry"
           glib:type-name="DzlSuggestionEntry"
           glib:get-type="dzl_suggestion_entry_get_type"
           glib:type-struct="SuggestionEntryClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.CellEditable"/>
      <implements name="Gtk.Editable"/>
      <constructor name="new" c:identifier="dzl_suggestion_entry_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="hide_suggestions">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_suggestion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="amount" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_suggestions">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="suggestion_activated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="suggestion" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="default_position_func"
              c:identifier="dzl_suggestion_entry_default_position_func">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="is_absolute" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_model" c:identifier="dzl_suggestion_entry_get_model">
        <doc xml:space="preserve">Gets the model being visualized.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GListModel or %NULL.</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionEntry</doc>
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_suggestion"
              c:identifier="dzl_suggestion_entry_get_suggestion">
        <doc xml:space="preserve">Gets the currently selected suggestion.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlSuggestion or %NULL.</doc>
          <type name="Suggestion" c:type="DzlSuggestion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionEntry</doc>
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_typed_text"
              c:identifier="dzl_suggestion_entry_get_typed_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_model" c:identifier="dzl_suggestion_entry_set_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position_func"
              c:identifier="dzl_suggestion_entry_set_position_func"
              version="3.26">
        <doc xml:space="preserve">Sets a position func to position the popover.

In @func, you should set the height of the rectangle to the maximum height
that the popover should be allowed to grow.</doc>
        <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">a #DzlSuggestionEntry</doc>
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve">
  A function to call to position the popover, or %NULL to set the default.</doc>
            <type name="SuggestionPositionFunc"
                  c:type="DzlSuggestionPositionFunc"/>
          </parameter>
          <parameter name="func_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">closure data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="func_data_destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve">a destroy notify for @func_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_suggestion"
              c:identifier="dzl_suggestion_entry_set_suggestion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="suggestion" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="window_position_func"
              c:identifier="dzl_suggestion_entry_window_position_func">
        <doc xml:space="preserve">This is a #DzlSuggestionPositionFunc that can be used to make the suggestion
popover the full width of the window. It is similar to what you might find
in a web browser.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="is_absolute" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="model" writable="1" transfer-ownership="none">
        <type name="Gio.ListModel"/>
      </property>
      <property name="typed-text" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Entry" c:type="GtkEntry"/>
      </field>
      <glib:signal name="activate-suggestion" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-suggestions" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="move-suggestion" when="last" action="1">
        <doc xml:space="preserve">This moves the selected suggestion in the popover by the value
provided. -1 moves up one row, 1, moves down a row.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="amount" transfer-ownership="none">
            <doc xml:space="preserve">The number of items to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-suggestions" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="suggestion-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Suggestion"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <class name="SuggestionEntryBuffer"
           c:symbol-prefix="suggestion_entry_buffer"
           c:type="DzlSuggestionEntryBuffer"
           parent="Gtk.EntryBuffer"
           glib:type-name="DzlSuggestionEntryBuffer"
           glib:get-type="dzl_suggestion_entry_buffer_get_type"
           glib:type-struct="SuggestionEntryBufferClass">
      <constructor name="new" c:identifier="dzl_suggestion_entry_buffer_new">
        <return-value transfer-ownership="full">
          <type name="SuggestionEntryBuffer"
                c:type="DzlSuggestionEntryBuffer*"/>
        </return-value>
      </constructor>
      <method name="commit" c:identifier="dzl_suggestion_entry_buffer_commit">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntryBuffer"
                  c:type="DzlSuggestionEntryBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_suggestion"
              c:identifier="dzl_suggestion_entry_buffer_get_suggestion">
        <doc xml:space="preserve">Gets the #DzlSuggestion that is the current "preview suffix" of the
text in the entry.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlSuggestion or %NULL.</doc>
          <type name="Suggestion" c:type="DzlSuggestion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionEntryBuffer</doc>
            <type name="SuggestionEntryBuffer"
                  c:type="DzlSuggestionEntryBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_typed_length"
              c:identifier="dzl_suggestion_entry_buffer_get_typed_length">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntryBuffer"
                  c:type="DzlSuggestionEntryBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_typed_text"
              c:identifier="dzl_suggestion_entry_buffer_get_typed_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionEntryBuffer"
                  c:type="DzlSuggestionEntryBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_suggestion"
              c:identifier="dzl_suggestion_entry_buffer_set_suggestion">
        <doc xml:space="preserve">Sets the current suggestion for the entry buffer.

The suggestion is used to get a potential suffix for the current entry
text. This allows the entry to show "preview text" after the entered
text for what might be inserted should they activate the current item.</doc>
        <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">a #DzlSuggestionEntryBuffer</doc>
            <type name="SuggestionEntryBuffer"
                  c:type="DzlSuggestionEntryBuffer*"/>
          </instance-parameter>
          <parameter name="suggestion"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An #DzlSuggestion or %NULL</doc>
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </parameter>
        </parameters>
      </method>
      <property name="suggestion" writable="1" transfer-ownership="none">
        <type name="Suggestion"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.EntryBuffer" c:type="GtkEntryBuffer"/>
      </field>
    </class>
    <record name="SuggestionEntryBufferClass"
            c:type="DzlSuggestionEntryBufferClass"
            glib:is-gtype-struct-for="SuggestionEntryBuffer">
      <field name="parent_class">
        <type name="Gtk.EntryBufferClass" c:type="GtkEntryBufferClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="SuggestionEntryClass"
            c:type="DzlSuggestionEntryClass"
            glib:is-gtype-struct-for="SuggestionEntry">
      <field name="parent_class">
        <type name="Gtk.EntryClass" c:type="GtkEntryClass"/>
      </field>
      <field name="hide_suggestions">
        <callback name="hide_suggestions">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_suggestions">
        <callback name="show_suggestions">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_suggestion">
        <callback name="move_suggestion">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
            </parameter>
            <parameter name="amount" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="suggestion_activated">
        <callback name="suggestion_activated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
            </parameter>
            <parameter name="suggestion" transfer-ownership="none">
              <type name="Suggestion" c:type="DzlSuggestion*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="SuggestionPopover"
           c:symbol-prefix="suggestion_popover"
           c:type="DzlSuggestionPopover"
           parent="Gtk.Window"
           glib:type-name="DzlSuggestionPopover"
           glib:get-type="dzl_suggestion_popover_get_type"
           glib:type-struct="SuggestionPopoverClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_suggestion_popover_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="activate_selected"
              c:identifier="dzl_suggestion_popover_activate_selected">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_model" c:identifier="dzl_suggestion_popover_get_model">
        <doc xml:space="preserve">Gets the model being visualized.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GListModel or %NULL.</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionPopover</doc>
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_relative_to"
              c:identifier="dzl_suggestion_popover_get_relative_to">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionPopover</doc>
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="dzl_suggestion_popover_get_selected">
        <doc xml:space="preserve">Gets the currently selected suggestion.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #DzlSuggestion or %NULL.</doc>
          <type name="Suggestion" c:type="DzlSuggestion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionPopover</doc>
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="move_by" c:identifier="dzl_suggestion_popover_move_by">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
          <parameter name="amount" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="popdown" c:identifier="dzl_suggestion_popover_popdown">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="popup" c:identifier="dzl_suggestion_popover_popup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_model" c:identifier="dzl_suggestion_popover_set_model">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_relative_to"
              c:identifier="dzl_suggestion_popover_set_relative_to">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="dzl_suggestion_popover_set_selected">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionPopover" c:type="DzlSuggestionPopover*"/>
          </instance-parameter>
          <parameter name="suggestion" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </parameter>
        </parameters>
      </method>
      <property name="model" writable="1" transfer-ownership="none">
        <type name="Suggestion"/>
      </property>
      <property name="relative-to" writable="1" transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <property name="selected" writable="1" transfer-ownership="none">
        <type name="Suggestion"/>
      </property>
      <glib:signal name="suggestion-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Suggestion"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SuggestionPopoverClass"
            c:type="DzlSuggestionPopoverClass"
            glib:is-gtype-struct-for="SuggestionPopover">
      <field name="parent_class">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
    </record>
    <callback name="SuggestionPositionFunc"
              c:type="DzlSuggestionPositionFunc"
              version="3.26">
      <doc xml:space="preserve">Positions the popover in the coordinates defined by @area.

If @is_absolute is set to %TRUE, then absolute coordinates are used.
Otherwise, the position is expected to be relative to @entry.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="entry" transfer-ownership="none">
          <doc xml:space="preserve">a #DzlSuggestionEntry</doc>
          <type name="SuggestionEntry" c:type="DzlSuggestionEntry*"/>
        </parameter>
        <parameter name="area"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">location to place the popover</doc>
          <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
        </parameter>
        <parameter name="is_absolute"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">If the area is in absolute coordinates</doc>
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve">closure data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="SuggestionRow"
           c:symbol-prefix="suggestion_row"
           c:type="DzlSuggestionRow"
           parent="ListBoxRow"
           glib:type-name="DzlSuggestionRow"
           glib:get-type="dzl_suggestion_row_get_type"
           glib:type-struct="SuggestionRowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_suggestion_row_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_suggestion"
              c:identifier="dzl_suggestion_row_get_suggestion">
        <doc xml:space="preserve">Gets the suggestion to be displayed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #DzlSuggestion</doc>
          <type name="Suggestion" c:type="DzlSuggestion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlSuggestionRow</doc>
            <type name="SuggestionRow" c:type="DzlSuggestionRow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_suggestion"
              c:identifier="dzl_suggestion_row_set_suggestion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SuggestionRow" c:type="DzlSuggestionRow*"/>
          </instance-parameter>
          <parameter name="suggestion" transfer-ownership="none">
            <type name="Suggestion" c:type="DzlSuggestion*"/>
          </parameter>
        </parameters>
      </method>
      <property name="suggestion" writable="1" transfer-ownership="none">
        <type name="Suggestion"/>
      </property>
      <field name="parent_instance">
        <type name="ListBoxRow" c:type="DzlListBoxRow"/>
      </field>
    </class>
    <record name="SuggestionRowClass"
            c:type="DzlSuggestionRowClass"
            glib:is-gtype-struct-for="SuggestionRow">
      <field name="parent_class">
        <type name="ListBoxRowClass" c:type="DzlListBoxRowClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="Tab"
           c:symbol-prefix="tab"
           c:type="DzlTab"
           parent="Bin"
           glib:type-name="DzlTab"
           glib:get-type="dzl_tab_get_type"
           glib:type-struct="TabClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Buildable"/>
      <method name="get_active" c:identifier="dzl_tab_get_active">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_close" c:identifier="dzl_tab_get_can_close">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_edge" c:identifier="dzl_tab_get_edge">
        <return-value transfer-ownership="none">
          <type name="Gtk.PositionType" c:type="GtkPositionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name" c:identifier="dzl_tab_get_icon_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style" c:identifier="dzl_tab_get_style">
        <return-value transfer-ownership="none">
          <type name="TabStyle" c:type="DzlTabStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dzl_tab_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widget" c:identifier="dzl_tab_get_widget">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active" c:identifier="dzl_tab_set_active">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="active" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_can_close" c:identifier="dzl_tab_set_can_close">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="can_close" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_edge" c:identifier="dzl_tab_set_edge">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="edge" transfer-ownership="none">
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name" c:identifier="dzl_tab_set_icon_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style" c:identifier="dzl_tab_set_style">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="TabStyle" c:type="DzlTabStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="dzl_tab_set_title">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_widget" c:identifier="dzl_tab_set_widget">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tab" c:type="DzlTab*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <property name="active" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="can-close" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="edge" writable="1" transfer-ownership="none">
        <type name="Gtk.PositionType"/>
      </property>
      <property name="style" writable="1" transfer-ownership="none">
        <type name="TabStyle"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="widget" writable="1" transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <glib:signal name="clicked" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TabClass"
            c:type="DzlTabClass"
            glib:is-gtype-struct-for="Tab">
      <field name="parent_class">
        <type name="BinClass" c:type="DzlBinClass"/>
      </field>
    </record>
    <class name="TabStrip"
           c:symbol-prefix="tab_strip"
           c:type="DzlTabStrip"
           parent="Gtk.Box"
           glib:type-name="DzlTabStrip"
           glib:get-type="dzl_tab_strip_get_type"
           glib:type-struct="TabStripClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dzl_tab_strip_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="add_control" c:identifier="dzl_tab_strip_add_control">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_edge" c:identifier="dzl_tab_strip_get_edge">
        <return-value transfer-ownership="none">
          <type name="Gtk.PositionType" c:type="GtkPositionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stack" c:identifier="dzl_tab_strip_get_stack">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkStack or %NULL.</doc>
          <type name="Gtk.Stack" c:type="GtkStack*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style" c:identifier="dzl_tab_strip_get_style">
        <return-value transfer-ownership="none">
          <type name="TabStyle" c:type="DzlTabStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_edge" c:identifier="dzl_tab_strip_set_edge">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
          <parameter name="edge" transfer-ownership="none">
            <type name="Gtk.PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stack" c:identifier="dzl_tab_strip_set_stack">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <type name="Gtk.Stack" c:type="GtkStack*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style" c:identifier="dzl_tab_strip_set_style">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TabStrip" c:type="DzlTabStrip*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="TabStyle" c:type="DzlTabStyle"/>
          </parameter>
        </parameters>
      </method>
      <property name="edge" writable="1" transfer-ownership="none">
        <type name="Gtk.PositionType"/>
      </property>
      <property name="stack" writable="1" transfer-ownership="none">
        <type name="Gtk.Stack"/>
      </property>
      <property name="style" writable="1" transfer-ownership="none">
        <type name="TabStyle"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </field>
    </class>
    <record name="TabStripClass"
            c:type="DzlTabStripClass"
            glib:is-gtype-struct-for="TabStrip">
      <field name="parent">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <bitfield name="TabStyle"
              glib:type-name="DzlTabStyle"
              glib:get-type="dzl_tab_style_get_type"
              c:type="DzlTabStyle">
      <member name="icons"
              value="2"
              c:identifier="DZL_TAB_ICONS"
              glib:nick="icons">
      </member>
      <member name="text"
              value="1"
              c:identifier="DZL_TAB_TEXT"
              glib:nick="text">
      </member>
      <member name="both"
              value="3"
              c:identifier="DZL_TAB_BOTH"
              glib:nick="both">
      </member>
    </bitfield>
    <class name="TaskCache"
           c:symbol-prefix="task_cache"
           c:type="DzlTaskCache"
           parent="GObject.Object"
           glib:type-name="DzlTaskCache"
           glib:get-type="dzl_task_cache_get_type"
           glib:type-struct="TaskCacheClass">
      <constructor name="new"
                   c:identifier="dzl_task_cache_new"
                   introspectable="0">
        <return-value transfer-ownership="full">
          <type name="TaskCache" c:type="DzlTaskCache*"/>
        </return-value>
        <parameters>
          <parameter name="key_hash_func" transfer-ownership="none">
            <type name="GLib.HashFunc" c:type="GHashFunc"/>
          </parameter>
          <parameter name="key_equal_func" transfer-ownership="none">
            <type name="GLib.EqualFunc" c:type="GEqualFunc"/>
          </parameter>
          <parameter name="key_copy_func" transfer-ownership="none">
            <type name="GObject.BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
          </parameter>
          <parameter name="key_destroy_func" transfer-ownership="none">
            <type name="GObject.BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
          </parameter>
          <parameter name="value_copy_func" transfer-ownership="none">
            <type name="GObject.BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
          </parameter>
          <parameter name="value_free_func" transfer-ownership="none">
            <type name="GObject.BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
          </parameter>
          <parameter name="time_to_live_msec" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="populate_callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="8"
                     destroy="9">
            <type name="TaskCacheCallback" c:type="DzlTaskCacheCallback"/>
          </parameter>
          <parameter name="populate_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="populate_callback_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="evict" c:identifier="dzl_task_cache_evict">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
          <parameter name="key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="evict_all" c:identifier="dzl_task_cache_evict_all">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_async" c:identifier="dzl_task_cache_get_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
          <parameter name="key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="force_update" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_finish"
              c:identifier="dzl_task_cache_get_finish"
              throws="1">
        <doc xml:space="preserve">Finish a call to dzl_task_cache_get_async().</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The result from the cache.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_values"
              c:identifier="dzl_task_cache_get_values"
              introspectable="0">
        <doc xml:space="preserve">Gets all the values in the cache.

The caller owns the resulting GPtrArray, which itself owns a reference to the children.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">The values.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="gpointer" c:type="gpointer"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="peek" c:identifier="dzl_task_cache_peek">
        <doc xml:space="preserve">Peeks to see @key is contained in the cache and returns the
matching #GObject if it does.

The reference count of the resulting #GObject is not incremented.
For that reason, it is important to remember that this function
may only be called from the main thread.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GObject or
  %NULL if the key was not found in the cache.</doc>
          <type name="GObject.Object" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlTaskCache</doc>
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
          <parameter name="key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The key for the cache</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="dzl_task_cache_set_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TaskCache" c:type="DzlTaskCache*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="key-copy-func"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="key-destroy-func"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="key-equal-func"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="key-hash-func"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="populate-callback"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="populate-callback-data"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="populate-callback-data-destroy"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="time-to-live"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">This is the number of milliseconds before an item should be evicted
from the cache.

A value of zero indicates no eviction.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="value-copy-func"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="value-destroy-func"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
    </class>
    <callback name="TaskCacheCallback" c:type="DzlTaskCacheCallback">
      <doc xml:space="preserve">#DzlTaskCacheCallback is the prototype for a function to be executed to
populate an item in the cache.

This function will be executed when a fault (cache miss) occurs from
a caller requesting an item from the cache.

The callee may complete the operation asynchronously, but MUST return
either a GObject using g_task_return_pointer() or a #GError using
g_task_return_error() or g_task_return_new_error().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <doc xml:space="preserve">An #DzlTaskCache.</doc>
          <type name="TaskCache" c:type="DzlTaskCache*"/>
        </parameter>
        <parameter name="key"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the key to fetch</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
        <parameter name="task" transfer-ownership="none">
          <doc xml:space="preserve">the task to be completed</doc>
          <type name="Gio.Task" c:type="GTask*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve">user_data registered at initialization.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TaskCacheClass"
            c:type="DzlTaskCacheClass"
            glib:is-gtype-struct-for="TaskCache">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ThemeManager"
           c:symbol-prefix="theme_manager"
           c:type="DzlThemeManager"
           parent="GObject.Object"
           glib:type-name="DzlThemeManager"
           glib:get-type="dzl_theme_manager_get_type"
           glib:type-struct="ThemeManagerClass">
      <constructor name="new" c:identifier="dzl_theme_manager_new">
        <return-value transfer-ownership="full">
          <type name="ThemeManager" c:type="DzlThemeManager*"/>
        </return-value>
      </constructor>
      <method name="add_resources"
              c:identifier="dzl_theme_manager_add_resources">
        <doc xml:space="preserve">This will automatically register resources found within @resource_path.

If @resource_path starts with "resource://", embedded #GResources will be
used to locate the theme files. Otherwise, @resource_path is expected to be
a path on disk that may or may not exist.

If the @resource_path contains a directory named "themes", that directory
will be traversed for files matching the theme name and variant. For
example, if using the Adwaita theme, "themes/Adwaita.css" will be loaded. If
the dark variant is being used, "themes/Adwaita-dark.css" will be loaeded. If
no matching theme file is located, "themes/shared.css" will be loaded.

When the current theme changes, the CSS will be reloaded to adapt.

The "icons" sub-directory will be used to locate icon themes.</doc>
        <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">a #DzlThemeManager</doc>
            <type name="ThemeManager" c:type="DzlThemeManager*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve">A path to a #GResources directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_resources"
              c:identifier="dzl_theme_manager_remove_resources">
        <doc xml:space="preserve">This removes the CSS providers that were registered using @resource_path.

You must have previously called dzl_theme_manager_add_resources() for
this function to do anything.

Since icons cannot be unloaded, previously loaded icons will continue to
be available even after calling this function.</doc>
        <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">a #DzlThemeManager</doc>
            <type name="ThemeManager" c:type="DzlThemeManager*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve">A previously registered resources path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="ThemeManagerClass"
            c:type="DzlThemeManagerClass"
            glib:is-gtype-struct-for="ThemeManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ThreeGrid"
           c:symbol-prefix="three_grid"
           c:type="DzlThreeGrid"
           parent="Gtk.Container"
           glib:type-name="DzlThreeGrid"
           glib:get-type="dzl_three_grid_get_type"
           glib:type-struct="ThreeGridClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dzl_three_grid_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <property name="column-spacing" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="row-spacing" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
    </class>
    <record name="ThreeGridClass"
            c:type="DzlThreeGridClass"
            glib:is-gtype-struct-for="ThreeGrid">
      <field name="parent_class">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <enumeration name="ThreeGridColumn"
                 glib:type-name="DzlThreeGridColumn"
                 glib:get-type="dzl_three_grid_column_get_type"
                 c:type="DzlThreeGridColumn">
      <member name="left"
              value="0"
              c:identifier="DZL_THREE_GRID_COLUMN_LEFT"
              glib:nick="left">
      </member>
      <member name="center"
              value="1"
              c:identifier="DZL_THREE_GRID_COLUMN_CENTER"
              glib:nick="center">
      </member>
      <member name="right"
              value="2"
              c:identifier="DZL_THREE_GRID_COLUMN_RIGHT"
              glib:nick="right">
      </member>
    </enumeration>
    <class name="Tree"
           c:symbol-prefix="tree"
           c:type="DzlTree"
           parent="Gtk.TreeView"
           glib:type-name="DzlTree"
           glib:get-type="dzl_tree_get_type"
           glib:type-struct="TreeClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <virtual-method name="action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="action_group" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="param" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_popup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_builder" c:identifier="dzl_tree_add_builder">
        <doc xml:space="preserve">Add a builder to the tree.</doc>
        <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">A #DzlTree.</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeBuilder to add.</doc>
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </parameter>
        </parameters>
      </method>
      <method name="expand_to_node" c:identifier="dzl_tree_expand_to_node">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_child_node" c:identifier="dzl_tree_find_child_node">
        <doc xml:space="preserve">Searches through the direct children of @node for a matching child.
@find_func should return %TRUE if the child matches, otherwise %FALSE.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlTreeNode or %NULL.</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTree</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="find_func"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve">A callback to locate the child</doc>
            <type name="TreeFindFunc" c:type="DzlTreeFindFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @find_func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_custom" c:identifier="dzl_tree_find_custom">
        <doc xml:space="preserve">Walks the entire tree looking for the first item that matches given
@equal_func and @key.

The first parameter to @equal_func will always be @key.
The second parameter will be the nodes #DzlTreeNode:item property.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlTreeNode or %NULL.</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTree</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="equal_func" transfer-ownership="none" scope="call">
            <doc xml:space="preserve">A #GEqualFunc</doc>
            <type name="GLib.EqualFunc" c:type="GEqualFunc"/>
          </parameter>
          <parameter name="key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the key for @equal_func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_item" c:identifier="dzl_tree_find_item">
        <doc xml:space="preserve">Finds a #DzlTreeNode with an item property matching @item.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlTreeNode or %NULL.</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTree.</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="item"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GObject or %NULL.</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_context_menu" c:identifier="dzl_tree_get_context_menu">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GMenuModel or %NULL.</doc>
          <type name="Gio.MenuModel" c:type="GMenuModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root" c:identifier="dzl_tree_get_root">
        <doc xml:space="preserve">Retrieves the root node of the tree. The root node is not a visible node
in the self, but a placeholder for all other builders to build upon.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlTreeNode or %NULL.</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected" c:identifier="dzl_tree_get_selected">
        <doc xml:space="preserve">Gets the currently selected node in the tree.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlTreeNode.</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTree.</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_icons" c:identifier="dzl_tree_get_show_icons">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rebuild" c:identifier="dzl_tree_rebuild">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_builder" c:identifier="dzl_tree_remove_builder">
        <doc xml:space="preserve">Removes a builder from the tree.</doc>
        <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">A #DzlTree.</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeBuilder to remove.</doc>
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_node" c:identifier="dzl_tree_scroll_to_node">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_context_menu" c:identifier="dzl_tree_set_context_menu">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="context_menu" transfer-ownership="none">
            <type name="Gio.MenuModel" c:type="GMenuModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filter" c:identifier="dzl_tree_set_filter">
        <doc xml:space="preserve">Sets the filter function to be used to determine visability of a tree node.</doc>
        <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">A #DzlTree</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="filter_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve">A callback to determien visibility.</doc>
            <type name="TreeFilterFunc" c:type="DzlTreeFilterFunc"/>
          </parameter>
          <parameter name="filter_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">User data for @filter_func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="filter_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">Destroy notify for @filter_data.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_root" c:identifier="dzl_tree_set_root">
        <doc xml:space="preserve">Sets the root node of the #DzlTree widget. This is used to build
the items within the treeview. The item itself will not be added
to the self, but the direct children will be.</doc>
        <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">A #DzlTree.</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_icons" c:identifier="dzl_tree_set_show_icons">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
          <parameter name="show_icons" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_all" c:identifier="dzl_tree_unselect_all">
        <doc xml:space="preserve">Unselects the currently selected node in the tree.</doc>
        <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">A #DzlTree.</doc>
            <type name="Tree" c:type="DzlTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="always-expand"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="context-menu" writable="1" transfer-ownership="none">
        <type name="Gio.MenuModel"/>
      </property>
      <property name="root" writable="1" transfer-ownership="none">
        <type name="TreeNode"/>
      </property>
      <property name="selection" writable="1" transfer-ownership="none">
        <type name="TreeNode"/>
      </property>
      <property name="show-icons" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TreeView" c:type="GtkTreeView"/>
      </field>
      <glib:signal name="action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="populate-popup" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <class name="TreeBuilder"
           c:symbol-prefix="tree_builder"
           c:type="DzlTreeBuilder"
           parent="GObject.InitiallyUnowned"
           glib:type-name="DzlTreeBuilder"
           glib:get-type="dzl_tree_builder_get_type"
           glib:type-struct="TreeBuilderClass">
      <constructor name="new" c:identifier="dzl_tree_builder_new">
        <return-value transfer-ownership="none">
          <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
        </return-value>
      </constructor>
      <virtual-method name="added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="tree" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="build_children">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="build_node">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cell_data_func">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="cell" transfer-ownership="none">
            <type name="Gtk.CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_data_get">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_data_received">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="drop_node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="TreeDropPosition" c:type="DzlTreeDropPosition"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Gdk.DragAction" c:type="GdkDragAction"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_node_delete">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_node_received">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="drag_node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="drop_node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="TreeDropPosition" c:type="DzlTreeDropPosition"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Gdk.DragAction" c:type="GdkDragAction"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_activated">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_collapsed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_draggable">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_droppable">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_expanded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_popup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="menu" transfer-ownership="none">
            <type name="Gio.Menu" c:type="GMenu*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_selected">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_unselected">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
          <parameter name="tree" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_tree" c:identifier="dzl_tree_builder_get_tree">
        <doc xml:space="preserve">Gets the tree that owns the builder.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #DzlTree or %NULL.</doc>
          <type name="Tree" c:type="DzlTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeBuilder.</doc>
            <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="tree" transfer-ownership="none">
        <type name="Tree"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
      <glib:signal name="added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Tree"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="build-children" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="build-node" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-data-get" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Gtk.SelectionData"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-data-received" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="TreeDropPosition"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Gdk.DragAction"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="Gtk.SelectionData"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-node-delete" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-node-received" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="TreeDropPosition"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="Gdk.DragAction"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="Gtk.SelectionData"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-collapsed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-draggable" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-droppable" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Gtk.SelectionData"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-expanded" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-popup" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Gio.Menu"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-selected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-unselected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TreeNode"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Tree"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TreeBuilderClass"
            c:type="DzlTreeBuilderClass"
            glib:is-gtype-struct-for="TreeBuilder">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="added">
        <callback name="added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="tree" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="removed">
        <callback name="removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="tree" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="build_node">
        <callback name="build_node">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="build_children">
        <callback name="build_children">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="parent" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_activated">
        <callback name="node_activated">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_selected">
        <callback name="node_selected">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_unselected">
        <callback name="node_unselected">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_popup">
        <callback name="node_popup">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <type name="Gio.Menu" c:type="GMenu*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_expanded">
        <callback name="node_expanded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_collapsed">
        <callback name="node_collapsed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_draggable">
        <callback name="node_draggable">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_droppable">
        <callback name="node_droppable">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_get">
        <callback name="drag_data_get">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_node_received">
        <callback name="drag_node_received">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="drag_node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="drop_node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="TreeDropPosition" c:type="DzlTreeDropPosition"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Gdk.DragAction" c:type="GdkDragAction"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_received">
        <callback name="drag_data_received">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="drop_node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="TreeDropPosition" c:type="DzlTreeDropPosition"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Gdk.DragAction" c:type="GdkDragAction"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_node_delete">
        <callback name="drag_node_delete">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cell_data_func">
        <callback name="cell_data_func">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree" transfer-ownership="none">
              <type name="TreeBuilder" c:type="DzlTreeBuilder*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="TreeNode" c:type="DzlTreeNode*"/>
            </parameter>
            <parameter name="cell" transfer-ownership="none">
              <type name="Gtk.CellRenderer" c:type="GtkCellRenderer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="11">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="TreeClass"
            c:type="DzlTreeClass"
            glib:is-gtype-struct-for="Tree">
      <field name="parent_class">
        <type name="Gtk.TreeViewClass" c:type="GtkTreeViewClass"/>
      </field>
      <field name="action">
        <callback name="action">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Tree" c:type="DzlTree*"/>
            </parameter>
            <parameter name="action_group" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="action_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="param" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_popup">
        <callback name="populate_popup">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Tree" c:type="DzlTree*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="TreeDropPosition"
                 glib:type-name="DzlTreeDropPosition"
                 glib:get-type="dzl_tree_drop_position_get_type"
                 c:type="DzlTreeDropPosition">
      <member name="into"
              value="0"
              c:identifier="DZL_TREE_DROP_INTO"
              glib:nick="into">
      </member>
      <member name="before"
              value="1"
              c:identifier="DZL_TREE_DROP_BEFORE"
              glib:nick="before">
      </member>
      <member name="after"
              value="2"
              c:identifier="DZL_TREE_DROP_AFTER"
              glib:nick="after">
      </member>
    </enumeration>
    <callback name="TreeFilterFunc" c:type="DzlTreeFilterFunc">
      <doc xml:space="preserve">Callback to check if @node should be visible.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if @node should be visible.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tree" transfer-ownership="none">
          <type name="Tree" c:type="DzlTree*"/>
        </parameter>
        <parameter name="node" transfer-ownership="none">
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TreeFindFunc" c:type="DzlTreeFindFunc">
      <doc xml:space="preserve">Callback to check @child, a child of @node, matches a lookup
request. Returns %TRUE if @child matches, %FALSE if not.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if @child matched</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tree" transfer-ownership="none">
          <type name="Tree" c:type="DzlTree*"/>
        </parameter>
        <parameter name="node" transfer-ownership="none">
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </parameter>
        <parameter name="child" transfer-ownership="none">
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="TreeNode"
           c:symbol-prefix="tree_node"
           c:type="DzlTreeNode"
           parent="GObject.InitiallyUnowned"
           glib:type-name="DzlTreeNode"
           glib:get-type="dzl_tree_node_get_type"
           glib:type-struct="TreeNodeClass">
      <constructor name="new" c:identifier="dzl_tree_node_new">
        <doc xml:space="preserve">Creates a new #DzlTreeNode instance. This is handy for situations where you
do not want to subclass #DzlTreeNode.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #DzlTreeNode</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
      </constructor>
      <method name="add_emblem" c:identifier="dzl_tree_node_add_emblem">
        <doc xml:space="preserve">Adds an emplem to be rendered on top of the node.

Use dzl_tree_node_remove_emblem() to remove an emblem.</doc>
        <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">An #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="emblem_name" transfer-ownership="none">
            <doc xml:space="preserve">the icon-name of the emblem</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append" c:identifier="dzl_tree_node_append">
        <doc xml:space="preserve">Appends @child to the list of children owned by @node.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_emblems" c:identifier="dzl_tree_node_clear_emblems">
        <doc xml:space="preserve">Removes all emblems from @self.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="collapse" c:identifier="dzl_tree_node_collapse">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="expand" c:identifier="dzl_tree_node_expand">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="expand_ancestors" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_area" c:identifier="dzl_tree_node_get_area">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_children_possible"
              c:identifier="dzl_tree_node_get_children_possible">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expanded" c:identifier="dzl_tree_node_get_expanded">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_foreground_rgba"
              c:identifier="dzl_tree_node_get_foreground_rgba"
              version="3.28">
        <doc xml:space="preserve">Gets the foreground-rgba to use for row text.

If %NULL, the default foreground color should be used.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GdkRGBA or %NULL</doc>
          <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gicon" c:identifier="dzl_tree_node_get_gicon">
        <doc xml:space="preserve">Fetch the GIcon, re-render if necessary</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #GIcon or %NULL.</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name" c:identifier="dzl_tree_node_get_icon_name">
        <doc xml:space="preserve">Fetches the icon-name of the icon to display, or NULL for no icon.</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_item" c:identifier="dzl_tree_node_get_item">
        <doc xml:space="preserve">Gets a #GObject for the node, if one was set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GObject or %NULL.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter" c:identifier="dzl_tree_node_get_iter">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="dzl_tree_node_get_parent">
        <doc xml:space="preserve">Retrieves the parent #DzlTreeNode for @node.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlTreeNode.</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="dzl_tree_node_get_path">
        <doc xml:space="preserve">Gets a #GtkTreePath for @node.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #GtkTreePath if successful; otherwise %NULL.</doc>
          <type name="Gtk.TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reset_on_collapse"
              c:identifier="dzl_tree_node_get_reset_on_collapse">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="dzl_tree_node_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree" c:identifier="dzl_tree_node_get_tree">
        <doc xml:space="preserve">Fetches the #DzlTree instance that owns the node.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #DzlTree.</doc>
          <type name="Tree" c:type="DzlTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_use_dim_label"
              c:identifier="dzl_tree_node_get_use_dim_label">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_use_markup"
              c:identifier="dzl_tree_node_get_use_markup">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_emblem" c:identifier="dzl_tree_node_has_emblem">
        <doc xml:space="preserve">Checks to see if @emblem_name has been added to the #DzlTreeNode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @emblem_name is used by @self</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="emblem_name" transfer-ownership="none">
            <doc xml:space="preserve">a string containing the emblem name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="dzl_tree_node_insert" version="3.28">
        <doc xml:space="preserve">Inserts @child as a child of @self at @position.</doc>
        <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">a #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve">the position for the child</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_sorted" c:identifier="dzl_tree_node_insert_sorted">
        <doc xml:space="preserve">Inserts a @child as a child of @node, sorting it among the other children.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
          <parameter name="compare_func"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve">A compare func to compare nodes.</doc>
            <type name="TreeNodeCompareFunc" c:type="DzlTreeNodeCompareFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @compare_func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="invalidate" c:identifier="dzl_tree_node_invalidate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_root" c:identifier="dzl_tree_node_is_root">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="n_children" c:identifier="dzl_tree_node_n_children">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="nth_child" c:identifier="dzl_tree_node_nth_child">
        <doc xml:space="preserve">Gets the @nth child of @self or %NULL if it does not exist.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #DzlTreeNode or %NULL</doc>
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <doc xml:space="preserve">the index of the child</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="dzl_tree_node_prepend">
        <doc xml:space="preserve">Prepends @child to the list of children owned by @node.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rebuild"
              c:identifier="dzl_tree_node_rebuild"
              version="3.28">
        <doc xml:space="preserve">Rebuilds a node, without invalidating children nodes. If you want to
ensure that children are also rebuilt, use dzl_tree_node_invalidate().</doc>
        <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">a #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="dzl_tree_node_remove">
        <doc xml:space="preserve">Removes @child from the list of children owned by @node.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_emblem" c:identifier="dzl_tree_node_remove_emblem">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="emblem_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select" c:identifier="dzl_tree_node_select">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_children_possible"
              c:identifier="dzl_tree_node_set_children_possible">
        <doc xml:space="preserve">If the node has not yet been built, setting this to %TRUE will add a
dummy child node. This dummy node will be removed when when the node
is built by the registered #DzlTreeBuilder instances.</doc>
        <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">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="children_possible" transfer-ownership="none">
            <doc xml:space="preserve">If the node has children.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_emblems" c:identifier="dzl_tree_node_set_emblems">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="emblems" transfer-ownership="none">
            <type name="utf8" c:type="const gchar* const*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_foreground_rgba"
              c:identifier="dzl_tree_node_set_foreground_rgba"
              version="3.28">
        <doc xml:space="preserve">Sets the foreground-rgba to be used by the row text.

If @foreground_rgba is %NULL, the value is reset to the default.</doc>
        <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">a #DzlTreeNode</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="foreground_rgba"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GdkRGBA or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gicon" c:identifier="dzl_tree_node_set_gicon">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name" c:identifier="dzl_tree_node_set_icon_name">
        <doc xml:space="preserve">Sets the icon name of the node. This is displayed in the pixbuf
cell of the DzlTree.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The icon name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_item" c:identifier="dzl_tree_node_set_item">
        <doc xml:space="preserve">An optional object to associate with the node. This is handy to save needing
to subclass the #DzlTreeNode class.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">A #GObject.</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reset_on_collapse"
              c:identifier="dzl_tree_node_set_reset_on_collapse">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="reset_on_collapse" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text" c:identifier="dzl_tree_node_set_text">
        <doc xml:space="preserve">Sets the text of the node. This is displayed in the text
cell of the DzlTree.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTreeNode.</doc>
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The node text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_dim_label"
              c:identifier="dzl_tree_node_set_use_dim_label">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="use_dim_label" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_markup"
              c:identifier="dzl_tree_node_set_use_markup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="use_markup" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_popover" c:identifier="dzl_tree_node_show_popover">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="TreeNode" c:type="DzlTreeNode*"/>
          </instance-parameter>
          <parameter name="popover" transfer-ownership="none">
            <type name="Gtk.Popover" c:type="GtkPopover*"/>
          </parameter>
        </parameters>
      </method>
      <property name="children-possible"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">This property allows for more lazy loading of nodes.

When a node becomes visible, we normally build its children nodes
so that we know if we need an expansion arrow. However, that can
be expensive when rendering directories with lots of subdirectories.

Using this, you can always show an arrow without building the children
and simply hide the arrow if there were in fact no children (upon
expansion).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="expanded-icon-name"
                writable="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gicon" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The cached GIcon to display.</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="icon-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">An icon-name to display on the row.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="item" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">An optional #GObject to associate with the node.</doc>
        <type name="GObject.Object"/>
      </property>
      <property name="parent" transfer-ownership="none">
        <doc xml:space="preserve">The parent of the node.</doc>
        <type name="TreeNode"/>
      </property>
      <property name="reset-on-collapse"
                version="3.28"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The "reset-on-collapse" property denotes that all children should be
removed from the node when it's row is collapsed. It will also set
#DzlTreeNode:needs-build to %TRUE so the next expansion rebuilds the
children. This is useful for situations where you want to ensure the nodes
are up to date (refreshed) on every expansion.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="text" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Text to display on the tree node.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tree" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The tree the node belongs to.</doc>
        <type name="Tree"/>
      </property>
      <property name="use-dim-label" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="use-markup" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">If the "text" property includes #GMarkup.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="TreeNodeClass"
            c:type="DzlTreeNodeClass"
            glib:is-gtype-struct-for="TreeNode">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
    </record>
    <callback name="TreeNodeCompareFunc" c:type="DzlTreeNodeCompareFunc">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="a" transfer-ownership="none">
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <type name="TreeNode" c:type="DzlTreeNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="Trie"
            c:type="DzlTrie"
            glib:type-name="DzlTrie"
            glib:get-type="dzl_trie_get_type"
            c:symbol-prefix="trie">
      <constructor name="new" c:identifier="dzl_trie_new">
        <doc xml:space="preserve">Creates a new #DzlTrie. When a value is removed from the trie, @value_destroy
will be called to allow you to release any resources.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly allocated #DzlTrie that should be freed
  with dzl_trie_unref().</doc>
          <type name="Trie" c:type="DzlTrie*"/>
        </return-value>
        <parameters>
          <parameter name="value_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">A #GDestroyNotify, or %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="destroy" c:identifier="dzl_trie_destroy">
        <doc xml:space="preserve">This is an alias for dzl_trie_unref().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTrie or %NULL.</doc>
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="dzl_trie_insert">
        <doc xml:space="preserve">Inserts @value into @trie located with @key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTrie.</doc>
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The key to insert.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The value to insert.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="dzl_trie_lookup">
        <doc xml:space="preserve">Looks up @key in @trie and returns the value associated.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The value inserted or %NULL.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTrie.</doc>
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The key to lookup.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dzl_trie_ref">
        <return-value transfer-ownership="full">
          <type name="Trie" c:type="DzlTrie*"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="dzl_trie_remove">
        <doc xml:space="preserve">Removes @key from @trie, possibly destroying the value associated with
the key.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @key was found, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTrie.</doc>
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The key to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="traverse" c:identifier="dzl_trie_traverse">
        <doc xml:space="preserve">Traverses all nodes of @trie according to the parameters. For each node
matching the traversal parameters, @func will be executed.

Only %G_PRE_ORDER and %G_POST_ORDER are supported for @order.

If @max_depth is less than zero, the entire tree will be traversed.
If max_depth is 1, then only the root will be traversed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTrie.</doc>
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The key to start traversal from.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve">The order to traverse.</doc>
            <type name="GLib.TraverseType" c:type="GTraverseType"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">The flags for which nodes to callback.</doc>
            <type name="GLib.TraverseFlags" c:type="GTraverseFlags"/>
          </parameter>
          <parameter name="max_depth" transfer-ownership="none">
            <doc xml:space="preserve">the maximum depth to process.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="5">
            <doc xml:space="preserve">The func to execute for each matching node.</doc>
            <type name="TrieTraverseFunc" c:type="DzlTrieTraverseFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">User data for @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dzl_trie_unref">
        <doc xml:space="preserve">Drops the reference count by one on @trie. When it reaches zero, the
structure is freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="trie" transfer-ownership="none">
            <doc xml:space="preserve">A #DzlTrie or %NULL.</doc>
            <type name="Trie" c:type="DzlTrie*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="TrieTraverseFunc" c:type="DzlTrieTraverseFunc">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="dzl_trie" transfer-ownership="none">
          <type name="Trie" c:type="DzlTrie*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <constant name="VERSION_S" value="3.28.0" c:type="DZL_VERSION_S">
      <doc xml:space="preserve">Dazzle version, encoded as a string, useful for printing and
concatenation.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="WidgetActionGroup"
           c:symbol-prefix="widget_action_group"
           c:type="DzlWidgetActionGroup"
           parent="GObject.Object"
           glib:type-name="DzlWidgetActionGroup"
           glib:get-type="dzl_widget_action_group_get_type"
           glib:type-struct="WidgetActionGroupClass">
      <implements name="Gio.ActionGroup"/>
      <function name="attach" c:identifier="dzl_widget_action_group_attach">
        <doc xml:space="preserve">Helper function to create an #DzlWidgetActionGroup and attach
it to @widget using the group name @group_name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkWidget</doc>
            <type name="Gtk.Widget" c:type="gpointer"/>
          </parameter>
          <parameter name="group_name" transfer-ownership="none">
            <doc xml:space="preserve">the group name to use for the action group</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new" c:identifier="dzl_widget_action_group_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #DzlWidgetActionGroup.</doc>
          <type name="Gio.ActionGroup" c:type="GActionGroup*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </function>
      <method name="set_action_enabled"
              c:identifier="dzl_widget_action_group_set_action_enabled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="WidgetActionGroup" c:type="DzlWidgetActionGroup*"/>
          </instance-parameter>
          <parameter name="action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="enabled" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="widget"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
    </class>
    <record name="WidgetActionGroupClass"
            c:type="DzlWidgetActionGroupClass"
            glib:is-gtype-struct-for="WidgetActionGroup">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="_GraphColumnClass" c:type="_DzlGraphColumnClass">
      <field name="parent" writable="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function name="cairo_region_create_from_clip_extents"
              c:identifier="dzl_cairo_region_create_from_clip_extents">
      <return-value transfer-ownership="full">
        <type name="cairo.Region" c:type="cairo_region_t*"/>
      </return-value>
      <parameters>
        <parameter name="cr" transfer-ownership="none">
          <type name="cairo.Context" c:type="cairo_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_rounded_rectangle"
              c:identifier="dzl_cairo_rounded_rectangle">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="cr" transfer-ownership="none">
          <type name="cairo.Context" c:type="cairo_t*"/>
        </parameter>
        <parameter name="rect" transfer-ownership="none">
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="x_radius" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y_radius" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="cancellable_chain"
              c:identifier="dzl_cancellable_chain"
              version="3.28">
      <doc xml:space="preserve">If both @self and @other are not %NULL, then the cancellation of
@other will be propagated to @self if @other is cancelled.

If @self and @other are the same, @self is returned and no additional
chaining will occur.

If @self and @other are %NULL, then %NULL is returned.
If @self is non-%NULL, it will be returned.
If @self is %NULL and @other is non-%NULL, other will be
returned. This is useful to succinctly chain cancellables like:

|[
cancellable = dzl_cancellable_chain (cancellable, self-&gt;cancellable);
]|</doc>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve">a #GCancellable or %NULL</doc>
        <type name="Gio.Cancellable" c:type="GCancellable*"/>
      </return-value>
      <parameters>
        <parameter name="self"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a #GCancellable or %NULL</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="other"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a #GCancellable or %NULL</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="counter_arena_get_default"
              c:identifier="dzl_counter_arena_get_default"
              moved-to="CounterArena.get_default">
      <return-value transfer-ownership="full">
        <type name="CounterArena" c:type="DzlCounterArena*"/>
      </return-value>
    </function>
    <function name="dnd_get_uri_list" c:identifier="dzl_dnd_get_uri_list">
      <doc xml:space="preserve">Create a list of valid uri's from a uri-list drop.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a string array which will hold the uris or
  %NULL if there were no valid uris. g_strfreev should be used when
  the string array is no longer used</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="selection_data" transfer-ownership="none">
          <doc xml:space="preserve">the #GtkSelectionData from drag_data_received</doc>
          <type name="Gtk.SelectionData" c:type="GtkSelectionData*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_manager_show"
              c:identifier="dzl_file_manager_show"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="fuzzy_highlight" c:identifier="dzl_fuzzy_highlight">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="query" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="case_sensitive" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="g_date_time_format_for_display"
              c:identifier="dzl_g_date_time_format_for_display">
      <doc xml:space="preserve">Helper function to "humanize" a #GDateTime into a relative time
relationship string.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A newly allocated string describing the
  date and time imprecisely such as "Yesterday".</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <doc xml:space="preserve">A #GDateTime</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </parameter>
      </parameters>
    </function>
    <function name="g_time_span_to_label"
              c:identifier="dzl_g_time_span_to_label">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="span" transfer-ownership="none">
          <type name="GLib.TimeSpan" c:type="GTimeSpan"/>
        </parameter>
      </parameters>
    </function>
    <function name="g_time_span_to_label_mapping"
              c:identifier="dzl_g_time_span_to_label_mapping">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="binding" transfer-ownership="none">
          <type name="GObject.Binding" c:type="GBinding*"/>
        </parameter>
        <parameter name="from_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="to_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="g_variant_hash" c:identifier="dzl_g_variant_hash">
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdk_synthesize_event_key"
              c:identifier="dzl_gdk_synthesize_event_key"
              introspectable="0">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A #GdkEventKey</doc>
        <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="ch" transfer-ownership="none">
          <type name="gunichar" c:type="gunichar"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdk_synthesize_event_keyval"
              c:identifier="dzl_gdk_synthesize_event_keyval"
              introspectable="0">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A #GdkEventKey</doc>
        <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_current_cpu_call"
              c:identifier="dzl_get_current_cpu_call">
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="gtk_list_store_insert_sorted"
              c:identifier="dzl_gtk_list_store_insert_sorted"
              version="3.26">
      <doc xml:space="preserve">This function will binary search the contents of @store looking for the
location to insert a new row.

@compare_column must be the index of a column that is a %G_TYPE_POINTER,
%G_TYPE_BOXED or %G_TYPE_OBJECT based column.

@compare_func will be called with @key as the first parameter and the
value from the #GtkListStore row as the second parameter. The third and
final parameter is @compare_data.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="store" transfer-ownership="none">
          <doc xml:space="preserve">A #GtkListStore</doc>
          <type name="Gtk.ListStore" c:type="GtkListStore*"/>
        </parameter>
        <parameter name="iter"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve">A location for a #GtkTextIter</doc>
          <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="key"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A key to compare to when binary searching</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
        <parameter name="compare_column" transfer-ownership="none">
          <doc xml:space="preserve">the column containing the data to compare</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="compare_func"
                   transfer-ownership="none"
                   scope="call"
                   closure="5">
          <doc xml:space="preserve">A callback to compare</doc>
          <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
        </parameter>
        <parameter name="compare_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">data for @compare_func</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_text_buffer_remove_tag"
              c:identifier="dzl_gtk_text_buffer_remove_tag">
      <doc xml:space="preserve">Like gtk_text_buffer_remove_tag() but allows specifying that the tags
should be removed one at a time to avoid over-damaging the views
displaying @buffer.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
        </parameter>
        <parameter name="tag" transfer-ownership="none">
          <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
        </parameter>
        <parameter name="start" transfer-ownership="none">
          <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
        </parameter>
        <parameter name="end" transfer-ownership="none">
          <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
        </parameter>
        <parameter name="minimal_damage" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_action" c:identifier="dzl_gtk_widget_action">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="group" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="param" transfer-ownership="none">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_action_set"
              c:identifier="dzl_gtk_widget_action_set"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="group" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="first_property" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_action_with_string"
              c:identifier="dzl_gtk_widget_action_with_string">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="group" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="param" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_add_style_class"
              c:identifier="dzl_gtk_widget_add_style_class">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="class_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_find_child_typed"
              c:identifier="dzl_gtk_widget_find_child_typed">
      <doc xml:space="preserve">Tries to locate a widget in a hierarchy given it's #GType.

There is not an efficient implementation of this method, so use it
only when the hierarchy of widgets is small.</doc>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve">A widget or %NULL</doc>
        <type name="Gtk.Widget" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_get_relative"
              c:identifier="dzl_gtk_widget_get_relative">
      <doc xml:space="preserve">This is similar to gtk_widget_get_ancestor(), but looks for relatives
via properties such as #GtkPopover:relative-to and others.</doc>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve">A #GtkWidget or %NULL.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve">a #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="relative_type" transfer-ownership="none">
          <doc xml:space="preserve">the type of widget to locate</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_hide_with_fade"
              c:identifier="dzl_gtk_widget_hide_with_fade">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_is_ancestor_or_relative"
              c:identifier="dzl_gtk_widget_is_ancestor_or_relative"
              version="3.26">
      <doc xml:space="preserve">This function is like gtk_widget_is_ancestor() except that it checks
various relative widgets that are not in the direct hierarchy of
widgets. That includes #GtkMenu:attach-widget,
#GtkPopover:relative-to, and #GtkWindow:transient-for.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if @ancestor is an ancestor or relative for @widget.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve">a #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="ancestor" transfer-ownership="none">
          <doc xml:space="preserve">a #GtkWidget that might be an ancestor</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_mux_action_groups"
              c:identifier="dzl_gtk_widget_mux_action_groups">
      <doc xml:space="preserve">This function will find all of the actions on @from_widget in various
groups and add them to @widget. As this just copies the action groups
over, note that it does not allow for muxing items within the same
group.

You should specify a key for @mux_key so that if the same mux key is
seen again, the previous muxings will be removed.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve">a #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="from_widget" transfer-ownership="none">
          <doc xml:space="preserve">A #GtkWidget containing the groups to copy</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="mux_key"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a unique key to represent the muxing</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_remove_style_class"
              c:identifier="dzl_gtk_widget_remove_style_class">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="class_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_widget_show_with_fade"
              c:identifier="dzl_gtk_widget_show_with_fade">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="levenshtein" c:identifier="dzl_levenshtein">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="needle" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="haystack" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_animate"
              c:identifier="dzl_object_animate"
              introspectable="0">
      <doc xml:space="preserve">Animates the properties of @object. The can be set in a similar manner to g_object_set(). They
will be animated from their current value to the target value over the time period.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A #DzlAnimation.
Side effects: None.</doc>
        <type name="Animation" c:type="DzlAnimation*"/>
      </return-value>
      <parameters>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A #GObject.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve">The animation mode.</doc>
          <type name="AnimationMode" c:type="DzlAnimationMode"/>
        </parameter>
        <parameter name="duration_msec" transfer-ownership="none">
          <doc xml:space="preserve">The duration in milliseconds.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="frame_clock" transfer-ownership="none">
          <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/>
        </parameter>
        <parameter name="first_property" transfer-ownership="none">
          <doc xml:space="preserve">The first property to animate.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="object_animate_full"
              c:identifier="dzl_object_animate_full"
              introspectable="0">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A #DzlAnimation.</doc>
        <type name="Animation" c:type="DzlAnimation*"/>
      </return-value>
      <parameters>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <type name="AnimationMode" c:type="DzlAnimationMode"/>
        </parameter>
        <parameter name="duration_msec" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="frame_clock" transfer-ownership="none">
          <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="notify_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="first_property" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="object_animatev"
              c:identifier="dzl_object_animatev"
              introspectable="0">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A #DzlAnimation.</doc>
        <type name="Animation" c:type="DzlAnimation*"/>
      </return-value>
      <parameters>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A #GObject.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve">The animation mode.</doc>
          <type name="AnimationMode" c:type="DzlAnimationMode"/>
        </parameter>
        <parameter name="duration_msec" transfer-ownership="none">
          <doc xml:space="preserve">The duration in milliseconds.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="frame_clock"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The #GdkFrameClock to synchronize to.</doc>
          <type name="Gdk.FrameClock" c:type="GdkFrameClock*"/>
        </parameter>
        <parameter name="first_property" transfer-ownership="none">
          <doc xml:space="preserve">The first property to animate.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <doc xml:space="preserve">A variadac list of arguments</doc>
          <type name="va_list" c:type="va_list"/>
        </parameter>
      </parameters>
    </function>
    <function name="overlay_add_child" c:identifier="dzl_overlay_add_child">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="self" transfer-ownership="none">
          <type name="DockOverlay" c:type="DzlDockOverlay*"/>
        </parameter>
        <parameter name="child" transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pango_font_description_to_css"
              c:identifier="dzl_pango_font_description_to_css">
      <doc xml:space="preserve">This function will generate CSS suitable for Gtk's CSS engine
based on the properties of the #PangoFontDescription.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A newly allocated string containing the
   CSS describing the font description.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="font_desc" transfer-ownership="none">
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rgba_shade" c:identifier="dzl_rgba_shade">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="rgba" transfer-ownership="none">
          <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
        </parameter>
        <parameter name="dst" transfer-ownership="none">
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </parameter>
        <parameter name="k" transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
    <function name="shortcut_chord_equal"
              c:identifier="dzl_shortcut_chord_equal"
              moved-to="ShortcutChord.equal">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="data1"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
        <parameter name="data2"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="shortcut_chord_hash"
              c:identifier="dzl_shortcut_chord_hash"
              moved-to="ShortcutChord.hash">
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="shortcut_chord_table_get_type"
              c:identifier="dzl_shortcut_chord_table_get_type">
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function name="shortcut_chord_table_new"
              c:identifier="dzl_shortcut_chord_table_new"
              moved-to="ShortcutChordTable.new"
              introspectable="0">
      <return-value>
        <type name="ShortcutChordTable" c:type="DzlShortcutChordTable*"/>
      </return-value>
    </function>
  </namespace>
</repository>
