<?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="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <namespace name="Gtd"
             version="1.0"
             shared-library=""
             c:identifier-prefixes="Gtd"
             c:symbol-prefixes="gtd">
    <interface name="Activatable"
               c:symbol-prefix="activatable"
               c:type="GtdActivatable"
               glib:type-name="GtdActivatable"
               glib:get-type="gtd_activatable_get_type"
               glib:type-struct="ActivatableInterface">
      <virtual-method name="activate" invoker="activate">
        <doc xml:space="preserve">Activates the extension. This is the starting point where
the implementation does everything it needs to do. Avoid
doing it earlier than this call.

This function is called after the extension is loaded and
the signals are connected. If you want to do anything before
that, the _init function should be used instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="deactivate" invoker="deactivate">
        <doc xml:space="preserve">Deactivates the extension. Here, the extension should remove
all providers and panels it set.

This function is called before the extension is removed. At
this point, the plugin manager already removed all providers
and widgets this extension exported. If you want to do anything
after the extension is removed, use GObject::finalize instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_header_widgets" invoker="get_header_widgets">
        <doc xml:space="preserve">Retrieve the list header widgets of @activatable if any.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a #GList</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gtk.Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_panels" invoker="get_panels">
        <doc xml:space="preserve">Retrieve the panel list of @activatable if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GList</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Panel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_preferences_panel"
                      invoker="get_preferences_panel">
        <doc xml:space="preserve">Retrieve the preferences panel of @activatable if any.</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="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_providers" invoker="get_providers">
        <doc xml:space="preserve">Retrieve the providers of @activatable if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GList</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Provider"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="activate" c:identifier="gtd_activatable_activate">
        <doc xml:space="preserve">Activates the extension. This is the starting point where
the implementation does everything it needs to do. Avoid
doing it earlier than this call.

This function is called after the extension is loaded and
the signals are connected. If you want to do anything before
that, the _init function should be used instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="deactivate" c:identifier="gtd_activatable_deactivate">
        <doc xml:space="preserve">Deactivates the extension. Here, the extension should remove
all providers and panels it set.

This function is called before the extension is removed. At
this point, the plugin manager already removed all providers
and widgets this extension exported. If you want to do anything
after the extension is removed, use GObject::finalize instead.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_header_widgets"
              c:identifier="gtd_activatable_get_header_widgets">
        <doc xml:space="preserve">Retrieve the list header widgets of @activatable if any.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a #GList</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gtk.Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_panels" c:identifier="gtd_activatable_get_panels">
        <doc xml:space="preserve">Retrieve the panel list of @activatable if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GList</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Panel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preferences_panel"
              c:identifier="gtd_activatable_get_preferences_panel">
        <doc xml:space="preserve">Retrieve the preferences panel of @activatable if any.</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="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_providers"
              c:identifier="gtd_activatable_get_providers">
        <doc xml:space="preserve">Retrieve the providers of @activatable if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GList</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Provider"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="activatable" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdActivatable</doc>
            <type name="Activatable" c:type="GtdActivatable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="preferences-panel" transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <glib:signal name="panel-added" when="last">
        <doc xml:space="preserve">The ::panel-added signal is emmited after a #GtdPanel
is connected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="panel-removed" when="last">
        <doc xml:space="preserve">The ::panel-removed signal is emmited after a #GtdPanel
is removed from the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="provider-added" when="last">
        <doc xml:space="preserve">The ::provider-added signal is emmited after a #GtdProvider
is connected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="provider-changed" when="last">
        <doc xml:space="preserve">The ::provider-changed signal is emmited after a #GtdProvider
has any of it's properties changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="provider-removed" when="last">
        <doc xml:space="preserve">The ::provider-removed signal is emmited after a #GtdProvider
is disconnected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="ActivatableInterface"
            c:type="GtdActivatableInterface"
            glib:is-gtype-struct-for="Activatable">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="activate">
        <callback name="activate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="activatable" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdActivatable</doc>
              <type name="Activatable" c:type="GtdActivatable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deactivate">
        <callback name="deactivate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="activatable" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdActivatable</doc>
              <type name="Activatable" c:type="GtdActivatable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_header_widgets">
        <callback name="get_header_widgets">
          <return-value transfer-ownership="container">
            <doc xml:space="preserve">a #GList</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gtk.Widget"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="activatable" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdActivatable</doc>
              <type name="Activatable" c:type="GtdActivatable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_preferences_panel">
        <callback name="get_preferences_panel">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">a #GtkWidget, or %NULL</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="activatable" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdActivatable</doc>
              <type name="Activatable" c:type="GtdActivatable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_panels">
        <callback name="get_panels">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">a #GList</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Panel"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="activatable" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdActivatable</doc>
              <type name="Activatable" c:type="GtdActivatable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_providers">
        <callback name="get_providers">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">a #GList</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Provider"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="activatable" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdActivatable</doc>
              <type name="Activatable" c:type="GtdActivatable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="Application" c:type="GtdApplication" disguised="1">
    </record>
    <record name="InitialSetupWindow"
            c:type="GtdInitialSetupWindow"
            disguised="1">
    </record>
    <enumeration name="ListSelectorViewType" c:type="GtdListSelectorViewType">
      <member name="grid" value="0" c:identifier="GTD_LIST_SELECTOR_VIEW_GRID">
      </member>
      <member name="list" value="1" c:identifier="GTD_LIST_SELECTOR_VIEW_LIST">
      </member>
    </enumeration>
    <record name="ListView" c:type="GtdListView" disguised="1">
    </record>
    <class name="Manager"
           c:symbol-prefix="manager"
           c:type="GtdManager"
           parent="Object"
           glib:type-name="GtdManager"
           glib:get-type="gtd_manager_get_type"
           glib:type-struct="ManagerClass">
      <constructor name="new" c:identifier="gtd_manager_new">
        <return-value transfer-ownership="full">
          <type name="Manager" c:type="GtdManager*"/>
        </return-value>
      </constructor>
      <function name="get_default" c:identifier="gtd_manager_get_default">
        <doc xml:space="preserve">Retrieves the singleton #GtdManager instance. You should always
