<?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="Gtk" version="3.0"/>
  <include name="WebKit2" version="4.0"/>
  <package name="libdevhelp-3.0"/>
  <c:include name="devhelp/devhelp.h"/>
  <namespace name="Devhelp"
             version="3.0"
             shared-library="libdevhelp-3.so.1.0"
             c:identifier-prefixes="Dh,dh"
             c:symbol-prefixes="dh,dh">
    <class name="AssistantView"
           c:symbol-prefix="assistant_view"
           c:type="DhAssistantView"
           parent="WebKit2.WebView"
           glib:type-name="DhAssistantView"
           glib:get-type="dh_assistant_view_get_type"
           glib:type-struct="AssistantViewClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="dh_assistant_view_new">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #DhAssistantView widget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="search" c:identifier="dh_assistant_view_search">
        <doc xml:space="preserve">Search for @str in the current assistant view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @str was found, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #DhAssistantView.</doc>
            <type name="AssistantView" c:type="DhAssistantView*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">the search query.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_link" c:identifier="dh_assistant_view_set_link">
        <doc xml:space="preserve">Open @link in the assistant view, if %NULL the view will be blanked.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the requested link is open, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #DhAssistantView.</doc>
            <type name="AssistantView" c:type="DhAssistantView*"/>
          </instance-parameter>
          <parameter name="link"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #DhLink to set or %NULL.</doc>
            <type name="Link" c:type="DhLink*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="WebKit2.WebView" c:type="WebKitWebView"/>
      </field>
      <glib:signal name="open-uri">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the uri to open</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="AssistantViewClass"
            c:type="DhAssistantViewClass"
            glib:is-gtype-struct-for="AssistantView">
      <field name="parent_class">
        <type name="WebKit2.WebViewClass" c:type="WebKitWebViewClass"/>
      </field>
    </record>
    <class name="Book"
           c:symbol-prefix="book"
           c:type="DhBook"
           parent="GObject.Object"
           glib:type-name="DhBook"
           glib:get-type="dh_book_get_type"
           glib:type-struct="BookClass">
      <constructor name="new" c:identifier="dh_book_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #DhBook object.</doc>
          <type name="Book" c:type="DhBook*"/>
        </return-value>
        <parameters>
          <parameter name="index_file_path" transfer-ownership="none">
            <doc xml:space="preserve">the path to the index file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="cmp_by_name" c:identifier="dh_book_cmp_by_name">
        <doc xml:space="preserve">Compares the #DhBook's by their name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an integer less than, equal to, or greater than zero, if @a is &lt;, ==
or &gt; than @b.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cmp_by_path" c:identifier="dh_book_cmp_by_path">
        <doc xml:space="preserve">Compares the #DhBook's by their path to the index file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an integer less than, equal to, or greater than zero, if @a is &lt;, ==
or &gt; than @b.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cmp_by_title" c:identifier="dh_book_cmp_by_title">
        <doc xml:space="preserve">Compares the #DhBook's by their title.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an integer less than, equal to, or greater than zero, if @a is &lt;, ==
or &gt; than @b.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_completions" c:identifier="dh_book_get_completions">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the completions
associated with the book.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enabled" c:identifier="dh_book_get_enabled">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the book is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keywords" c:identifier="dh_book_get_keywords">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the list of
&lt;emphasis&gt;all&lt;/emphasis&gt; #DhLink's part of @book, or %NULL if the book is
disabled.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Link"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language" c:identifier="dh_book_get_language">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the book language.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="dh_book_get_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the book name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="dh_book_get_path">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the path to the index file.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="dh_book_get_title">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the book title.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree" c:identifier="dh_book_get_tree">
        <doc xml:space="preserve">Gets the general structure of the book, as a tree. The tree contains only
#DhLink's of type %DH_LINK_TYPE_BOOK or %DH_LINK_TYPE_PAGE. The other
#DhLink's are not contained in the tree. To have a list of
&lt;emphasis&gt;all&lt;/emphasis&gt; #DhLink's part of the book, you need to call
dh_book_get_keywords().</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the tree of #DhLink's part of the @book,
or %NULL if the book is disabled.</doc>
          <type name="GLib.Node" c:type="GNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_enabled" c:identifier="dh_book_set_enabled">
        <doc xml:space="preserve">Enables or disables the book.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBook.</doc>
            <type name="Book" c:type="DhBook*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="deleted" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="enabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="updated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="BookClass"
            c:type="DhBookClass"
            glib:is-gtype-struct-for="Book">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BookManager"
           c:symbol-prefix="book_manager"
           c:type="DhBookManager"
           parent="GObject.Object"
           glib:type-name="DhBookManager"
           glib:get-type="dh_book_manager_get_type"
           glib:type-struct="BookManagerClass">
      <constructor name="new"
                   c:identifier="dh_book_manager_new"
                   deprecated="1"
                   deprecated-version="3.26">
        <doc-deprecated xml:space="preserve">Call dh_book_manager_get_singleton() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #DhBookManager singleton instance. You need to