use this function instead of @gtd_manager_new.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the singleton #GtdManager instance.</doc>
          <type name="Manager" c:type="GtdManager*"/>
        </return-value>
      </function>
      <method name="create_task" c:identifier="gtd_manager_create_task">
        <doc xml:space="preserve">Ask for @task's parent list source to create @task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_task_list"
              c:identifier="gtd_manager_create_task_list">
        <doc xml:space="preserve">Creates a new task list at the given source.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_error_message"
              c:identifier="gtd_manager_emit_error_message"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="primary_message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="secondary_message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="function" transfer-ownership="none" closure="3">
            <type name="NotificationActionFunc"
                  c:type="GtdNotificationActionFunc"/>
          </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_default_provider"
              c:identifier="gtd_manager_get_default_provider">
        <doc xml:space="preserve">Retrieves the default provider location. Default is "local".</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the default provider.</doc>
          <type name="Provider" c:type="GtdProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_task_list"
              c:identifier="gtd_manager_get_default_task_list">
        <doc xml:space="preserve">Retrieves the default tasklist of the default provider.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a #GtdTaskList</doc>
          <type name="TaskList" c:type="GtdTaskList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_first_run"
              c:identifier="gtd_manager_get_is_first_run">
        <doc xml:space="preserve">Retrieves the 'first-run' setting.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if GNOME To Do was never run before, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_panels" c:identifier="gtd_manager_get_panels">
        <doc xml:space="preserve">Retrieves the list of currently loaded #GtdPanel
instances.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a #GList of #GtdPanel</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Panel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_providers" c:identifier="gtd_manager_get_providers">
        <doc xml:space="preserve">Retrieves the list of available #GtdProvider.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a newly allocated #GList of
#GtdStorage. Free with @g_list_free after use.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Provider"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settings" c:identifier="gtd_manager_get_settings">
        <doc xml:space="preserve">Retrieves the internal #GSettings from @manager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the internal #GSettings of @manager</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_task_lists" c:identifier="gtd_manager_get_task_lists">
        <doc xml:space="preserve">Retrieves the list of #GtdTaskList already loaded.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a newly allocated list of #GtdTaskList, or %NULL if none.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TaskList"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timer" c:identifier="gtd_manager_get_timer">
        <doc xml:space="preserve">Retrieves the #GtdTimer from @self. You can use the
timer to know when your code should be updated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GtdTimer</doc>
          <type name="Timer" c:type="GtdTimer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_task" c:identifier="gtd_manager_remove_task">
        <doc xml:space="preserve">Ask for @task's parent list source to remove @task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_task_list"
              c:identifier="gtd_manager_remove_task_list">
        <doc xml:space="preserve">Deletes @list from the registry.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_task_list" c:identifier="gtd_manager_save_task_list">
        <doc xml:space="preserve">Save or create @list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_provider"
              c:identifier="gtd_manager_set_default_provider">
        <doc xml:space="preserve">Sets the provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="provider"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the default provider.</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_task_list"
              c:identifier="gtd_manager_set_default_task_list">
        <doc xml:space="preserve">Sets the default task list of the application.</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 #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="list"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GtdTaskList, or %NULL</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_first_run"
              c:identifier="gtd_manager_set_is_first_run">
        <doc xml:space="preserve">Sets the 'first-run' setting.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="is_first_run" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to make it first run, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_task" c:identifier="gtd_manager_update_task">
        <doc xml:space="preserve">Ask for @task's parent list source to update @task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Manager" c:type="GtdManager*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <property name="default-provider" writable="1" transfer-ownership="none">
        <type name="Provider"/>
      </property>
      <property name="default-task-list"
                writable="1"
                transfer-ownership="none">
        <type name="TaskList"/>
      </property>
      <property name="plugin-manager"
                introspectable="0"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="timer" transfer-ownership="none">
        <type name="Timer"/>
      </property>
      <glib:signal name="list-added" when="last">
        <doc xml:space="preserve">The ::list-added signal is emmited after a #GtdTaskList
is connected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="list-changed" when="last">
        <doc xml:space="preserve">The ::list-changed signal is emmited after a #GtdTaskList
has any of it's properties changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="list-removed" when="last">
        <doc xml:space="preserve">The ::list-removed signal is emmited after a #GtdTaskList
is disconnected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="panel-added" when="last">
        <doc xml:space="preserve">The ::panel-added signal is emmited after a #GtdPanel
is added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="panel-removed" when="last">
        <doc xml:space="preserve">The ::panel-removed signal is emmited after a #GtdPanel
is removed from the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="provider-added" when="last">
        <doc xml:space="preserve">The ::provider-added signal is emmited after a #GtdProvider
is added.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="provider-removed" when="last">
        <doc xml:space="preserve">The ::provider-removed signal is emmited after a #GtdProvider
is removed from the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-error-message" when="last">
        <doc xml:space="preserve">Notifies about errors, and sends the error message for widgets
to display.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="primary_text" transfer-ownership="none">
            <doc xml:space="preserve">the primary message</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="secondary_text" transfer-ownership="none">
            <doc xml:space="preserve">the detailed explanation of the error or the text to the notification button.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="action"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optionally action of type GtdNotificationActionFunc ignored if it's null.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data passed to the action.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ManagerClass"
            c:type="GtdManagerClass"
            glib:is-gtype-struct-for="Manager">
      <field name="parent_class">
        <type name="ObjectClass" c:type="GtdObjectClass"/>
      </field>
    </record>
    <class name="Notification"
           c:symbol-prefix="notification"
           c:type="GtdNotification"
           parent="Object"
           glib:type-name="GtdNotification"
           glib:get-type="gtd_notification_get_type"
           glib:type-struct="NotificationClass">
      <constructor name="new" c:identifier="gtd_notification_new">
        <doc xml:space="preserve">Creates a new notification with @text and @timeout. If @timeout is