unref it when no longer needed.</doc>
          <type name="BookManager" c:type="DhBookManager*"/>
        </return-value>
      </constructor>
      <function name="get_singleton"
                c:identifier="dh_book_manager_get_singleton"
                version="3.26">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #DhBookManager singleton instance.</doc>
          <type name="BookManager" c:type="DhBookManager*"/>
        </return-value>
      </function>
      <method name="get_books" c:identifier="dh_book_manager_get_books">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of all #DhBook's
found.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Book"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="book_manager" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBookManager.</doc>
            <type name="BookManager" c:type="DhBookManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_group_by_language"
              c:identifier="dh_book_manager_get_group_by_language">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether the books should be grouped by programming language.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="book_manager" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBookManager.</doc>
            <type name="BookManager" c:type="DhBookManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="populate"
              c:identifier="dh_book_manager_populate"
              deprecated="1"
              deprecated-version="3.26">
        <doc xml:space="preserve">Populates the #DhBookManager with all books found on the system and user
directories.</doc>
        <doc-deprecated xml:space="preserve">The #DhBookManager is now automatically populated when the
object is created, there is no need to call this function anymore.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="book_manager" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBookManager.</doc>
            <type name="BookManager" c:type="DhBookManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_group_by_language"
              c:identifier="dh_book_manager_set_group_by_language">
        <doc xml:space="preserve">Sets whether the books should be grouped by programming language.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="book_manager" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBookManager.</doc>
            <type name="BookManager" c:type="DhBookManager*"/>
          </instance-parameter>
          <parameter name="group_by_language" transfer-ownership="none">
            <doc xml:space="preserve">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="group-by-language"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Whether books should be grouped by programming language.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="book-created" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">the created #DhBook.</doc>
            <type name="Book"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="book-deleted" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">the deleted #DhBook.</doc>
            <type name="Book"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="book-disabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">the disabled #DhBook.</doc>
            <type name="Book"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="book-enabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="book" transfer-ownership="none">
            <doc xml:space="preserve">the enabled #DhBook.</doc>
            <type name="Book"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="language-disabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language_name" transfer-ownership="none">
            <doc xml:space="preserve">the disabled programming language name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="language-enabled" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language_name" transfer-ownership="none">
            <doc xml:space="preserve">the enabled programming language name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BookManagerClass"
            c:type="DhBookManagerClass"
            glib:is-gtype-struct-for="BookManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BookTree"
           c:symbol-prefix="book_tree"
           c:type="DhBookTree"
           parent="Gtk.TreeView"
           glib:type-name="DhBookTree"
           glib:get-type="dh_book_tree_get_type"
           glib:type-struct="BookTreeClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="dh_book_tree_new">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #DhBookTree widget.</doc>
          <type name="BookTree" c:type="DhBookTree*"/>
        </return-value>
      </constructor>
      <method name="get_selected_book"
              c:identifier="dh_book_tree_get_selected_book">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #DhLink of the selected book, or
%NULL if there is no selection.</doc>
          <type name="Link" c:type="DhLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBookTree.</doc>
            <type name="BookTree" c:type="DhBookTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="select_uri" c:identifier="dh_book_tree_select_uri">
        <doc xml:space="preserve">Selects the given @uri.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve">a #DhBookTree.</doc>
            <type name="BookTree" c:type="DhBookTree*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI to select.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.TreeView" c:type="GtkTreeView"/>
      </field>
      <glib:signal name="link-selected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">the selected #DhLink.</doc>
            <type name="Link"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BookTreeClass"
            c:type="DhBookTreeClass"
            glib:is-gtype-struct-for="BookTree">
      <field name="parent_class">
        <type name="Gtk.TreeViewClass" c:type="GtkTreeViewClass"/>
      </field>
    </record>
    <class name="KeywordModel"
           c:symbol-prefix="keyword_model"
           c:type="DhKeywordModel"
           parent="GObject.Object"
           glib:type-name="DhKeywordModel"
           glib:get-type="dh_keyword_model_get_type"
           glib:type-struct="KeywordModelClass">
      <implements name="Gtk.TreeModel"/>
      <constructor name="new" c:identifier="dh_keyword_model_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #DhKeywordModel object.</doc>
          <type name="KeywordModel" c:type="DhKeywordModel*"/>
        </return-value>
      </constructor>
      <method name="filter" c:identifier="dh_keyword_model_filter">
        <doc xml:space="preserve">Searches in the #DhBookManager the list of #DhLink's that correspond to