0, the notification is indefinitely displayed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GtdNotification</doc>
          <type name="Notification" c:type="GtdNotification*"/>
        </return-value>
        <parameters>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">text of the notification</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">time for the notification to stay visible</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="execute_primary_action"
              c:identifier="gtd_notification_execute_primary_action">
        <doc xml:space="preserve">Executes the primary action of @notification if set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="execute_secondary_action"
              c:identifier="gtd_notification_execute_secondary_action">
        <doc xml:space="preserve">Executes the secondary action of @notification if any.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="gtd_notification_get_text">
        <doc xml:space="preserve">Gets the text of @notification.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the text of @notification.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timeout" c:identifier="gtd_notification_get_timeout">
        <doc xml:space="preserve">Retrieves the timeout of @notification.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the timeout of @notification.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_primary_action"
              c:identifier="gtd_notification_set_primary_action">
        <doc xml:space="preserve">Sets the primary action of @notification, which is triggered
on dismiss or timeout.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">the primary action function</doc>
            <type name="NotificationActionFunc"
                  c:type="GtdNotificationActionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_secondary_action"
              c:identifier="gtd_notification_set_secondary_action">
        <doc xml:space="preserve">Sets the secondary action of @notification, which is triggered
only on user explicit input.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the secondary action</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve">the secondary action function</doc>
            <type name="NotificationActionFunc"
                  c:type="GtdNotificationActionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text" c:identifier="gtd_notification_set_text">
        <doc xml:space="preserve">Sets the text of @notification to @text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">the user-visible text of @notification</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_timeout" c:identifier="gtd_notification_set_timeout">
        <doc xml:space="preserve">Sets the timeout of @notification to @timeout. Set it to %0 to disable
the timeout.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">the time to wait before running @notification, in miliseconds</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="gtd_notification_start">
        <doc xml:space="preserve">Starts the timeout of notification. Use gtd_notification_stop()
to stop it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gtd_notification_stop">
        <doc xml:space="preserve">Stops the timeout of notification. Use gtd_notification_start()
to start it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="has-primary-action" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="has-secondary-action" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="secondary-action-name"
                writable="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="text" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="timeout" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <glib:signal name="executed" when="first">
        <doc xml:space="preserve">The ::executed signal is emmited after the primary or secondary
#GtdNotification action is executed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <callback name="NotificationActionFunc" c:type="GtdNotificationActionFunc">
      <doc xml:space="preserve">Will be called when the primary or secondary action of @notification
is executed.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="notification" transfer-ownership="none">
          <doc xml:space="preserve">the #GtdNotification running the function</doc>
          <type name="Notification" c:type="GtdNotification*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="NotificationClass"
            c:type="GtdNotificationClass"
            glib:is-gtype-struct-for="Notification">
      <field name="parent_class">
        <type name="ObjectClass" c:type="GtdObjectClass"/>
      </field>
    </record>
    <record name="NotificationWidget"
            c:type="GtdNotificationWidget"
            disguised="1">
    </record>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="GtdObject"
           parent="GObject.Object"
           glib:type-name="GtdObject"
           glib:get-type="gtd_object_get_type"
           glib:type-struct="ObjectClass">
      <constructor name="new" c:identifier="gtd_object_new">
        <doc xml:space="preserve">Creates a new #GtdObject object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GtdObject</doc>
          <type name="Object" c:type="GtdObject*"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">unique identifier of the object</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="get_uid" invoker="get_uid">
        <doc xml:space="preserve">Retrieves the internal unique identifier of @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the unique identifier of @object. Do
not free after usage.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdObject</doc>
            <type name="Object" c:type="GtdObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_uid" invoker="set_uid">
        <doc xml:space="preserve">Sets the unique identifier of @object to @uid. Only
a #GtdBackend should do it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdObject</doc>
            <type name="Object" c:type="GtdObject*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">the unique identifier of @object</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_ready" c:identifier="gtd_object_get_ready">
        <doc xml:space="preserve">Whether @object is ready.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @object is ready, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdObject</doc>
            <type name="Object" c:type="GtdObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="gtd_object_get_uid">
        <doc xml:space="preserve">Retrieves the internal unique identifier of @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the unique identifier of @object. Do
not free after usage.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdObject</doc>
            <type name="Object" c:type="GtdObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_ready" c:identifier="gtd_object_set_ready">
        <doc xml:space="preserve">Sets the GtdObject::ready property to @ready.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdObject</doc>
            <type name="Object" c:type="GtdObject*"/>
          </instance-parameter>
          <parameter name="ready" transfer-ownership="none">
            <doc xml:space="preserve">whether @object is ready or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uid" c:identifier="gtd_object_set_uid">
        <doc xml:space="preserve">Sets the unique identifier of @object to @uid. Only
a #GtdBackend should do it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdObject</doc>
            <type name="Object" c:type="GtdObject*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">the unique identifier of @object</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="ready" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="uid"
                writable="1"
                construct="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="ObjectClass"
            c:type="GtdObjectClass"
            glib:is-gtype-struct-for="Object">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="get_uid">
        <callback name="get_uid">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the unique identifier of @object. Do
not free after usage.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdObject</doc>
              <type name="Object" c:type="GtdObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_uid">
        <callback name="set_uid">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdObject</doc>
              <type name="Object" c:type="GtdObject*"/>
            </parameter>
            <parameter name="uid" transfer-ownership="none">
              <doc xml:space="preserve">the unique identifier of @object</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Panel"
               c:symbol-prefix="panel"
               c:type="GtdPanel"
               glib:type-name="GtdPanel"
               glib:get-type="gtd_panel_get_type"
               glib:type-struct="PanelInterface">
      <prerequisite name="Gtk.Widget"/>
      <virtual-method name="get_header_widgets" invoker="get_header_widgets">
        <doc xml:space="preserve">Retrieves the list of widgets to be placed at headerbar. The
position of the widget is determined by the #GtkWidget::halign
property.

Widgets with @GTK_ALIGN_START halign will be packed into the
start of the headerbar, and @GTK_ALIGN_END at the end. Other
values are silently ignored.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of #GtkWidget</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gtk.Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_menu" invoker="get_menu">
        <doc xml:space="preserve">Retrieves the gear menu of @panel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GMenu</doc>
          <type name="Gio.Menu" c:type="const GMenu*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_panel_name" invoker="get_panel_name">
        <doc xml:space="preserve">Retrieves the name of @panel</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @panel</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_panel_title" invoker="get_panel_title">
        <doc xml:space="preserve">Retrieves the title of @panel</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the title of @panel</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_header_widgets"
              c:identifier="gtd_panel_get_header_widgets">
        <doc xml:space="preserve">Retrieves the list of widgets to be placed at headerbar. The
position of the widget is determined by the #GtkWidget::halign
property.

Widgets with @GTK_ALIGN_START halign will be packed into the
start of the headerbar, and @GTK_ALIGN_END at the end. Other
values are silently ignored.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of #GtkWidget</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gtk.Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_menu" c:identifier="gtd_panel_get_menu">
        <doc xml:space="preserve">Retrieves the gear menu of @panel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GMenu</doc>
          <type name="Gio.Menu" c:type="const GMenu*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_panel_name" c:identifier="gtd_panel_get_panel_name">
        <doc xml:space="preserve">Retrieves the name of @panel</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @panel</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_panel_title" c:identifier="gtd_panel_get_panel_title">
        <doc xml:space="preserve">Retrieves the title of @panel</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the title of @panel</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="panel" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdPanel</doc>
            <type name="Panel" c:type="GtdPanel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="menu" transfer-ownership="none">
        <type name="Gio.Menu"/>
      </property>
      <property name="name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </interface>
    <record name="PanelInterface"
            c:type="GtdPanelInterface"
            glib:is-gtype-struct-for="Panel">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_panel_name">
        <callback name="get_panel_name">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the name of @panel</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdPanel</doc>
              <type name="Panel" c:type="GtdPanel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_panel_title">
        <callback name="get_panel_title">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the title of @panel</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdPanel</doc>
              <type name="Panel" c:type="GtdPanel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_header_widgets">
        <callback name="get_header_widgets">
          <return-value transfer-ownership="container">
            <doc xml:space="preserve">the list of #GtkWidget</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gtk.Widget"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdPanel</doc>
              <type name="Panel" c:type="GtdPanel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_menu">
        <callback name="get_menu">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">a #GMenu</doc>
            <type name="Gio.Menu" c:type="const GMenu*"/>
          </return-value>
          <parameters>
            <parameter name="panel" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdPanel</doc>
              <type name="Panel" c:type="GtdPanel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="PluginManager" c:type="GtdPluginManager" disguised="1">
    </record>
    <interface name="Provider"
               c:symbol-prefix="provider"
               c:type="GtdProvider"
               glib:type-name="GtdProvider"
               glib:get-type="gtd_provider_get_type"
               glib:type-struct="ProviderInterface">
      <prerequisite name="Object"/>
      <virtual-method name="create_task" invoker="create_task">
        <doc xml:space="preserve">Creates the given task in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_task_list" invoker="create_task_list">
        <doc xml:space="preserve">Creates the given list in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_default_task_list"
                      invoker="get_default_task_list">
        <doc xml:space="preserve">Retrieves the default tasklist of @provider.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the default tasklist, or %NULL</doc>
          <type name="TaskList" c:type="GtdTaskList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_description" invoker="get_description">
        <doc xml:space="preserve">Retrieves the description of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the description of @provider</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_edit_panel" invoker="get_edit_panel">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="const GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_enabled" invoker="get_enabled">
        <doc xml:space="preserve">Retrieves whether @provider is enabled or not. A disabled
provider cannot be selected to be default nor be selected
to add tasks to it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if provider is enabled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_icon" invoker="get_icon">
        <doc xml:space="preserve">The icon of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_id" invoker="get_id">
        <doc xml:space="preserve">Retrieves the identifier of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the id of @provider</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name">
        <doc xml:space="preserve">Retrieves the user-visible name of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @provider</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_task_lists" invoker="get_task_lists">
        <doc xml:space="preserve">Retrieves the tasklists that this provider contains.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of tasks, or %NULL</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TaskList"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_task" invoker="remove_task">
        <doc xml:space="preserve">Removes the given task from @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_task_list" invoker="remove_task_list">
        <doc xml:space="preserve">Removes the given list from @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_default_task_list"
                      invoker="set_default_task_list">
        <doc xml:space="preserve">Sets the default tasklist of @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_task" invoker="update_task">
        <doc xml:space="preserve">Updates the given task in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_task_list" invoker="update_task_list">
        <doc xml:space="preserve">Updates the given list in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="create_task" c:identifier="gtd_provider_create_task">
        <doc xml:space="preserve">Creates the given task in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_task_list"
              c:identifier="gtd_provider_create_task_list">
        <doc xml:space="preserve">Creates the given list in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_task_list"
              c:identifier="gtd_provider_get_default_task_list">
        <doc xml:space="preserve">Retrieves the default tasklist of @provider.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the default tasklist, or %NULL</doc>
          <type name="TaskList" c:type="GtdTaskList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gtd_provider_get_description">
        <doc xml:space="preserve">Retrieves the description of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the description of @provider</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_edit_panel" c:identifier="gtd_provider_get_edit_panel">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="const GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enabled" c:identifier="gtd_provider_get_enabled">
        <doc xml:space="preserve">Retrieves whether @provider is enabled or not. A disabled
provider cannot be selected to be default nor be selected
to add tasks to it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if provider is enabled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon" c:identifier="gtd_provider_get_icon">
        <doc xml:space="preserve">The icon of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gtd_provider_get_id">
        <doc xml:space="preserve">Retrieves the identifier of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the id of @provider</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gtd_provider_get_name">
        <doc xml:space="preserve">Retrieves the user-visible name of @provider.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @provider</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_task_lists" c:identifier="gtd_provider_get_task_lists">
        <doc xml:space="preserve">Retrieves the tasklists that this provider contains.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of tasks, or %NULL</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TaskList"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_task" c:identifier="gtd_provider_remove_task">
        <doc xml:space="preserve">Removes the given task from @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_task_list"
              c:identifier="gtd_provider_remove_task_list">
        <doc xml:space="preserve">Removes the given list from @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_task_list"
              c:identifier="gtd_provider_set_default_task_list">
        <doc xml:space="preserve">Sets the default tasklist of @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_task" c:identifier="gtd_provider_update_task">
        <doc xml:space="preserve">Updates the given task in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_task_list"
              c:identifier="gtd_provider_update_task_list">
        <doc xml:space="preserve">Updates the given list in @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <property name="default-task-list"
                writable="1"
                transfer-ownership="none">
        <type name="TaskList"/>
      </property>
      <property name="description" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="enabled" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon" transfer-ownership="none">
        <type name="Gio.Icon"/>
      </property>
      <property name="id" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="list-added" when="last">
        <doc xml:space="preserve">The ::list-added signal is emmited after a #GtdTaskList