@search_string, and fills the @model with that list.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #DhLink that matches exactly
@search_string, or %NULL if there is no such #DhLink.</doc>
          <type name="Link" c:type="DhLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve">a #DhKeywordModel.</doc>
            <type name="KeywordModel" c:type="DhKeywordModel*"/>
          </instance-parameter>
          <parameter name="search_string" transfer-ownership="none">
            <doc xml:space="preserve">a search query.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="book_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the ID of the book currently selected, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="language"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="KeywordModelClass"
            c:type="DhKeywordModelClass"
            glib:is-gtype-struct-for="KeywordModel">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Link"
            c:type="DhLink"
            glib:type-name="DhLink"
            glib:get-type="dh_link_get_type"
            c:symbol-prefix="link">
      <constructor name="new" c:identifier="dh_link_new">
        <doc xml:space="preserve">Creates a new #DhLink.

@base_path and @book_id must be provided only for a link of type
%DH_LINK_TYPE_BOOK.

If @type is not a #DH_LINK_TYPE_BOOK, then the @book link must be provided.

@name and @relative_url must always be provided.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #DhLink.</doc>
          <type name="Link" c:type="DhLink*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">the #DhLinkType.</doc>
            <type name="LinkType" c:type="DhLinkType"/>
          </parameter>
          <parameter name="base_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the base path for the book, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="book_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the book ID, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="book"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the book that the link is contained in, or %NULL.</doc>
            <type name="Link" c:type="DhLink*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the link.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="relative_url" transfer-ownership="none">
            <doc xml:space="preserve">the URL relative to the book @base_path. Can contain an
anchor.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="compare" c:identifier="dh_link_compare">
        <doc xml:space="preserve">Compares the links @a and @b. This function is used to determine in which
order the links should be displayed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an integer less than zero if @a should appear before @b; zero if
there are no preferences; an integer greater than zero if @b should appear
before @a.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="gconstpointer"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_book_id" c:identifier="dh_link_get_book_id">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the book ID.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_book_name" c:identifier="dh_link_get_book_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the book that the @link is contained in.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_name" c:identifier="dh_link_get_file_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the file that the @link is contained in.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="dh_link_get_flags">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #DhLinkFlags of @link.</doc>
          <type name="LinkFlags" c:type="DhLinkFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_link_type" c:identifier="dh_link_get_link_type">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #DhLinkType of @link.</doc>
          <type name="LinkType" c:type="DhLinkType"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="dh_link_get_name">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the @link.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="dh_link_get_uri">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the @link URI. Free with g_free() when no longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="dh_link_ref">
        <doc xml:space="preserve">Increases the reference count of @link.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the @link.</doc>
          <type name="Link" c:type="DhLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_flags" c:identifier="dh_link_set_flags">
        <doc xml:space="preserve">Sets the flags of the link.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the new flags of the link.</doc>
            <type name="LinkFlags" c:type="DhLinkFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="dh_link_unref">
        <doc xml:space="preserve">Decreases the reference count of @link.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLink.</doc>
            <type name="Link" c:type="DhLink*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="LinkFlags"
              glib:type-name="DhLinkFlags"
              glib:get-type="dh_link_flags_get_type"
              c:type="DhLinkFlags">
      <member name="none"
              value="0"
              c:identifier="DH_LINK_FLAGS_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags set.</doc>
      </member>
      <member name="deprecated"
              value="1"
              c:identifier="DH_LINK_FLAGS_DEPRECATED"
              glib:nick="deprecated">
        <doc xml:space="preserve">The symbol that the link points to is deprecated.</doc>
      </member>
    </bitfield>
    <enumeration name="LinkType"
                 glib:type-name="DhLinkType"
                 glib:get-type="dh_link_type_get_type"
                 c:type="DhLinkType">
      <doc xml:space="preserve">The type of the content the link points to.</doc>
      <member name="book"
              value="0"
              c:identifier="DH_LINK_TYPE_BOOK"
              glib:nick="book">
        <doc xml:space="preserve">The top-level page of a #DhBook.</doc>
      </member>
      <member name="page"
              value="1"
              c:identifier="DH_LINK_TYPE_PAGE"
              glib:nick="page">
        <doc xml:space="preserve">A page.</doc>
      </member>
      <member name="keyword"
              value="2"
              c:identifier="DH_LINK_TYPE_KEYWORD"
              glib:nick="keyword">
        <doc xml:space="preserve">Another kind of keyword.</doc>
      </member>
      <member name="function"
              value="3"
              c:identifier="DH_LINK_TYPE_FUNCTION"
              glib:nick="function">
        <doc xml:space="preserve">A function keyword.</doc>
      </member>
      <member name="struct"
              value="4"
              c:identifier="DH_LINK_TYPE_STRUCT"
              glib:nick="struct">
        <doc xml:space="preserve">A struct keyword.</doc>
      </member>
      <member name="macro"
              value="5"
              c:identifier="DH_LINK_TYPE_MACRO"
              glib:nick="macro">
        <doc xml:space="preserve">A macro keyword.</doc>
      </member>
      <member name="enum"
              value="6"
              c:identifier="DH_LINK_TYPE_ENUM"
              glib:nick="enum">
        <doc xml:space="preserve">An enum keyword.</doc>
      </member>
      <member name="typedef"
              value="7"
              c:identifier="DH_LINK_TYPE_TYPEDEF"
              glib:nick="typedef">
        <doc xml:space="preserve">A typedef keyword.</doc>
      </member>
      <member name="property"
              value="8"
              c:identifier="DH_LINK_TYPE_PROPERTY"
              glib:nick="property">
        <doc xml:space="preserve">A property keyword.</doc>
      </member>
      <member name="signal"
              value="9"
              c:identifier="DH_LINK_TYPE_SIGNAL"
              glib:nick="signal">
        <doc xml:space="preserve">A signal keyword.</doc>
      </member>
      <function name="to_string" c:identifier="dh_link_type_to_string">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string representation of the #DhLinkType, translated in the