is connected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="list-changed" when="last">
        <doc xml:space="preserve">The ::list-changed signal is emmited after a #GtdTaskList
has any of it's properties changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="list-removed" when="last">
        <doc xml:space="preserve">The ::list-removed signal is emmited after a #GtdTaskList
is disconnected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="ProviderInterface"
            c:type="GtdProviderInterface"
            glib:is-gtype-struct-for="Provider">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_id">
        <callback name="get_id">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the id of @provider</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_name">
        <callback name="get_name">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the name of @provider</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_description">
        <callback name="get_description">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the description of @provider</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_enabled">
        <callback name="get_enabled">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if provider is enabled, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_icon">
        <callback name="get_icon">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">a #GIcon</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_edit_panel">
        <callback name="get_edit_panel">
          <return-value transfer-ownership="none">
            <type name="Gtk.Widget" c:type="const GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_task">
        <callback name="create_task">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="task" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTask</doc>
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_task">
        <callback name="update_task">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="task" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTask</doc>
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_task">
        <callback name="remove_task">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="task" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTask</doc>
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_task_list">
        <callback name="create_task_list">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="list" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTaskList</doc>
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_task_list">
        <callback name="update_task_list">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="list" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTaskList</doc>
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_task_list">
        <callback name="remove_task_list">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="list" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTaskList</doc>
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_task_lists">
        <callback name="get_task_lists">
          <return-value transfer-ownership="container">
            <doc xml:space="preserve">the list of tasks, or %NULL</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="TaskList"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_default_task_list">
        <callback name="get_default_task_list">
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve">the default tasklist, or %NULL</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_default_task_list">
        <callback name="set_default_task_list">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdProvider</doc>
              <type name="Provider" c:type="GtdProvider*"/>
            </parameter>
            <parameter name="list" transfer-ownership="none">
              <doc xml:space="preserve">a #GtdTaskList</doc>
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="Storage" c:type="GtdStorage" disguised="1">
    </record>
    <record name="StoragePopover" c:type="GtdStoragePopover" disguised="1">
    </record>
    <record name="StorageRow" c:type="GtdStorageRow" disguised="1">
    </record>
    <record name="StorageSelector" c:type="GtdStorageSelector" disguised="1">
    </record>
    <class name="Task"
           c:symbol-prefix="task"
           c:type="GtdTask"
           parent="Object"
           glib:type-name="GtdTask"
           glib:get-type="gtd_task_get_type"
           glib:type-struct="TaskClass">
      <constructor name="new" c:identifier="gtd_task_new" introspectable="0">
        <doc xml:space="preserve">Creates a new #GtdTask</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GtdTask</doc>
          <type name="Task" c:type="GtdTask*"/>
        </return-value>
        <parameters>
          <parameter name="component"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #ECalComponent</doc>
            <type c:type="ECalComponent*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="subtask_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="subtask" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="subtask_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="subtask" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="abort" c:identifier="gtd_task_abort">
        <doc xml:space="preserve">Cancels any editing made on @task after the latest
call of @gtd_task_save.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_subtask" c:identifier="gtd_task_add_subtask">
        <doc xml:space="preserve">Adds @subtask as a subtask of @self.</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 #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="subtask" transfer-ownership="none">
            <doc xml:space="preserve">the subtask to be added to @self</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="gtd_task_compare">
        <doc xml:space="preserve">Compare @t1 and @t2.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%-1 if @t1 comes before @t2, %1 for the opposite, %0 if they're equal</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="t1"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="t2"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_complete" c:identifier="gtd_task_get_complete">
        <doc xml:space="preserve">Retrieves whether the task is complete or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the task is complete, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_component"
              c:identifier="gtd_task_get_component"
              introspectable="0">
        <doc xml:space="preserve">Retrieves the internal #ECalComponent of @task.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #ECalComponent</doc>
          <type c:type="ECalComponent*"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_creation_date"
              c:identifier="gtd_task_get_creation_date">
        <doc xml:space="preserve">Returns the #GDateTime that represents the task's creation date.
The value is referenced for thread safety. Returns %NULL if
no date is set.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the internal #GDateTime referenced
for thread safety, or %NULL. Unreference it after use.</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_depth" c:identifier="gtd_task_get_depth">
        <doc xml:space="preserve">Retrieves the depth of @self in the subtasks tree.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the depth of the task.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description" c:identifier="gtd_task_get_description">
        <doc xml:space="preserve">Retrieves the description of the task.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the description of @task</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_due_date" c:identifier="gtd_task_get_due_date">
        <doc xml:space="preserve">Returns the #GDateTime that represents the task's due date.
The value is referenced for thread safety. Returns %NULL if
no date is set.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the internal #GDateTime referenced
for thread safety, or %NULL. Unreference it after use.</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_list" c:identifier="gtd_task_get_list">
        <doc xml:space="preserve">Returns a weak reference to the #GtdTaskList that
owns the given @task.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a weak reference to the
#GtdTaskList that owns @task. Do not free after
usage.</doc>
          <type name="TaskList" c:type="GtdTaskList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="gtd_task_get_parent">
        <doc xml:space="preserve">Retrieves the parent task of @self, or %NULL if none is set.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">the #GtdTask that is parent of @self</doc>
          <type name="Task" c:type="GtdTask*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority" c:identifier="gtd_task_get_priority">
        <doc xml:space="preserve">Returns the priority of @task inside the parent #GtdTaskList,
or -1 if not set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the priority of the task, or 0</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtasks" c:identifier="gtd_task_get_subtasks">
        <doc xml:space="preserve">Retrieves the subtasks of @self, or %NULL if it has no subtasks.</doc>
        <return-value transfer-ownership="container" nullable="1">
          <doc xml:space="preserve">the subtasks of @self</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Task"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="gtd_task_get_title">
        <doc xml:space="preserve">Retrieves the title of the task, or %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the title of @task, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_subtask" c:identifier="gtd_task_is_subtask">
        <doc xml:space="preserve">Checks if @subtask is a subtask of @self, directly or indirectly.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE is @subtask is a subtask of @self, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="subtask" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_subtask" c:identifier="gtd_task_remove_subtask">
        <doc xml:space="preserve">Removes @subtask from @self.</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 #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="subtask" transfer-ownership="none">
            <doc xml:space="preserve">the subtask to be removed to @self</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="gtd_task_save">
        <doc xml:space="preserve">Save any changes made on @task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_complete" c:identifier="gtd_task_set_complete">
        <doc xml:space="preserve">Updates the complete state of @task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="complete" transfer-ownership="none">
            <doc xml:space="preserve">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description" c:identifier="gtd_task_set_description">
        <doc xml:space="preserve">Updates the description of @task. The string is not stripped off of
spaces to preserve user data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="description"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new description, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_due_date" c:identifier="gtd_task_set_due_date">
        <doc xml:space="preserve">Updates the internal @GtdTask::due-date property.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="dt"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GDateTime</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_list" c:identifier="gtd_task_set_list">
        <doc xml:space="preserve">Sets the parent #GtdTaskList of @task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="list"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority" c:identifier="gtd_task_set_priority">
        <doc xml:space="preserve">Sets the @task priority inside the parent #GtdTaskList. It
is up to the interface to handle two or more #GtdTask with
the same priority value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">the priority of @task, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="gtd_task_set_title">
        <doc xml:space="preserve">Updates the title of @task. The string is stripped off of
leading spaces.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </instance-parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new title, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="complete" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="component"
                introspectable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="creation-date" transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="depth" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="description" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="due-date" writable="1" transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="list" writable="1" transfer-ownership="none">
        <type name="TaskList"/>
      </property>
      <property name="parent" transfer-ownership="none">
        <type name="Task"/>
      </property>
      <property name="priority" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="GtdObject"/>
      </field>
      <glib:signal name="subtask-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="Task"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="subtask-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="Task"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TaskClass"
            c:type="GtdTaskClass"
            glib:is-gtype-struct-for="Task">
      <field name="parent">
        <type name="ObjectClass" c:type="GtdObjectClass"/>
      </field>
      <field name="subtask_added">
        <callback name="subtask_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
            <parameter name="subtask" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="subtask_removed">
        <callback name="subtask_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
            <parameter name="subtask" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="TaskList"
           c:symbol-prefix="task_list"
           c:type="GtdTaskList"
           parent="Object"
           glib:type-name="GtdTaskList"
           glib:get-type="gtd_task_list_get_type"
           glib:type-struct="TaskListClass">
      <constructor name="new" c:identifier="gtd_task_list_new">
        <doc xml:space="preserve">Creates a new list.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new #GtdTaskList</doc>
          <type name="TaskList" c:type="GtdTaskList*"/>
        </return-value>
        <parameters>
          <parameter name="provider"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GtdProvider</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="task_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="task_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="task_updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="contains" c:identifier="gtd_task_list_contains">
        <doc xml:space="preserve">Checks if @task is inside @list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @list contains @task, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_color" c:identifier="gtd_task_list_get_color">
        <doc xml:space="preserve">Retrieves the color of %list. It is guarantee that it always returns a
color, given a valid #GtdTaskList.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the color of %list. Free with %gdk_rgba_free after use.</doc>
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gtd_task_list_get_name">
        <doc xml:space="preserve">Retrieves the user-visible name of @list, or %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the internal name of @list. Do not free
after use.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_provider" c:identifier="gtd_task_list_get_provider">
        <doc xml:space="preserve">Retrieves the #GtdProvider who owns this list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GtdProvider</doc>
          <type name="Provider" c:type="GtdProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tasks" c:identifier="gtd_task_list_get_tasks">
        <doc xml:space="preserve">Returns the list's tasks.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a newly-allocated list of the list's tasks.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Task"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_removable" c:identifier="gtd_task_list_is_removable">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_task" c:identifier="gtd_task_list_remove_task">
        <doc xml:space="preserve">Removes @task from @list if it's inside the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_task" c:identifier="gtd_task_list_save_task">
        <doc xml:space="preserve">Adds or updates @task to @list if it's not already present.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task" c:type="GtdTask*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color" c:identifier="gtd_task_list_set_color">
        <doc xml:space="preserve">sets the color of @list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList
#color: a #GdkRGBA</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_removable"
              c:identifier="gtd_task_list_set_is_removable">
        <doc xml:space="preserve">Sets whether @list can be deleted or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="is_removable" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if @list can be deleted, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="gtd_task_list_set_name">
        <doc xml:space="preserve">Sets the @list name to @name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the name of @list</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_provider" c:identifier="gtd_task_list_set_provider">
        <doc xml:space="preserve">Sets the provider of this tasklist.</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 #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </instance-parameter>
          <parameter name="provider"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GtdProvider, or %NULL</doc>
            <type name="Provider" c:type="GtdProvider*"/>
          </parameter>
        </parameters>
      </method>
      <property name="color" writable="1" transfer-ownership="none">
        <type name="Gdk.RGBA"/>
      </property>
      <property name="is-removable" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="provider" writable="1" transfer-ownership="none">
        <type name="Provider"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="GtdObject"/>
      </field>
      <glib:signal name="task-added" when="last">
        <doc xml:space="preserve">The ::task-added signal is emmited after a #GtdTask
is added to the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="task-removed" when="last">
        <doc xml:space="preserve">The ::task-removed signal is emmited after a #GtdTask
is removed from the list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="task-updated" when="last">
        <doc xml:space="preserve">The ::task-updated signal is emmited after a #GtdTask