current language.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="link_type" transfer-ownership="none">
            <doc xml:space="preserve">a #DhLinkType.</doc>
            <type name="LinkType" c:type="DhLinkType"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="Sidebar"
           c:symbol-prefix="sidebar"
           c:type="DhSidebar"
           parent="Gtk.Box"
           glib:type-name="DhSidebar"
           glib:get-type="dh_sidebar_get_type"
           glib:type-struct="SidebarClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="dh_sidebar_new">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #DhSidebar widget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="book_manager"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #DhBookManager. This parameter is deprecated,
you should just pass %NULL.</doc>
            <type name="BookManager" c:type="DhBookManager*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="link_selected">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <type name="Sidebar" c:type="DhSidebar*"/>
          </instance-parameter>
          <parameter name="link" transfer-ownership="none">
            <type name="Link" c:type="DhLink*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_selected_book"
              c:identifier="dh_sidebar_get_selected_book">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #DhLink of the selected book, or
%NULL if there is no selection.</doc>
          <type name="Link" c:type="DhLink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sidebar" transfer-ownership="none">
            <doc xml:space="preserve">a #DhSidebar.</doc>
            <type name="Sidebar" c:type="DhSidebar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="select_uri" c:identifier="dh_sidebar_select_uri">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sidebar" transfer-ownership="none">
            <doc xml:space="preserve">a #DhSidebar.</doc>
            <type name="Sidebar" c:type="DhSidebar*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI to select.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_focus"
              c:identifier="dh_sidebar_set_search_focus">
        <doc xml:space="preserve">Gives the focus to the search entry.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sidebar" transfer-ownership="none">
            <doc xml:space="preserve">a #DhSidebar.</doc>
            <type name="Sidebar" c:type="DhSidebar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_search_string"
              c:identifier="dh_sidebar_set_search_string">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sidebar" transfer-ownership="none">
            <doc xml:space="preserve">a #DhSidebar.</doc>
            <type name="Sidebar" c:type="DhSidebar*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">the string to search.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </field>
      <glib:signal name="link-selected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="link" transfer-ownership="none">
            <doc xml:space="preserve">the selected #DhLink.</doc>
            <type name="Link"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SidebarClass"
            c:type="DhSidebarClass"
            glib:is-gtype-struct-for="Sidebar">
      <field name="parent_class">
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
      <field name="link_selected">
        <callback name="link_selected">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="search" transfer-ownership="none">
              <type name="Sidebar" c:type="DhSidebar*"/>
            </parameter>
            <parameter name="link" transfer-ownership="none">
              <type name="Link" c:type="DhLink*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function name="finalize" c:identifier="dh_finalize" version="3.26">
      <doc xml:space="preserve">Free the resources allocated by Devhelp. For example it unrefs the singleton
objects.

It is not mandatory to call this function, it's just to be friendlier to
memory debugging tools. This function is meant to be called at the end of
main(). It can be called several times.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="init" c:identifier="dh_init">
      <doc xml:space="preserve">Initializes the Devhelp library (e.g. for the internationalization).

This function can be called several times, but is meant to be called at the
beginning of main(), before any other Devhelp function call.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="link_type_to_string"
              c:identifier="dh_link_type_to_string"
              moved-to="LinkType.to_string">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string representation of the #DhLinkType, translated in the
current language.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="link_type" transfer-ownership="none">
          <doc xml:space="preserve">a #DhLinkType.</doc>
          <type name="LinkType" c:type="DhLinkType"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