in the list is updated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTask</doc>
            <type name="Task"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TaskListClass"
            c:type="GtdTaskListClass"
            glib:is-gtype-struct-for="TaskList">
      <field name="parent">
        <type name="ObjectClass" c:type="GtdObjectClass"/>
      </field>
      <field name="task_added">
        <callback name="task_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="list" transfer-ownership="none">
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
            <parameter name="task" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="task_updated">
        <callback name="task_updated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="list" transfer-ownership="none">
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
            <parameter name="task" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="task_removed">
        <callback name="task_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="list" transfer-ownership="none">
              <type name="TaskList" c:type="GtdTaskList*"/>
            </parameter>
            <parameter name="task" transfer-ownership="none">
              <type name="Task" c:type="GtdTask*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="TaskListItem" c:type="GtdTaskListItem" disguised="1">
    </record>
    <class name="TaskListView"
           c:symbol-prefix="task_list_view"
           c:type="GtdTaskListView"
           parent="Gtk.Overlay"
           glib:type-name="GtdTaskListView"
           glib:get-type="gtd_task_list_view_get_type"
           glib:type-struct="TaskListViewClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gtd_task_list_view_new">
        <doc xml:space="preserve">Creates a new #GtdTaskListView</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GtdTaskListView</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_color" c:identifier="gtd_task_list_view_get_color">
        <doc xml:space="preserve">Retrieves the custom color of @self.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GdkRGBA, or %NULL if none is set.</doc>
          <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_date"
              c:identifier="gtd_task_list_view_get_default_date">
        <doc xml:space="preserve">Retrieves the current default date which new tasks are set to.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GDateTime, or %NULL</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_handle_subtasks"
              c:identifier="gtd_task_list_view_get_handle_subtasks">
        <doc xml:space="preserve">Retirves whether @self handle subtasks, i.e. make the rows
change padding depending on their depth, show an arrow button
to toggle subtasks, among others.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @self handles subtasks, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_list" c:identifier="gtd_task_list_view_get_list">
        <doc xml:space="preserve">Retrieves the list of tasks from @view. Note that,
if a #GtdTaskList is set, the #GtdTaskList's list
of task will be returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the internal list of
tasks. Free with @g_list_free after use.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TaskList"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_completed"
              c:identifier="gtd_task_list_view_get_show_completed">
        <doc xml:space="preserve">Returns %TRUE if completed tasks are visible, %FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if completed tasks are visible, %FALSE if they are hidden</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_due_date"
              c:identifier="gtd_task_list_view_get_show_due_date">
        <doc xml:space="preserve">Retrieves whether the @self is showing the due dates of the tasks
or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if due dates are visible, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_list_name"
              c:identifier="gtd_task_list_view_get_show_list_name">
        <doc xml:space="preserve">Whether @view shows the tasks' list names.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @view show the tasks' list names, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_new_task_row"
              c:identifier="gtd_task_list_view_get_show_new_task_row">
        <doc xml:space="preserve">Gets whether @view shows the new task row or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @view is shows the new task row, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_task_list"
              c:identifier="gtd_task_list_view_get_task_list">
        <doc xml:space="preserve">Retrieves the #GtdTaskList from @view, or %NULL if none was set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the @GtdTaskList of @view, or %NULL is
none was set.</doc>
          <type name="TaskList" c:type="GtdTaskList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_color" c:identifier="gtd_task_list_view_set_color">
        <doc xml:space="preserve">Sets the custom color of @self to @color. If a custom color is set,
the tasklist's color is ignored. Passing %NULL makes the tasklist's
color apply again.</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 #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GdkRGBA</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_date"
              c:identifier="gtd_task_list_view_set_default_date">
        <doc xml:space="preserve">Sets the current default date.</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 #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="default_date"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the default_date, or %NULL</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_handle_subtasks"
              c:identifier="gtd_task_list_view_set_handle_subtasks">
        <doc xml:space="preserve">If %TRUE, makes @self handle subtasks, adjust the task rows according to their
hierarchy level at the subtask tree and show the arrow button to toggle subtasks
of a given task.

Drag and drop tasks will only work if @self handles subtasks as well.</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 #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="handle_subtasks" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to make @self handle subtasks, %FALSE to disable subtasks.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_func"
              c:identifier="gtd_task_list_view_set_header_func">
        <doc xml:space="preserve">Sets @func as the header function of @view. You can safely call
%gtk_list_box_row_set_header from within @func.

Do not unref nor free any of the passed data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">the header function</doc>
            <type name="TaskListViewHeaderFunc"
                  c:type="GtdTaskListViewHeaderFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_list" c:identifier="gtd_task_list_view_set_list">
        <doc xml:space="preserve">Copies the tasks from @list to @view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="list"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a list of tasks</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Task"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_completed"
              c:identifier="gtd_task_list_view_set_show_completed">
        <doc xml:space="preserve">Sets the ::show-completed property to @show_completed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="show_completed" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to show completed tasks, %FALSE to hide them</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_due_date"
              c:identifier="gtd_task_list_view_set_show_due_date">
        <doc xml:space="preserve">Sets whether @self shows the due dates of the tasks or not.</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 #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="show_due_date" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to show due dates, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_list_name"
              c:identifier="gtd_task_list_view_set_show_list_name">
        <doc xml:space="preserve">Whether @view should should it's tasks' list name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="show_list_name" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to show list names, %FALSE to hide it</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_new_task_row"
              c:identifier="gtd_task_list_view_set_show_new_task_row">
        <doc xml:space="preserve">Sets the #GtdTaskListView:show-new-task-mode property of @view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="show_new_task_row" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_func"
              c:identifier="gtd_task_list_view_set_sort_func">
        <doc xml:space="preserve">Sets @func as the sorting function of @view.

Do not unref nor free any of the passed data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">the sort function</doc>
            <type name="TaskListViewSortFunc"
                  c:type="GtdTaskListViewSortFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_task_list"
              c:identifier="gtd_task_list_view_set_task_list">
        <doc xml:space="preserve">Sets the internal #GtdTaskList of @view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskListView</doc>
            <type name="TaskListView" c:type="GtdTaskListView*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdTaskList</doc>
            <type name="TaskList" c:type="GtdTaskList*"/>
          </parameter>
        </parameters>
      </method>
      <property name="color" writable="1" transfer-ownership="none">
        <type name="Gdk.RGBA"/>
      </property>
      <property name="handle-subtasks" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-completed" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-due-date" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-list-name" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-new-task-row"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="TaskListViewClass"
            c:type="GtdTaskListViewClass"
            glib:is-gtype-struct-for="TaskListView">
      <field name="parent_class">
        <type name="Gtk.OverlayClass" c:type="GtkOverlayClass"/>
      </field>
    </record>
    <callback name="TaskListViewHeaderFunc" c:type="GtdTaskListViewHeaderFunc">
      <doc xml:space="preserve">The header function called on every task.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="row" transfer-ownership="none">
          <doc xml:space="preserve">the current #GtkListBoxRow</doc>
          <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
        </parameter>
        <parameter name="row_task" transfer-ownership="none">
          <doc xml:space="preserve">the #GtdTask that @row represents</doc>
          <type name="Task" c:type="GtdTask*"/>
        </parameter>
        <parameter name="before" transfer-ownership="none">
          <doc xml:space="preserve">the #GtkListBoxRow before @row</doc>
          <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
        </parameter>
        <parameter name="before_task" transfer-ownership="none">
          <doc xml:space="preserve">the #GtdTask that @before represents</doc>
          <type name="Task" c:type="GtdTask*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TaskListViewSortFunc" c:type="GtdTaskListViewSortFunc">
      <doc xml:space="preserve">The sorting function called on every task.</doc>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="row1" transfer-ownership="none">
          <doc xml:space="preserve">the current #GtkListBoxRow</doc>
          <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
        </parameter>
        <parameter name="row1_task" transfer-ownership="none">
          <doc xml:space="preserve">the #GtdTask that @row represents</doc>
          <type name="Task" c:type="GtdTask*"/>
        </parameter>
        <parameter name="row2" transfer-ownership="none">
          <doc xml:space="preserve">the #GtkListBoxRow before @row</doc>
          <type name="Gtk.ListBoxRow" c:type="GtkListBoxRow*"/>
        </parameter>
        <parameter name="row2_task" transfer-ownership="none">
          <doc xml:space="preserve">the #GtdTask that @before represents</doc>
          <type name="Task" c:type="GtdTask*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TaskRow" c:type="GtdTaskRow" disguised="1">
    </record>
    <class name="Timer"
           c:symbol-prefix="timer"
           c:type="GtdTimer"
           parent="Object"
           glib:type-name="GtdTimer"
           glib:get-type="gtd_timer_get_type"
           glib:type-struct="TimerClass">
      <constructor name="new" c:identifier="gtd_timer_new">
        <return-value transfer-ownership="full">
          <type name="Timer" c:type="GtdTimer*"/>
        </return-value>
      </constructor>
      <glib:signal name="update" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TimerClass"
            c:type="GtdTimerClass"
            glib:is-gtype-struct-for="Timer">
      <field name="parent_class">
        <type name="ObjectClass" c:type="GtdObjectClass"/>
      </field>
    </record>
    <class name="Window"
           c:symbol-prefix="window"
           c:type="GtdWindow"
           parent="Gtk.ApplicationWindow"
           glib:type-name="GtdWindow"
           glib:get-type="gtd_window_get_type"
           glib:type-struct="WindowClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gio.ActionGroup"/>
      <implements name="Gio.ActionMap"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gtd_window_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="application" transfer-ownership="none">
            <type name="Application" c:type="GtdApplication*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="cancel_notification"
              c:identifier="gtd_window_cancel_notification">
        <doc xml:space="preserve">Cancels @notification.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdManager</doc>
            <type name="Window" c:type="GtdWindow*"/>
          </instance-parameter>
          <parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_manager" c:identifier="gtd_window_get_manager">
        <doc xml:space="preserve">Retrieves a weak reference for the @window's #GtdManager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GtdManager of @window.</doc>
          <type name="Manager" c:type="GtdManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdWindow</doc>
            <type name="Window" c:type="GtdWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode" c:identifier="gtd_window_get_mode">
        <doc xml:space="preserve">Retrieves the current mode of @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GtdWindow::mode property value</doc>
          <type name="WindowMode" c:type="GtdWindowMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdWindow</doc>
            <type name="Window" c:type="GtdWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="notify" c:identifier="gtd_window_notify">
        <doc xml:space="preserve">Shows a notification on the top of the main window.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdWindow</doc>
            <type name="Window" c:type="GtdWindow*"/>
          </instance-parameter>
          <parameter name="notification" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdNotification</doc>
            <type name="Notification" c:type="GtdNotification*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_custom_title"
              c:identifier="gtd_window_set_custom_title">
        <doc xml:space="preserve">Sets the #GtdWindow's headerbar title and subtitle. If @title is %NULL,
the header will be set to the stack switcher.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdWindow</doc>
            <type name="Window" c:type="GtdWindow*"/>
          </instance-parameter>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GtkHeaderBar 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">the #GtkHeaderBar subtitle</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode" c:identifier="gtd_window_set_mode">
        <doc xml:space="preserve">Sets the current window mode to @mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdWindow</doc>
            <type name="Window" c:type="GtdWindow*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">a #GtdWindowMode</doc>
            <type name="WindowMode" c:type="GtdWindowMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="manager"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Manager"/>
      </property>
      <property name="mode"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <type/>
      </property>
    </class>
    <record name="WindowClass"
            c:type="GtdWindowClass"
            glib:is-gtype-struct-for="Window">
      <field name="parent_class">
        <type name="Gtk.ApplicationWindowClass"
              c:type="GtkApplicationWindowClass"/>
      </field>
    </record>
    <enumeration name="WindowMode" c:type="GtdWindowMode">
      <member name="normal" value="0" c:identifier="GTD_WINDOW_MODE_NORMAL">
      </member>
      <member name="selection"
              value="1"
              c:identifier="GTD_WINDOW_MODE_SELECTION">
      </member>
    </enumeration>
  </namespace>
</repository>
