<?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="Anjuta" version="3.0"/>
  <include name="Atk" version="1.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <include name="xlib" version="2.0"/>
  <c:include name="libanjuta/interfaces/libanjuta-interfaces.h"/>
  <namespace name="IAnjuta"
             version="3.0"
             shared-library="libanjuta-3.so.0.0"
             c:identifier-prefixes="IAnjuta"
             c:symbol-prefixes="ianjuta">
    <alias name="BuilderHandle" c:type="IAnjutaBuilderHandle">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="LanguageId" c:type="IAnjutaLanguageId">
      <type name="gint" c:type="gint"/>
    </alias>
    <constant name="BUILDER_CONFIGURATION_DEBUG"
              value="Debug"
              c:type="IANJUTA_BUILDER_CONFIGURATION_DEBUG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="BUILDER_CONFIGURATION_OPTIMIZED"
              value="Optimized"
              c:type="IANJUTA_BUILDER_CONFIGURATION_OPTIMIZED">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="BUILDER_CONFIGURATION_PROFILING"
              value="Profiling"
              c:type="IANJUTA_BUILDER_CONFIGURATION_PROFILING">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="BUILDER_ROOT_URI"
              value="build_root_uri"
              c:type="IANJUTA_BUILDER_ROOT_URI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <interface name="Buildable"
               c:symbol-prefix="buildable"
               c:type="IAnjutaBuildable"
               glib:type-name="IAnjutaBuildable"
               glib:get-type="ianjuta_buildable_get_type"
               glib:type-struct="BuildableIface">
      <function name="error_quark"
                c:identifier="ianjuta_buildable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="build" invoker="build" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clean" invoker="clean" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="configure" invoker="configure" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="execute" invoker="execute" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="generate" invoker="generate" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_command" invoker="get_command" throws="1">
        <doc xml:whitespace="preserve">Retrieves the currently set command override.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The overridden command. NULL if no override set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="command_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Command to get override.</doc>
            <type name="BuildableCommand" c:type="IAnjutaBuildableCommand"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="install" invoker="install" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset_commands"
                      invoker="reset_commands"
                      throws="1">
        <doc xml:whitespace="preserve">Resets the command overrides to defaults.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set_command" invoker="set_command" throws="1">
        <doc xml:whitespace="preserve">Overrides the default command for the given command.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="command_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Command to override.</doc>
            <type name="BuildableCommand" c:type="IAnjutaBuildableCommand"/>
          </parameter>
          <parameter name="command" transfer-ownership="none">
            <doc xml:whitespace="preserve">Build command to override.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="build" c:identifier="ianjuta_buildable_build" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clean" c:identifier="ianjuta_buildable_clean" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="configure"
              c:identifier="ianjuta_buildable_configure"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="execute"
              c:identifier="ianjuta_buildable_execute"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate"
              c:identifier="ianjuta_buildable_generate"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_command"
              c:identifier="ianjuta_buildable_get_command"
              throws="1">
        <doc xml:whitespace="preserve">Retrieves the currently set command override.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The overridden command. NULL if no override set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="command_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Command to get override.</doc>
            <type name="BuildableCommand" c:type="IAnjutaBuildableCommand"/>
          </parameter>
        </parameters>
      </method>
      <method name="install"
              c:identifier="ianjuta_buildable_install"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset_commands"
              c:identifier="ianjuta_buildable_reset_commands"
              throws="1">
        <doc xml:whitespace="preserve">Resets the command overrides to defaults.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_command"
              c:identifier="ianjuta_buildable_set_command"
              throws="1">
        <doc xml:whitespace="preserve">Overrides the default command for the given command.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="command_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Command to override.</doc>
            <type name="BuildableCommand" c:type="IAnjutaBuildableCommand"/>
          </parameter>
          <parameter name="command" transfer-ownership="none">
            <doc xml:whitespace="preserve">Build command to override.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <enumeration name="BuildableCommand"
                 glib:type-name="IAnjutaBuildableCommand"
                 glib:get-type="ianjuta_buildable_command_get_type"
                 c:type="IAnjutaBuildableCommand">
      <doc xml:whitespace="preserve">The enumeration is used to speficy the disered build operation</doc>
      <member name="command_compile"
              value="0"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_COMPILE"
              glib:nick="command-compile"/>
      <member name="command_build"
              value="1"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_BUILD"
              glib:nick="command-build"/>
      <member name="command_build_tarball"
              value="2"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_BUILD_TARBALL"
              glib:nick="command-build-tarball"/>
      <member name="command_install"
              value="3"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_INSTALL"
              glib:nick="command-install"/>
      <member name="command_configure"
              value="4"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_CONFIGURE"
              glib:nick="command-configure"/>
      <member name="command_generate"
              value="5"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_GENERATE"
              glib:nick="command-generate"/>
      <member name="command_clean"
              value="6"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_CLEAN"
              glib:nick="command-clean"/>
      <member name="command_execute"
              value="7"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_EXECUTE"
              glib:nick="command-execute"/>
      <member name="command_is_built"
              value="8"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_IS_BUILT"
              glib:nick="command-is-built"/>
      <member name="command_autoreconf"
              value="9"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_AUTORECONF"
              glib:nick="command-autoreconf"/>
      <member name="command_distclean"
              value="10"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_DISTCLEAN"
              glib:nick="command-distclean"/>
      <member name="command_check"
              value="11"
              c:identifier="IANJUTA_BUILDABLE_COMMAND_CHECK"
              glib:nick="command-check"/>
      <member name="n_commands"
              value="12"
              c:identifier="IANJUTA_BUILDABLE_N_COMMANDS"
              glib:nick="n-commands"/>
    </enumeration>
    <record name="BuildableIface"
            c:type="IAnjutaBuildableIface"
            glib:is-gtype-struct-for="Buildable">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="build">
        <callback name="build" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clean">
        <callback name="clean" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure">
        <callback name="configure" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="execute">
        <callback name="execute" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="generate">
        <callback name="generate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_command">
        <callback name="get_command" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The overridden command. NULL if no override set.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="command_id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Command to get override.</doc>
              <type name="BuildableCommand" c:type="IAnjutaBuildableCommand"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="install">
        <callback name="install" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset_commands">
        <callback name="reset_commands" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_command">
        <callback name="set_command" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Buildable" c:type="IAnjutaBuildable*"/>
            </parameter>
            <parameter name="command_id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Command to override.</doc>
              <type name="BuildableCommand" c:type="IAnjutaBuildableCommand"/>
            </parameter>
            <parameter name="command" transfer-ownership="none">
              <doc xml:whitespace="preserve">Build command to override.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Builder"
               c:symbol-prefix="builder"
               c:type="IAnjutaBuilder"
               glib:type-name="IAnjutaBuilder"
               glib:get-type="ianjuta_builder_get_type"
               glib:type-struct="BuilderIface">
      <virtual-method name="build"
                      invoker="build"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Build the specified target.
When the command if finished, the callback function is called
if defined.</doc>
        <return-value>
          <doc xml:whitespace="preserve">non null command handle if succeed</doc>
          <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">target uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">callback called when command is finished</doc>
            <type name="BuilderCallback" c:type="IAnjutaBuilderCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">data passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cancel" invoker="cancel" throws="1">
        <doc xml:whitespace="preserve">Cancel specified command. The callback function will not
be called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:whitespace="preserve">handle of the command to cancel</doc>
            <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_uri_configuration"
                      invoker="get_uri_configuration"
                      throws="1">
        <doc xml:whitespace="preserve">Get the configuration corresponding to the target uri.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The configuration name or NULL if the corresponding configuration cannot be found.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">target uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_built"
                      invoker="is_built"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Check if the corresponding target is up to date or not. This
command doesn't display anything. If this command cannot be
implemented, it is possible to return always TRUE.
When the command is finished, the callback function is called
if defined.</doc>
        <return-value>
          <doc xml:whitespace="preserve">non null command handle if succeed</doc>
          <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">target uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">callback called when command is finished</doc>
            <type name="BuilderCallback" c:type="IAnjutaBuilderCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">data passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_configuration"
                      invoker="list_configuration"
                      throws="1">
        <doc xml:whitespace="preserve">List all defined configuration. These names returned are
the internal non localized names for the following
predefined configuration: Debug, Profiling, Optimized.
The default configuration has no name and is not returned.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">a list configuration name. The names are owned by the plugin, so only the list has to be free using g_list_free.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </virtual-method>
      <method name="build"
              c:identifier="ianjuta_builder_build"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Build the specified target.
When the command if finished, the callback function is called
if defined.</doc>
        <return-value>
          <doc xml:whitespace="preserve">non null command handle if succeed</doc>
          <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">target uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">callback called when command is finished</doc>
            <type name="BuilderCallback" c:type="IAnjutaBuilderCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="cancel" c:identifier="ianjuta_builder_cancel" throws="1">
        <doc xml:whitespace="preserve">Cancel specified command. The callback function will not
be called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:whitespace="preserve">handle of the command to cancel</doc>
            <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uri_configuration"
              c:identifier="ianjuta_builder_get_uri_configuration"
              throws="1">
        <doc xml:whitespace="preserve">Get the configuration corresponding to the target uri.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The configuration name or NULL if the corresponding configuration cannot be found.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">target uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_built"
              c:identifier="ianjuta_builder_is_built"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Check if the corresponding target is up to date or not. This
command doesn't display anything. If this command cannot be
implemented, it is possible to return always TRUE.
When the command is finished, the callback function is called
if defined.</doc>
        <return-value>
          <doc xml:whitespace="preserve">non null command handle if succeed</doc>
          <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">target uri</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">callback called when command is finished</doc>
            <type name="BuilderCallback" c:type="IAnjutaBuilderCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_configuration"
              c:identifier="ianjuta_builder_list_configuration"
              throws="1">
        <doc xml:whitespace="preserve">List all defined configuration. These names returned are
the internal non localized names for the following
predefined configuration: Debug, Profiling, Optimized.
The default configuration has no name and is not returned.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">a list configuration name. The names are owned by the plugin, so only the list has to be free using g_list_free.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
    </interface>
    <callback name="BuilderCallback" c:type="IAnjutaBuilderCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="sender" transfer-ownership="none">
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="command" transfer-ownership="none">
          <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="BuilderError"
                 glib:type-name="IAnjutaBuilderError"
                 glib:get-type="ianjuta_builder_error_get_type"
                 c:type="IAnjutaBuilderError"
                 glib:error-domain="ianjuta-builder-quark">
      <doc xml:whitespace="preserve">Possible build errors</doc>
      <member name="succeed"
              value="0"
              c:identifier="IANJUTA_BUILDER_SUCCEED"
              glib:nick="succeed"/>
      <member name="failed"
              value="1"
              c:identifier="IANJUTA_BUILDER_FAILED"
              glib:nick="failed"/>
      <member name="canceled"
              value="256"
              c:identifier="IANJUTA_BUILDER_CANCELED"
              glib:nick="canceled"/>
      <member name="aborted"
              value="257"
              c:identifier="IANJUTA_BUILDER_ABORTED"
              glib:nick="aborted"/>
      <member name="interrupted"
              value="258"
              c:identifier="IANJUTA_BUILDER_INTERRUPTED"
              glib:nick="interrupted"/>
      <member name="terminated"
              value="259"
              c:identifier="IANJUTA_BUILDER_TERMINATED"
              glib:nick="terminated"/>
      <member name="unknown_target"
              value="260"
              c:identifier="IANJUTA_BUILDER_UNKNOWN_TARGET"
              glib:nick="unknown-target"/>
      <member name="unknown_error"
              value="261"
              c:identifier="IANJUTA_BUILDER_UNKNOWN_ERROR"
              glib:nick="unknown-error"/>
      <member name="other_error"
              value="262"
              c:identifier="IANJUTA_BUILDER_OTHER_ERROR"
              glib:nick="other-error"/>
      <function name="quark" c:identifier="ianjuta_builder_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="BuilderIface"
            c:type="IAnjutaBuilderIface"
            glib:is-gtype-struct-for="Builder">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="build" introspectable="0">
        <callback name="build" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">non null command handle if succeed</doc>
            <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Builder" c:type="IAnjutaBuilder*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">target uri</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">callback called when command is finished</doc>
              <type name="BuilderCallback" c:type="IAnjutaBuilderCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">data passed to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancel">
        <callback name="cancel" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Builder" c:type="IAnjutaBuilder*"/>
            </parameter>
            <parameter name="handle" transfer-ownership="none">
              <doc xml:whitespace="preserve">handle of the command to cancel</doc>
              <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_uri_configuration">
        <callback name="get_uri_configuration" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The configuration name or NULL if the corresponding configuration cannot be found.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Builder" c:type="IAnjutaBuilder*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">target uri</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_built" introspectable="0">
        <callback name="is_built" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">non null command handle if succeed</doc>
            <type name="BuilderHandle" c:type="IAnjutaBuilderHandle"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Builder" c:type="IAnjutaBuilder*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">target uri</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">callback called when command is finished</doc>
              <type name="BuilderCallback" c:type="IAnjutaBuilderCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">data passed to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_configuration">
        <callback name="list_configuration" throws="1">
          <return-value transfer-ownership="container">
            <doc xml:whitespace="preserve">a list configuration name. The names are owned by the plugin, so only the list has to be free using g_list_free.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Builder" c:type="IAnjutaBuilder*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="DOCUMENT_MANAGER_CURRENT_DOCUMENT"
              value="document_manager_current_document"
              c:type="IANJUTA_DOCUMENT_MANAGER_CURRENT_DOCUMENT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <interface name="DebugManager"
               c:symbol-prefix="debug_manager"
               c:type="IAnjutaDebugManager"
               glib:type-name="IAnjutaDebugManager"
               glib:get-type="ianjuta_debug_manager_get_type"
               glib:type-struct="DebugManagerIface">
      <function name="error_quark"
                c:identifier="ianjuta_debug_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="breakpoint_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="breakpoint" transfer-ownership="none">
            <type name="DebuggerBreakpointItem"
                  c:type="IAnjutaDebuggerBreakpointItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="debugger_started">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="debugger_stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="err" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="frame_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="thread" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="location_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="program_exited">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_loaded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_moved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tid" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="address" transfer-ownership="none">
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="program_running">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_started">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_unloaded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="quit" invoker="quit" throws="1">
        <doc xml:whitespace="preserve">Quit the debugger, can wait until the debugger is ready.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="sharedlib_event">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="signal_received">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="start" invoker="start" throws="1">
        <doc xml:whitespace="preserve">Start the debugger of the given uri</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">uri of the target</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="start_remote" invoker="start_remote" throws="1">
        <doc xml:whitespace="preserve">Start the debugger of the given uri</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="server" transfer-ownership="none">
            <doc xml:whitespace="preserve">server (IP address:port)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">uri of the local target</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="quit" c:identifier="ianjuta_debug_manager_quit" throws="1">
        <doc xml:whitespace="preserve">Quit the debugger, can wait until the debugger is ready.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="start"
              c:identifier="ianjuta_debug_manager_start"
              throws="1">
        <doc xml:whitespace="preserve">Start the debugger of the given uri</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">uri of the target</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_remote"
              c:identifier="ianjuta_debug_manager_start_remote"
              throws="1">
        <doc xml:whitespace="preserve">Start the debugger of the given uri</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="server" transfer-ownership="none">
            <doc xml:whitespace="preserve">server (IP address:port)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">uri of the local target</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="breakpoint-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="debugger-started" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="debugger-stopped" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="frame-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="location-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gulong"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="program-exited" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-loaded" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-moved" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gulong"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="program-running" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-started" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-stopped" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-unloaded" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="sharedlib-event" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="signal-received" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="DebugManagerIface"
            c:type="IAnjutaDebugManagerIface"
            glib:is-gtype-struct-for="DebugManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="breakpoint_changed">
        <callback name="breakpoint_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="breakpoint" transfer-ownership="none">
              <type name="DebuggerBreakpointItem"
                    c:type="IAnjutaDebuggerBreakpointItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="debugger_started">
        <callback name="debugger_started">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="debugger_stopped">
        <callback name="debugger_stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="err" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="frame_changed">
        <callback name="frame_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="frame" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="location_changed">
        <callback name="location_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <type name="gulong" c:type="gulong"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_exited">
        <callback name="program_exited">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_loaded">
        <callback name="program_loaded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_moved">
        <callback name="program_moved">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="pid" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="tid" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <type name="gulong" c:type="gulong"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_running">
        <callback name="program_running">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_started">
        <callback name="program_started">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_stopped">
        <callback name="program_stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_unloaded">
        <callback name="program_unloaded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sharedlib_event">
        <callback name="sharedlib_event">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="signal_received">
        <callback name="signal_received">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="description" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="quit">
        <callback name="quit" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start">
        <callback name="start" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">uri of the target</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start_remote">
        <callback name="start_remote" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebugManager" c:type="IAnjutaDebugManager*"/>
            </parameter>
            <parameter name="server" transfer-ownership="none">
              <doc xml:whitespace="preserve">server (IP address:port)</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">uri of the local target</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Debugger"
               c:symbol-prefix="debugger"
               c:type="IAnjutaDebugger"
               glib:type-name="IAnjutaDebugger"
               glib:get-type="ianjuta_debugger_get_type"
               glib:type-struct="DebuggerIface">
      <virtual-method name="abort" invoker="abort" throws="1">
        <doc xml:whitespace="preserve">Quit the debugger as fast as possible.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="attach" invoker="attach" throws="1">
        <doc xml:whitespace="preserve">Attach to an already running process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:whitespace="preserve">pid of the process to debug</doc>
            <type name="gint" c:type="pid_t"/>
          </parameter>
          <parameter name="source_search_directories"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">List of directories to search for source files.</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="callback"
                      invoker="callback"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">All commands are executed asynchronously and give back information
with callbacks. It is difficult to know when a command is really
executed. But as all commands are executed in order, you can use
this command to get a call back when all previous commands have
been executed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call. the data argument is NULL.</doc>
            <type name="DebuggerCallback" c:type="IAnjutaDebuggerCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="connect" invoker="connect" throws="1">
        <doc xml:whitespace="preserve">Connect to a remote debugger and run program</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessfull, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="server" transfer-ownership="none">
            <doc xml:whitespace="preserve">remote server</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <doc xml:whitespace="preserve">command line argument of the program</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="terminal" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the program need a terminal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if program is stopped at the beginning</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="debugger_ready">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <type name="DebuggerState" c:type="IAnjutaDebuggerState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="debugger_started">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="debugger_stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="err" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disable_log" invoker="disable_log" throws="1">
        <doc xml:whitespace="preserve">Disable debugger log.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="dump_stack_trace"
                      invoker="dump_stack_trace"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Return a stack trace valid for a bug reports.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="enable_log" invoker="enable_log" throws="1">
        <doc xml:whitespace="preserve">Log all debuggers commands, mainly useful for debugging.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="log" transfer-ownership="none">
            <doc xml:whitespace="preserve">MessageView used by log</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="evaluate"
                      invoker="evaluate"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Change the value of a variable in the current program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">new variable value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the variable has been modified</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="exit" invoker="exit" throws="1">
        <doc xml:whitespace="preserve">Exit from the currently loaded program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="frame_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="thread" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_state" invoker="get_state" throws="1">
        <doc xml:whitespace="preserve">Get the current state of the debugger</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The current debugger state.</doc>
          <type name="DebuggerState" c:type="IAnjutaDebuggerState"/>
        </return-value>
      </virtual-method>
      <virtual-method name="handle_signal" invoker="handle_signal" throws="1">
        <doc xml:whitespace="preserve">It defines how to handle signal received by the program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">signal name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if we need to stop signal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="print" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if we display a message when the signal is emitted</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="ignore" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if we ignore the signal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_args"
                      invoker="info_args"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some informatin about a current functin arguments.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_frame"
                      invoker="info_frame"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some information about the one stack frame.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <doc xml:whitespace="preserve">frame number, the top frame has the number 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_program"
                      invoker="info_program"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some informatin about a current program.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_sharedlib"
                      invoker="info_sharedlib"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get information about shared libraries.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_signal"
                      invoker="info_signal"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some informatin about a signal</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_target"
                      invoker="info_target"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get back some information about the target
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_thread"
                      invoker="info_thread"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some information about current threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="thread" transfer-ownership="none">
            <doc xml:whitespace="preserve">thread number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_udot"
                      invoker="info_udot"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some informatin about OS structures.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="info_variables"
                      invoker="info_variables"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get some informatin about variables.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="inspect"
                      invoker="inspect"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get back the value of the named variable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call with variable value</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="interrupt" invoker="interrupt" throws="1">
        <doc xml:whitespace="preserve">Interrupt the program currently running.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="list_argument"
                      invoker="list_argument"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the list of arguments</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_frame"
                      invoker="list_frame"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the list of frames.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of #IAnjutaDebuggerFrame</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_local"
                      invoker="list_local"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the list of local variables</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of local variable</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_thread"
                      invoker="list_thread"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the list of threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of #IAnjutaDebuggerFrame for each thread</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="load" invoker="load" throws="1">
        <doc xml:whitespace="preserve">Load a program in the debugger.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">mime type of the file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="source_search_directories"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">List of directories to search for source files.</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="print"
                      invoker="print"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Display value of a variable, like inspect.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="variable" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call with variable value</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="program_exited">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_loaded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_moved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tid" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="address" transfer-ownership="none">
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="program_running">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="program_stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="quit" invoker="quit" throws="1">
        <doc xml:whitespace="preserve">Quit the debugger, can wait until the debugger is ready.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="run" invoker="run" throws="1">
        <doc xml:whitespace="preserve">Run the program currently loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="run_from" invoker="run_from" throws="1">
        <doc xml:whitespace="preserve">Execute the program from a new position.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">target file name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">target line in file</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="run_to" invoker="run_to" throws="1">
        <doc xml:whitespace="preserve">Execute the currently loaded program until it reachs the target
line.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">target file name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">target line in file</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="send_command" invoker="send_command" throws="1">
        <doc xml:whitespace="preserve">Send a command directly to the debugger. Warning, changing the
debugger states, by sending a run command by example, will
probably gives some troubles in the debug manager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="command" transfer-ownership="none">
            <doc xml:whitespace="preserve">command</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_environment"
                      invoker="set_environment"
                      throws="1">
        <doc xml:whitespace="preserve">Set environment variable</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessfull, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="env" transfer-ownership="none">
            <doc xml:whitespace="preserve">List environment variable</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_frame" invoker="set_frame" throws="1">
        <doc xml:whitespace="preserve">Set the current frame.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <doc xml:whitespace="preserve">frame number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_thread" invoker="set_thread" throws="1">
        <doc xml:whitespace="preserve">Set the current thread.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="thread" transfer-ownership="none">
            <doc xml:whitespace="preserve">thread number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_working_directory"
                      invoker="set_working_directory"
                      throws="1">
        <doc xml:whitespace="preserve">Set program working directory.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:whitespace="preserve">working program directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sharedlib_event">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="signal_received">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="start" invoker="start" throws="1">
        <doc xml:whitespace="preserve">Start a loaded program under debugger control.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="args" transfer-ownership="none">
            <doc xml:whitespace="preserve">command line argument of the program</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="terminal" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the program need a terminal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if program is stopped at the beginning</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="step_in" invoker="step_in" throws="1">
        <doc xml:whitespace="preserve">Execute a single C instruction of the program currently loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="step_out" invoker="step_out" throws="1">
        <doc xml:whitespace="preserve">Execute the currently loaded program until it goes out of the
current procedure.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="step_over" invoker="step_over" throws="1">
        <doc xml:whitespace="preserve">Execute one C instruction, without entering in procedure, of
the program currently loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="unload" invoker="unload" throws="1">
        <doc xml:whitespace="preserve">Unload a program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessfull, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <method name="abort" c:identifier="ianjuta_debugger_abort" throws="1">
        <doc xml:whitespace="preserve">Quit the debugger as fast as possible.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="attach" c:identifier="ianjuta_debugger_attach" throws="1">
        <doc xml:whitespace="preserve">Attach to an already running process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:whitespace="preserve">pid of the process to debug</doc>
            <type name="gint" c:type="pid_t"/>
          </parameter>
          <parameter name="source_search_directories"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">List of directories to search for source files.</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="callback"
              c:identifier="ianjuta_debugger_callback"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">All commands are executed asynchronously and give back information
with callbacks. It is difficult to know when a command is really
executed. But as all commands are executed in order, you can use
this command to get a call back when all previous commands have
been executed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call. the data argument is NULL.</doc>
            <type name="DebuggerCallback" c:type="IAnjutaDebuggerCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="connect"
              c:identifier="ianjuta_debugger_connect"
              throws="1">
        <doc xml:whitespace="preserve">Connect to a remote debugger and run program</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessfull, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="server" transfer-ownership="none">
            <doc xml:whitespace="preserve">remote server</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <doc xml:whitespace="preserve">command line argument of the program</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="terminal" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the program need a terminal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if program is stopped at the beginning</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="disable_log"
              c:identifier="ianjuta_debugger_disable_log"
              throws="1">
        <doc xml:whitespace="preserve">Disable debugger log.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="dump_stack_trace"
              c:identifier="ianjuta_debugger_dump_stack_trace"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Return a stack trace valid for a bug reports.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="enable_log"
              c:identifier="ianjuta_debugger_enable_log"
              throws="1">
        <doc xml:whitespace="preserve">Log all debuggers commands, mainly useful for debugging.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="log" transfer-ownership="none">
            <doc xml:whitespace="preserve">MessageView used by log</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
        </parameters>
      </method>
      <method name="evaluate"
              c:identifier="ianjuta_debugger_evaluate"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Change the value of a variable in the current program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">new variable value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the variable has been modified</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="exit" c:identifier="ianjuta_debugger_exit" throws="1">
        <doc xml:whitespace="preserve">Exit from the currently loaded program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_state"
              c:identifier="ianjuta_debugger_get_state"
              throws="1">
        <doc xml:whitespace="preserve">Get the current state of the debugger</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The current debugger state.</doc>
          <type name="DebuggerState" c:type="IAnjutaDebuggerState"/>
        </return-value>
      </method>
      <method name="handle_signal"
              c:identifier="ianjuta_debugger_handle_signal"
              throws="1">
        <doc xml:whitespace="preserve">It defines how to handle signal received by the program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">signal name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if we need to stop signal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="print" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if we display a message when the signal is emitted</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="ignore" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if we ignore the signal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_args"
              c:identifier="ianjuta_debugger_info_args"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some informatin about a current functin arguments.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_frame"
              c:identifier="ianjuta_debugger_info_frame"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some information about the one stack frame.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <doc xml:whitespace="preserve">frame number, the top frame has the number 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_program"
              c:identifier="ianjuta_debugger_info_program"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some informatin about a current program.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_sharedlib"
              c:identifier="ianjuta_debugger_info_sharedlib"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get information about shared libraries.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_signal"
              c:identifier="ianjuta_debugger_info_signal"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some informatin about a signal</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_target"
              c:identifier="ianjuta_debugger_info_target"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get back some information about the target
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_thread"
              c:identifier="ianjuta_debugger_info_thread"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some information about current threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="thread" transfer-ownership="none">
            <doc xml:whitespace="preserve">thread number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_udot"
              c:identifier="ianjuta_debugger_info_udot"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some informatin about OS structures.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="info_variables"
              c:identifier="ianjuta_debugger_info_variables"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get some informatin about variables.
This function has been deprecated and is not used anymore in the
debugger GUI.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="inspect"
              c:identifier="ianjuta_debugger_inspect"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get back the value of the named variable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call with variable value</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="interrupt"
              c:identifier="ianjuta_debugger_interrupt"
              throws="1">
        <doc xml:whitespace="preserve">Interrupt the program currently running.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="list_argument"
              c:identifier="ianjuta_debugger_list_argument"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the list of arguments</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_frame"
              c:identifier="ianjuta_debugger_list_frame"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the list of frames.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of #IAnjutaDebuggerFrame</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_local"
              c:identifier="ianjuta_debugger_list_local"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the list of local variables</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with list of local variable</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_thread"
              c:identifier="ianjuta_debugger_list_thread"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the list of threads.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call getting a list of #IAnjutaDebuggerFrame for each thread</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load" c:identifier="ianjuta_debugger_load" throws="1">
        <doc xml:whitespace="preserve">Load a program in the debugger.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">mime type of the file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="source_search_directories"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">List of directories to search for source files.</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="print"
              c:identifier="ianjuta_debugger_print"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Display value of a variable, like inspect.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="variable" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call with variable value</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="quit" c:identifier="ianjuta_debugger_quit" throws="1">
        <doc xml:whitespace="preserve">Quit the debugger, can wait until the debugger is ready.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="run" c:identifier="ianjuta_debugger_run" throws="1">
        <doc xml:whitespace="preserve">Run the program currently loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="run_from"
              c:identifier="ianjuta_debugger_run_from"
              throws="1">
        <doc xml:whitespace="preserve">Execute the program from a new position.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">target file name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">target line in file</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="run_to" c:identifier="ianjuta_debugger_run_to" throws="1">
        <doc xml:whitespace="preserve">Execute the currently loaded program until it reachs the target
line.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">target file name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">target line in file</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_command"
              c:identifier="ianjuta_debugger_send_command"
              throws="1">
        <doc xml:whitespace="preserve">Send a command directly to the debugger. Warning, changing the
debugger states, by sending a run command by example, will
probably gives some troubles in the debug manager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="command" transfer-ownership="none">
            <doc xml:whitespace="preserve">command</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_environment"
              c:identifier="ianjuta_debugger_set_environment"
              throws="1">
        <doc xml:whitespace="preserve">Set environment variable</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessfull, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="env" transfer-ownership="none">
            <doc xml:whitespace="preserve">List environment variable</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_frame"
              c:identifier="ianjuta_debugger_set_frame"
              throws="1">
        <doc xml:whitespace="preserve">Set the current frame.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <doc xml:whitespace="preserve">frame number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_thread"
              c:identifier="ianjuta_debugger_set_thread"
              throws="1">
        <doc xml:whitespace="preserve">Set the current thread.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="thread" transfer-ownership="none">
            <doc xml:whitespace="preserve">thread number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_working_directory"
              c:identifier="ianjuta_debugger_set_working_directory"
              throws="1">
        <doc xml:whitespace="preserve">Set program working directory.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:whitespace="preserve">working program directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="ianjuta_debugger_start" throws="1">
        <doc xml:whitespace="preserve">Start a loaded program under debugger control.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="args" transfer-ownership="none">
            <doc xml:whitespace="preserve">command line argument of the program</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="terminal" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the program need a terminal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if program is stopped at the beginning</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="step_in"
              c:identifier="ianjuta_debugger_step_in"
              throws="1">
        <doc xml:whitespace="preserve">Execute a single C instruction of the program currently loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="step_out"
              c:identifier="ianjuta_debugger_step_out"
              throws="1">
        <doc xml:whitespace="preserve">Execute the currently loaded program until it goes out of the
current procedure.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="step_over"
              c:identifier="ianjuta_debugger_step_over"
              throws="1">
        <doc xml:whitespace="preserve">Execute one C instruction, without entering in procedure, of
the program currently loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="unload" c:identifier="ianjuta_debugger_unload" throws="1">
        <doc xml:whitespace="preserve">Unload a program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessfull, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <glib:signal name="debugger-ready" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="DebuggerState"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="debugger-started" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="debugger-stopped" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="frame-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="program-exited" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-loaded" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-moved" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gulong"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="program-running" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="program-stopped" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="sharedlib-event" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="signal-received" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <interface name="DebuggerBreakpoint"
               c:symbol-prefix="debugger_breakpoint"
               c:type="IAnjutaDebuggerBreakpoint"
               glib:type-name="IAnjutaDebuggerBreakpoint"
               glib:get-type="ianjuta_debugger_breakpoint_get_type"
               glib:type-struct="DebuggerBreakpointIface">
      <prerequisite name="Debugger"/>
      <function name="error_quark"
                c:identifier="ianjuta_debugger_breakpoint_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="clear_breakpoint"
                      invoker="clear_breakpoint"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Clear a breakpoint put by any set functions. The Id of the breakpoint
is given in the callback of the set functions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been cleared</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="condition_breakpoint"
                      invoker="condition_breakpoint"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Add a condition, evaluate in the program context, on the breakpoint,
the program will stop when it reachs the breakpoint only if the
condition is true. This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="condition" transfer-ownership="none">
            <doc xml:whitespace="preserve">expression that has to be true</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="enable_breakpoint"
                      invoker="enable_breakpoint"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Enable of disable a breakpoint. This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE to enable the breakpoint, FALSE to disable it</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="ignore_breakpoint"
                      invoker="ignore_breakpoint"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">This allow to ignore the breakpoint a number of time before stopping.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="ignore" transfer-ownership="none">
            <doc xml:whitespace="preserve">Number of time a breakpoint must be ignored</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="implement_breakpoint"
                      invoker="implement_breakpoint"
                      throws="1">
        <doc xml:whitespace="preserve">Return all implemented methods.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A OR of #IAnjutaDebuggerBreakpointMethod corresponding to all implemented optional methods.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="list_breakpoint"
                      invoker="list_breakpoint"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">List all breakpoints set in the debugger. It is useful to
know how many time a breakpoint has been hit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with the list of #IAnjutaDebuggreBreakpointItem</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_breakpoint_at_address"
                      invoker="set_breakpoint_at_address"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Set a breakpoint at the specified address.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Address of the breakpoint</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_breakpoint_at_function"
                      invoker="set_breakpoint_at_function"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Set a breakpoint at the beginning of the specified function.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File containing the breakpoint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="function" transfer-ownership="none">
            <doc xml:whitespace="preserve">Function name where the breakpoint is put</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_breakpoint_at_line"
                      invoker="set_breakpoint_at_line"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Set a breakpoint at the specified line in the file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File containing the breakpoint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">Line number where is the breakpoint</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="clear_breakpoint"
              c:identifier="ianjuta_debugger_breakpoint_clear_breakpoint"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Clear a breakpoint put by any set functions. The Id of the breakpoint
is given in the callback of the set functions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been cleared</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="condition_breakpoint"
              c:identifier="ianjuta_debugger_breakpoint_condition_breakpoint"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Add a condition, evaluate in the program context, on the breakpoint,
the program will stop when it reachs the breakpoint only if the
condition is true. This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="condition" transfer-ownership="none">
            <doc xml:whitespace="preserve">expression that has to be true</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="enable_breakpoint"
              c:identifier="ianjuta_debugger_breakpoint_enable_breakpoint"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Enable of disable a breakpoint. This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE to enable the breakpoint, FALSE to disable it</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="ignore_breakpoint"
              c:identifier="ianjuta_debugger_breakpoint_ignore_breakpoint"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">This allow to ignore the breakpoint a number of time before stopping.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Breakpoint identification number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="ignore" transfer-ownership="none">
            <doc xml:whitespace="preserve">Number of time a breakpoint must be ignored</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="implement_breakpoint"
              c:identifier="ianjuta_debugger_breakpoint_implement_breakpoint"
              throws="1">
        <doc xml:whitespace="preserve">Return all implemented methods.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A OR of #IAnjutaDebuggerBreakpointMethod corresponding to all implemented optional methods.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="list_breakpoint"
              c:identifier="ianjuta_debugger_breakpoint_list_breakpoint"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">List all breakpoints set in the debugger. It is useful to
know how many time a breakpoint has been hit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with the list of #IAnjutaDebuggreBreakpointItem</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_breakpoint_at_address"
              c:identifier="ianjuta_debugger_breakpoint_set_breakpoint_at_address"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Set a breakpoint at the specified address.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Address of the breakpoint</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_breakpoint_at_function"
              c:identifier="ianjuta_debugger_breakpoint_set_breakpoint_at_function"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Set a breakpoint at the beginning of the specified function.
This function is optional.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File containing the breakpoint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="function" transfer-ownership="none">
            <doc xml:whitespace="preserve">Function name where the breakpoint is put</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_breakpoint_at_line"
              c:identifier="ianjuta_debugger_breakpoint_set_breakpoint_at_line"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Set a breakpoint at the specified line in the file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File containing the breakpoint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">Line number where is the breakpoint</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
            <type name="DebuggerBreakpointCallback"
                  c:type="IAnjutaDebuggerBreakpointCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <callback name="DebuggerBreakpointCallback"
              c:type="IAnjutaDebuggerBreakpointCallback">
      <doc xml:whitespace="preserve">This callback function is used to return a #IAnjutaBreakpointItem.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #IAnjutaBreakpointItem object</doc>
          <type name="DebuggerBreakpointItem"
                c:type="const IAnjutaDebuggerBreakpointItem*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DebuggerBreakpointIface"
            c:type="IAnjutaDebuggerBreakpointIface"
            glib:is-gtype-struct-for="DebuggerBreakpoint">
      <field name="g_iface">
        <type name="DebuggerIface" c:type="IAnjutaDebuggerIface"/>
      </field>
      <field name="clear_breakpoint" introspectable="0">
        <callback name="clear_breakpoint" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Breakpoint identification number</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been cleared</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="condition_breakpoint" introspectable="0">
        <callback name="condition_breakpoint" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Breakpoint identification number</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="condition" transfer-ownership="none">
              <doc xml:whitespace="preserve">expression that has to be true</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="enable_breakpoint" introspectable="0">
        <callback name="enable_breakpoint" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Breakpoint identification number</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="enable" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE to enable the breakpoint, FALSE to disable it</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ignore_breakpoint" introspectable="0">
        <callback name="ignore_breakpoint" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Breakpoint identification number</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="ignore" transfer-ownership="none">
              <doc xml:whitespace="preserve">Number of time a breakpoint must be ignored</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been changed</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="implement_breakpoint">
        <callback name="implement_breakpoint" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">A OR of #IAnjutaDebuggerBreakpointMethod corresponding to all implemented optional methods.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_breakpoint" introspectable="0">
        <callback name="list_breakpoint" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with the list of #IAnjutaDebuggreBreakpointItem</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_breakpoint_at_address" introspectable="0">
        <callback name="set_breakpoint_at_address"
                  introspectable="0"
                  throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <doc xml:whitespace="preserve">Address of the breakpoint</doc>
              <type name="gulong" c:type="gulong"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_breakpoint_at_function" introspectable="0">
        <callback name="set_breakpoint_at_function"
                  introspectable="0"
                  throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File containing the breakpoint</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="function" transfer-ownership="none">
              <doc xml:whitespace="preserve">Function name where the breakpoint is put</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_breakpoint_at_line" introspectable="0">
        <callback name="set_breakpoint_at_line" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerBreakpoint"
                    c:type="IAnjutaDebuggerBreakpoint*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File containing the breakpoint</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <doc xml:whitespace="preserve">Line number where is the breakpoint</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the breakpoint has been set</doc>
              <type name="DebuggerBreakpointCallback"
                    c:type="IAnjutaDebuggerBreakpointCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DebuggerBreakpointItem"
            c:type="IAnjutaDebuggerBreakpointItem">
      <doc xml:whitespace="preserve">This structure keeps all information about a breakpoint.</doc>
      <field name="type" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="id" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="file" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="line" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="function" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="address" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="enable" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="ignore" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="times" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="condition" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="temporary" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pending" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <enumeration name="DebuggerBreakpointMethod"
                 glib:type-name="IAnjutaDebuggerBreakpointMethod"
                 glib:get-type="ianjuta_debugger_breakpoint_method_get_type"
                 c:type="IAnjutaDebuggerBreakpointMethod">
      <doc xml:whitespace="preserve">Defines which breakpoint characteristics are supported by the debugger
backend.</doc>
      <member name="set_at_address"
              value="1"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_SET_AT_ADDRESS"
              glib:nick="set-at-address"/>
      <member name="set_at_function"
              value="2"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_SET_AT_FUNCTION"
              glib:nick="set-at-function"/>
      <member name="enable"
              value="4"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_ENABLE"
              glib:nick="enable"/>
      <member name="ignore"
              value="8"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_IGNORE"
              glib:nick="ignore"/>
      <member name="condition"
              value="16"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_CONDITION"
              glib:nick="condition"/>
    </enumeration>
    <enumeration name="DebuggerBreakpointType"
                 glib:type-name="IAnjutaDebuggerBreakpointType"
                 glib:get-type="ianjuta_debugger_breakpoint_type_get_type"
                 c:type="IAnjutaDebuggerBreakpointType">
      <doc xml:whitespace="preserve">This enumeration defined various characteristics of the breakpoint.</doc>
      <member name="removed"
              value="1"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_REMOVED"
              glib:nick="removed"/>
      <member name="updated"
              value="131072"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_UPDATED"
              glib:nick="updated"/>
      <member name="on_line"
              value="2"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_ON_LINE"
              glib:nick="on-line"/>
      <member name="on_address"
              value="4"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_ON_ADDRESS"
              glib:nick="on-address"/>
      <member name="on_function"
              value="8"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_ON_FUNCTION"
              glib:nick="on-function"/>
      <member name="on_read"
              value="16"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_ON_READ"
              glib:nick="on-read"/>
      <member name="on_write"
              value="32"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_ON_WRITE"
              glib:nick="on-write"/>
      <member name="with_enable"
              value="65536"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_WITH_ENABLE"
              glib:nick="with-enable"/>
      <member name="with_ignore"
              value="32768"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_WITH_IGNORE"
              glib:nick="with-ignore"/>
      <member name="with_time"
              value="2048"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_WITH_TIME"
              glib:nick="with-time"/>
      <member name="with_condition"
              value="4096"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_WITH_CONDITION"
              glib:nick="with-condition"/>
      <member name="with_temporary"
              value="8192"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_WITH_TEMPORARY"
              glib:nick="with-temporary"/>
      <member name="with_pending"
              value="16384"
              c:identifier="IANJUTA_DEBUGGER_BREAKPOINT_WITH_PENDING"
              glib:nick="with-pending"/>
    </enumeration>
    <callback name="DebuggerCallback" c:type="IAnjutaDebuggerCallback">
      <doc xml:whitespace="preserve">This callback function is used only by #ianjuta_debugger_callback with a
NULL data.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">data</doc>
          <type name="gpointer" c:type="const gpointer"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="DebuggerError"
                 glib:type-name="IAnjutaDebuggerError"
                 glib:get-type="ianjuta_debugger_error_get_type"
                 c:type="IAnjutaDebuggerError"
                 glib:error-domain="ianjuta-debugger-quark">
      <doc xml:whitespace="preserve">This enumeration is used to defined the error returned by the debugger
backend.</doc>
      <member name="ok"
              value="0"
              c:identifier="IANJUTA_DEBUGGER_OK"
              glib:nick="ok"/>
      <member name="not_ready"
              value="1"
              c:identifier="IANJUTA_DEBUGGER_NOT_READY"
              glib:nick="not-ready"/>
      <member name="not_running"
              value="2"
              c:identifier="IANJUTA_DEBUGGER_NOT_RUNNING"
              glib:nick="not-running"/>
      <member name="not_stopped"
              value="3"
              c:identifier="IANJUTA_DEBUGGER_NOT_STOPPED"
              glib:nick="not-stopped"/>
      <member name="not_loaded"
              value="4"
              c:identifier="IANJUTA_DEBUGGER_NOT_LOADED"
              glib:nick="not-loaded"/>
      <member name="not_started"
              value="5"
              c:identifier="IANJUTA_DEBUGGER_NOT_STARTED"
              glib:nick="not-started"/>
      <member name="not_connected"
              value="6"
              c:identifier="IANJUTA_DEBUGGER_NOT_CONNECTED"
              glib:nick="not-connected"/>
      <member name="not_implemented"
              value="7"
              c:identifier="IANJUTA_DEBUGGER_NOT_IMPLEMENTED"
              glib:nick="not-implemented"/>
      <member name="cancel"
              value="8"
              c:identifier="IANJUTA_DEBUGGER_CANCEL"
              glib:nick="cancel"/>
      <member name="unable_to_create_variable"
              value="9"
              c:identifier="IANJUTA_DEBUGGER_UNABLE_TO_CREATE_VARIABLE"
              glib:nick="unable-to-create-variable"/>
      <member name="unable_to_access_memory"
              value="10"
              c:identifier="IANJUTA_DEBUGGER_UNABLE_TO_ACCESS_MEMORY"
              glib:nick="unable-to-access-memory"/>
      <member name="unable_to_open_file"
              value="11"
              c:identifier="IANJUTA_DEBUGGER_UNABLE_TO_OPEN_FILE"
              glib:nick="unable-to-open-file"/>
      <member name="unsupported_file_type"
              value="12"
              c:identifier="IANJUTA_DEBUGGER_UNSUPPORTED_FILE_TYPE"
              glib:nick="unsupported-file-type"/>
      <member name="unsupported_version"
              value="13"
              c:identifier="IANJUTA_DEBUGGER_UNSUPPORTED_VERSION"
              glib:nick="unsupported-version"/>
      <member name="unable_to_find_debugger"
              value="14"
              c:identifier="IANJUTA_DEBUGGER_UNABLE_TO_FIND_DEBUGGER"
              glib:nick="unable-to-find-debugger"/>
      <member name="already_done"
              value="15"
              c:identifier="IANJUTA_DEBUGGER_ALREADY_DONE"
              glib:nick="already-done"/>
      <member name="program_not_found"
              value="16"
              c:identifier="IANJUTA_DEBUGGER_PROGRAM_NOT_FOUND"
              glib:nick="program-not-found"/>
      <member name="unable_to_connect"
              value="17"
              c:identifier="IANJUTA_DEBUGGER_UNABLE_TO_CONNECT"
              glib:nick="unable-to-connect"/>
      <member name="unknown_error"
              value="18"
              c:identifier="IANJUTA_DEBUGGER_UNKNOWN_ERROR"
              glib:nick="unknown-error"/>
      <member name="other_error"
              value="19"
              c:identifier="IANJUTA_DEBUGGER_OTHER_ERROR"
              glib:nick="other-error"/>
      <function name="quark" c:identifier="ianjuta_debugger_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="DebuggerFrame" c:type="IAnjutaDebuggerFrame">
      <doc xml:whitespace="preserve">This structure keeps all information about a stack frame.</doc>
      <field name="thread" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="level" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="args" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="file" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="line" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="function" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="library" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="address" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
    </record>
    <callback name="DebuggerGCharCallback"
              c:type="IAnjutaDebuggerGCharCallback">
      <doc xml:whitespace="preserve">This callback function is used by several debugger functions. The data is
a string</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="DebuggerGListCallback"
              c:type="IAnjutaDebuggerGListCallback"
              introspectable="0">
      <doc xml:whitespace="preserve">This callback function is used by several debugger functions. Depending on
the function, the kind of elements in the list is different. It is a string
for #ianjuta_debugger_list_local or a #IAnjutaDebuggerFrame for
#ianjuta_debugger_list_frame.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:whitespace="preserve">list of data</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="gpointer"/>
          </type>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DebuggerIface"
            c:type="IAnjutaDebuggerIface"
            glib:is-gtype-struct-for="Debugger">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="debugger_ready">
        <callback name="debugger_ready">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="DebuggerState" c:type="IAnjutaDebuggerState"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="debugger_started">
        <callback name="debugger_started">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="debugger_stopped">
        <callback name="debugger_stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="err" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="frame_changed">
        <callback name="frame_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="frame" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_exited">
        <callback name="program_exited">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_loaded">
        <callback name="program_loaded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_moved">
        <callback name="program_moved">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="pid" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="tid" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <type name="gulong" c:type="gulong"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_running">
        <callback name="program_running">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="program_stopped">
        <callback name="program_stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sharedlib_event">
        <callback name="sharedlib_event">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="signal_received">
        <callback name="signal_received">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="description" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="abort">
        <callback name="abort" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="attach">
        <callback name="attach" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="pid" transfer-ownership="none">
              <doc xml:whitespace="preserve">pid of the process to debug</doc>
              <type name="gint" c:type="pid_t"/>
            </parameter>
            <parameter name="source_search_directories"
                       transfer-ownership="none">
              <doc xml:whitespace="preserve">List of directories to search for source files.</doc>
              <type name="GLib.List" c:type="const GList*">
                <type name="utf8"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="callback" introspectable="0">
        <callback name="callback" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call. the data argument is NULL.</doc>
              <type name="DebuggerCallback" c:type="IAnjutaDebuggerCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="connect">
        <callback name="connect" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessfull, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="server" transfer-ownership="none">
              <doc xml:whitespace="preserve">remote server</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="args" transfer-ownership="none">
              <doc xml:whitespace="preserve">command line argument of the program</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="terminal" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if the program need a terminal</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="stop" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if program is stopped at the beginning</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disable_log">
        <callback name="disable_log" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="dump_stack_trace" introspectable="0">
        <callback name="dump_stack_trace" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="enable_log">
        <callback name="enable_log" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="log" transfer-ownership="none">
              <doc xml:whitespace="preserve">MessageView used by log</doc>
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="evaluate" introspectable="0">
        <callback name="evaluate" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">variable name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <doc xml:whitespace="preserve">new variable value</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the variable has been modified</doc>
              <type name="DebuggerGCharCallback"
                    c:type="IAnjutaDebuggerGCharCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="exit">
        <callback name="exit" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_state">
        <callback name="get_state" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The current debugger state.</doc>
            <type name="DebuggerState" c:type="IAnjutaDebuggerState"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_signal">
        <callback name="handle_signal" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">signal name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="stop" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if we need to stop signal</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="print" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if we display a message when the signal is emitted</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="ignore" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if we ignore the signal</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_args" introspectable="0">
        <callback name="info_args" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_frame" introspectable="0">
        <callback name="info_frame" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="frame" transfer-ownership="none">
              <doc xml:whitespace="preserve">frame number, the top frame has the number 0</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_program" introspectable="0">
        <callback name="info_program" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_sharedlib" introspectable="0">
        <callback name="info_sharedlib" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_signal" introspectable="0">
        <callback name="info_signal" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_target" introspectable="0">
        <callback name="info_target" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_thread" introspectable="0">
        <callback name="info_thread" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <doc xml:whitespace="preserve">thread number</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_udot" introspectable="0">
        <callback name="info_udot" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="info_variables" introspectable="0">
        <callback name="info_variables" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of strings with all information</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="inspect" introspectable="0">
        <callback name="inspect" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">variable name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call with variable value</doc>
              <type name="DebuggerGCharCallback"
                    c:type="IAnjutaDebuggerGCharCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="interrupt">
        <callback name="interrupt" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_argument" introspectable="0">
        <callback name="list_argument" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with list of arguments</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_frame" introspectable="0">
        <callback name="list_frame" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of #IAnjutaDebuggerFrame</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_local" introspectable="0">
        <callback name="list_local" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with list of local variable</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_thread" introspectable="0">
        <callback name="list_thread" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call getting a list of #IAnjutaDebuggerFrame for each thread</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load">
        <callback name="load" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">filename</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="mime_type" transfer-ownership="none">
              <doc xml:whitespace="preserve">mime type of the file</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="source_search_directories"
                       transfer-ownership="none">
              <doc xml:whitespace="preserve">List of directories to search for source files.</doc>
              <type name="GLib.List" c:type="const GList*">
                <type name="utf8"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="print" introspectable="0">
        <callback name="print" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="variable" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call with variable value</doc>
              <type name="DebuggerGCharCallback"
                    c:type="IAnjutaDebuggerGCharCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="quit">
        <callback name="quit" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="run">
        <callback name="run" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="run_from">
        <callback name="run_from" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">target file name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <doc xml:whitespace="preserve">target line in file</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="run_to">
        <callback name="run_to" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">target file name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <doc xml:whitespace="preserve">target line in file</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="send_command">
        <callback name="send_command" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="command" transfer-ownership="none">
              <doc xml:whitespace="preserve">command</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_environment">
        <callback name="set_environment" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessfull, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="env" transfer-ownership="none">
              <doc xml:whitespace="preserve">List environment variable</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_frame">
        <callback name="set_frame" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="frame" transfer-ownership="none">
              <doc xml:whitespace="preserve">frame number</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_thread">
        <callback name="set_thread" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="thread" transfer-ownership="none">
              <doc xml:whitespace="preserve">thread number</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_working_directory">
        <callback name="set_working_directory" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="dir" transfer-ownership="none">
              <doc xml:whitespace="preserve">working program directory</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start">
        <callback name="start" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
            <parameter name="args" transfer-ownership="none">
              <doc xml:whitespace="preserve">command line argument of the program</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="terminal" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if the program need a terminal</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="stop" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if program is stopped at the beginning</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="step_in">
        <callback name="step_in" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="step_out">
        <callback name="step_out" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="step_over">
        <callback name="step_over" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unload">
        <callback name="unload" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessfull, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Debugger" c:type="IAnjutaDebugger*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DebuggerInstruction"
               c:symbol-prefix="debugger_instruction"
               c:type="IAnjutaDebuggerInstruction"
               glib:type-name="IAnjutaDebuggerInstruction"
               glib:get-type="ianjuta_debugger_instruction_get_type"
               glib:type-struct="DebuggerInstructionIface">
      <prerequisite name="Debugger"/>
      <function name="error_quark"
                c:identifier="ianjuta_debugger_instruction_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="disassemble"
                      invoker="disassemble"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Disassemble a part of the memory</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start address of the memory block</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of memory block</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Call back with a IAnjutaDebuggerInstructionDisassembly as argument</doc>
            <type name="DebuggerInstructionCallback"
                  c:type="IAnjutaDebuggerInstructionCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="run_from_address"
                      invoker="run_from_address"
                      throws="1">
        <doc xml:whitespace="preserve">Restart the program starting from address address</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Run from this addresss</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="run_to_address"
                      invoker="run_to_address"
                      throws="1">
        <doc xml:whitespace="preserve">Start the program until it reachs the address address</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Run to this addresss</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="step_in_instruction"
                      invoker="step_in_instruction"
                      throws="1">
        <doc xml:whitespace="preserve">Execute one assembler instruction in the program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="step_over_instruction"
                      invoker="step_over_instruction"
                      throws="1">
        <doc xml:whitespace="preserve">Execute one assembler instruction in the program, if the instruction
is a function call, continues until the function returns.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <method name="disassemble"
              c:identifier="ianjuta_debugger_instruction_disassemble"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Disassemble a part of the memory</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start address of the memory block</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of memory block</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Call back with a IAnjutaDebuggerInstructionDisassembly as argument</doc>
            <type name="DebuggerInstructionCallback"
                  c:type="IAnjutaDebuggerInstructionCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="run_from_address"
              c:identifier="ianjuta_debugger_instruction_run_from_address"
              throws="1">
        <doc xml:whitespace="preserve">Restart the program starting from address address</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Run from this addresss</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </method>
      <method name="run_to_address"
              c:identifier="ianjuta_debugger_instruction_run_to_address"
              throws="1">
        <doc xml:whitespace="preserve">Start the program until it reachs the address address</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Run to this addresss</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </method>
      <method name="step_in_instruction"
              c:identifier="ianjuta_debugger_instruction_step_in_instruction"
              throws="1">
        <doc xml:whitespace="preserve">Execute one assembler instruction in the program.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="step_over_instruction"
              c:identifier="ianjuta_debugger_instruction_step_over_instruction"
              throws="1">
        <doc xml:whitespace="preserve">Execute one assembler instruction in the program, if the instruction
is a function call, continues until the function returns.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
    </interface>
    <record name="DebuggerInstructionALine"
            c:type="IAnjutaDebuggerInstructionALine">
      <doc xml:whitespace="preserve">Defines a disassembled line</doc>
      <field name="address" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="label" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="text" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <callback name="DebuggerInstructionCallback"
              c:type="IAnjutaDebuggerInstructionCallback">
      <doc xml:whitespace="preserve">This callback function is used to return a #IAnjutaDebuggerInstructionDisassembly.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #IAnjutaDebuggerInstructionDisassembly object</doc>
          <type name="DebuggerInstructionDisassembly"
                c:type="const IAnjutaDebuggerInstructionDisassembly*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DebuggerInstructionDisassembly"
            c:type="IAnjutaDebuggerInstructionDisassembly">
      <doc xml:whitespace="preserve">Represents a block of diassembled instructions</doc>
      <field name="size" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="data" writable="1">
        <array zero-terminated="0" c:type="IAnjutaDebuggerInstructionALine">
          <type name="DebuggerInstructionALine"
                c:type="IAnjutaDebuggerInstructionALine"/>
        </array>
      </field>
    </record>
    <record name="DebuggerInstructionIface"
            c:type="IAnjutaDebuggerInstructionIface"
            glib:is-gtype-struct-for="DebuggerInstruction">
      <field name="g_iface">
        <type name="DebuggerIface" c:type="IAnjutaDebuggerIface"/>
      </field>
      <field name="disassemble" introspectable="0">
        <callback name="disassemble" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerInstruction"
                    c:type="IAnjutaDebuggerInstruction*"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <doc xml:whitespace="preserve">Start address of the memory block</doc>
              <type name="gulong" c:type="gulong"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <doc xml:whitespace="preserve">Length of memory block</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Call back with a IAnjutaDebuggerInstructionDisassembly as argument</doc>
              <type name="DebuggerInstructionCallback"
                    c:type="IAnjutaDebuggerInstructionCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="run_from_address">
        <callback name="run_from_address" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerInstruction"
                    c:type="IAnjutaDebuggerInstruction*"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <doc xml:whitespace="preserve">Run from this addresss</doc>
              <type name="gulong" c:type="gulong"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="run_to_address">
        <callback name="run_to_address" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerInstruction"
                    c:type="IAnjutaDebuggerInstruction*"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <doc xml:whitespace="preserve">Run to this addresss</doc>
              <type name="gulong" c:type="gulong"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="step_in_instruction">
        <callback name="step_in_instruction" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerInstruction"
                    c:type="IAnjutaDebuggerInstruction*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="step_over_instruction">
        <callback name="step_over_instruction" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerInstruction"
                    c:type="IAnjutaDebuggerInstruction*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DebuggerMemory"
               c:symbol-prefix="debugger_memory"
               c:type="IAnjutaDebuggerMemory"
               glib:type-name="IAnjutaDebuggerMemory"
               glib:get-type="ianjuta_debugger_memory_get_type"
               glib:type-struct="DebuggerMemoryIface">
      <prerequisite name="Debugger"/>
      <function name="error_quark"
                c:identifier="ianjuta_debugger_memory_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="inspect"
                      invoker="inspect"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Read a block of the target memory.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start address of the memory block</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of memory block</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Call back with a IAnjutaDebuggerMemoryBlock as argument</doc>
            <type name="DebuggerMemoryCallback"
                  c:type="IAnjutaDebuggerMemoryCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="inspect"
              c:identifier="ianjuta_debugger_memory_inspect"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Read a block of the target memory.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start address of the memory block</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of memory block</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Call back with a IAnjutaDebuggerMemoryBlock as argument</doc>
            <type name="DebuggerMemoryCallback"
                  c:type="IAnjutaDebuggerMemoryCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DebuggerMemoryBlock" c:type="IAnjutaDebuggerMemoryBlock">
      <field name="address" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="length" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="data" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <callback name="DebuggerMemoryCallback"
              c:type="IAnjutaDebuggerMemoryCallback">
      <doc xml:whitespace="preserve">This callback function is used to return a #IAnjutaDebuggerMemoryBlock.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #IAnjutaDebuggerMemoryBlock object</doc>
          <type name="DebuggerMemoryBlock"
                c:type="const IAnjutaDebuggerMemoryBlock*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DebuggerMemoryIface"
            c:type="IAnjutaDebuggerMemoryIface"
            glib:is-gtype-struct-for="DebuggerMemory">
      <field name="g_iface">
        <type name="DebuggerIface" c:type="IAnjutaDebuggerIface"/>
      </field>
      <field name="inspect" introspectable="0">
        <callback name="inspect" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerMemory" c:type="IAnjutaDebuggerMemory*"/>
            </parameter>
            <parameter name="address" transfer-ownership="none">
              <doc xml:whitespace="preserve">Start address of the memory block</doc>
              <type name="gulong" c:type="gulong"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <doc xml:whitespace="preserve">Length of memory block</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Call back with a IAnjutaDebuggerMemoryBlock as argument</doc>
              <type name="DebuggerMemoryCallback"
                    c:type="IAnjutaDebuggerMemoryCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="DebuggerOutputCallback"
              c:type="IAnjutaDebuggerOutputCallback">
      <doc xml:whitespace="preserve">This callback function is used only by #ianjuta_debugger_callback with a
NULL data.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <type name="DebuggerOutputType" c:type="IAnjutaDebuggerOutputType"/>
        </parameter>
        <parameter name="output" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <doc xml:whitespace="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="DebuggerOutputType"
                 glib:type-name="IAnjutaDebuggerOutputType"
                 glib:get-type="ianjuta_debugger_output_type_get_type"
                 c:type="IAnjutaDebuggerOutputType">
      <doc xml:whitespace="preserve">This enumeration is used to defined the kind of output in
#IAnjutaDebuggerOutputCallback</doc>
      <member name="output"
              value="0"
              c:identifier="IANJUTA_DEBUGGER_OUTPUT"
              glib:nick="output"/>
      <member name="warning_output"
              value="1"
              c:identifier="IANJUTA_DEBUGGER_WARNING_OUTPUT"
              glib:nick="warning-output"/>
      <member name="error_output"
              value="2"
              c:identifier="IANJUTA_DEBUGGER_ERROR_OUTPUT"
              glib:nick="error-output"/>
      <member name="info_output"
              value="3"
              c:identifier="IANJUTA_DEBUGGER_INFO_OUTPUT"
              glib:nick="info-output"/>
    </enumeration>
    <interface name="DebuggerRegister"
               c:symbol-prefix="debugger_register"
               c:type="IAnjutaDebuggerRegister"
               glib:type-name="IAnjutaDebuggerRegister"
               glib:get-type="ianjuta_debugger_register_get_type"
               glib:type-struct="DebuggerRegisterIface">
      <prerequisite name="Debugger"/>
      <function name="error_quark"
                c:identifier="ianjuta_debugger_register_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="list_register"
                      invoker="list_register"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">List all registers of the target. This function can be called without
a program loaded, the value field of register structure is not filled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with the #IAnjutaDebuggerRegisterData list</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_register"
                      invoker="update_register"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Return all modified registers since the last call. Only the num and
value field are used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback call with the list of all modified #IAnjutaDebuggerRegisterData</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="write_register"
                      invoker="write_register"
                      throws="1">
        <doc xml:whitespace="preserve">Change the value of one register. Only the num and value field are used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modified register with a new value</doc>
            <type name="DebuggerRegisterData"
                  c:type="IAnjutaDebuggerRegisterData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="list_register"
              c:identifier="ianjuta_debugger_register_list_register"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">List all registers of the target. This function can be called without
a program loaded, the value field of register structure is not filled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with the #IAnjutaDebuggerRegisterData list</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_register"
              c:identifier="ianjuta_debugger_register_update_register"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Return all modified registers since the last call. Only the num and
value field are used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback call with the list of all modified #IAnjutaDebuggerRegisterData</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_register"
              c:identifier="ianjuta_debugger_register_write_register"
              throws="1">
        <doc xml:whitespace="preserve">Change the value of one register. Only the num and value field are used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Modified register with a new value</doc>
            <type name="DebuggerRegisterData"
                  c:type="IAnjutaDebuggerRegisterData*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DebuggerRegisterData" c:type="IAnjutaDebuggerRegisterData">
      <doc xml:whitespace="preserve">Defines a register data.</doc>
      <field name="num" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="DebuggerRegisterIface"
            c:type="IAnjutaDebuggerRegisterIface"
            glib:is-gtype-struct-for="DebuggerRegister">
      <field name="g_iface">
        <type name="DebuggerIface" c:type="IAnjutaDebuggerIface"/>
      </field>
      <field name="list_register" introspectable="0">
        <callback name="list_register" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerRegister" c:type="IAnjutaDebuggerRegister*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with the #IAnjutaDebuggerRegisterData list</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_register" introspectable="0">
        <callback name="update_register" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerRegister" c:type="IAnjutaDebuggerRegister*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback call with the list of all modified #IAnjutaDebuggerRegisterData</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="write_register">
        <callback name="write_register" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerRegister" c:type="IAnjutaDebuggerRegister*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <doc xml:whitespace="preserve">Modified register with a new value</doc>
              <type name="DebuggerRegisterData"
                    c:type="IAnjutaDebuggerRegisterData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DebuggerState"
                 glib:type-name="IAnjutaDebuggerState"
                 glib:get-type="ianjuta_debugger_state_get_type"
                 c:type="IAnjutaDebuggerState">
      <doc xml:whitespace="preserve">This enumeration is used to defined the different state of the debugger.</doc>
      <member name="busy"
              value="0"
              c:identifier="IANJUTA_DEBUGGER_BUSY"
              glib:nick="busy"/>
      <member name="stopped"
              value="1"
              c:identifier="IANJUTA_DEBUGGER_STOPPED"
              glib:nick="stopped"/>
      <member name="started"
              value="2"
              c:identifier="IANJUTA_DEBUGGER_STARTED"
              glib:nick="started"/>
      <member name="program_loaded"
              value="3"
              c:identifier="IANJUTA_DEBUGGER_PROGRAM_LOADED"
              glib:nick="program-loaded"/>
      <member name="program_stopped"
              value="4"
              c:identifier="IANJUTA_DEBUGGER_PROGRAM_STOPPED"
              glib:nick="program-stopped"/>
      <member name="program_running"
              value="5"
              c:identifier="IANJUTA_DEBUGGER_PROGRAM_RUNNING"
              glib:nick="program-running"/>
    </enumeration>
    <interface name="DebuggerVariable"
               c:symbol-prefix="debugger_variable"
               c:type="IAnjutaDebuggerVariable"
               glib:type-name="IAnjutaDebuggerVariable"
               glib:get-type="ianjuta_debugger_variable_get_type"
               glib:type-struct="DebuggerVariableIface">
      <prerequisite name="Debugger"/>
      <function name="error_quark"
                c:identifier="ianjuta_debugger_variable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="assign" invoker="assign" throws="1">
        <doc xml:whitespace="preserve">Set the value of one variable or child object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create"
                      invoker="create"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Create a new variable object in the current thread and frame.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="expression" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable expression</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when the variable has been created</doc>
            <type name="DebuggerVariableCallback"
                  c:type="IAnjutaDebuggerVariableCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="destroy" invoker="destroy" throws="1">
        <doc xml:whitespace="preserve">Delete a previously created variable or child object
including its own children.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="evaluate"
                      invoker="evaluate"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the value of one variable or child object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call with the variable value</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_children"
                      invoker="list_children"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">List and create objects for variable object's children.
The backend can returns only a part of the children, in
this case a last variable with a NULL name is added to
the list given to the callback function.
If the remaining children are wanted, this
function must be called again with a from argument
corresponding to the first missing children.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="from" transfer-ownership="none">
            <doc xml:whitespace="preserve">Starting from this children (zero-based)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the children have been created with a list of variable objects</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update"
                      invoker="update"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">List all changed variable objects since the last call.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with the list of all changed variable names</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="assign"
              c:identifier="ianjuta_debugger_variable_assign"
              throws="1">
        <doc xml:whitespace="preserve">Set the value of one variable or child object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create"
              c:identifier="ianjuta_debugger_variable_create"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Create a new variable object in the current thread and frame.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="expression" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable expression</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when the variable has been created</doc>
            <type name="DebuggerVariableCallback"
                  c:type="IAnjutaDebuggerVariableCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy"
              c:identifier="ianjuta_debugger_variable_destroy"
              throws="1">
        <doc xml:whitespace="preserve">Delete a previously created variable or child object
including its own children.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="evaluate"
              c:identifier="ianjuta_debugger_variable_evaluate"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the value of one variable or child object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call with the variable value</doc>
            <type name="DebuggerGCharCallback"
                  c:type="IAnjutaDebuggerGCharCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_children"
              c:identifier="ianjuta_debugger_variable_list_children"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">List and create objects for variable object's children.
The backend can returns only a part of the children, in
this case a last variable with a NULL name is added to
the list given to the callback function.
If the remaining children are wanted, this
function must be called again with a from argument
corresponding to the first missing children.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="from" transfer-ownership="none">
            <doc xml:whitespace="preserve">Starting from this children (zero-based)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback to call when the children have been created with a list of variable objects</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="update"
              c:identifier="ianjuta_debugger_variable_update"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">List all changed variable objects since the last call.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call with the list of all changed variable names</doc>
            <type name="DebuggerGListCallback"
                  c:type="IAnjutaDebuggerGListCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <callback name="DebuggerVariableCallback"
              c:type="IAnjutaDebuggerVariableCallback">
      <doc xml:whitespace="preserve">This callback function is used to return a #IAnjutaDebuggerVariableObject.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #IAnjutaDebuggerVariableObject object</doc>
          <type name="DebuggerVariableObject"
                c:type="const IAnjutaDebuggerVariableObject*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <doc xml:whitespace="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="err" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DebuggerVariableIface"
            c:type="IAnjutaDebuggerVariableIface"
            glib:is-gtype-struct-for="DebuggerVariable">
      <field name="g_iface">
        <type name="DebuggerIface" c:type="IAnjutaDebuggerIface"/>
      </field>
      <field name="assign">
        <callback name="assign" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerVariable" c:type="IAnjutaDebuggerVariable*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Variable name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <doc xml:whitespace="preserve">Variable value</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create" introspectable="0">
        <callback name="create" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerVariable" c:type="IAnjutaDebuggerVariable*"/>
            </parameter>
            <parameter name="expression" transfer-ownership="none">
              <doc xml:whitespace="preserve">Variable expression</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call when the variable has been created</doc>
              <type name="DebuggerVariableCallback"
                    c:type="IAnjutaDebuggerVariableCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="destroy">
        <callback name="destroy" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerVariable" c:type="IAnjutaDebuggerVariable*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Variable name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="evaluate" introspectable="0">
        <callback name="evaluate" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerVariable" c:type="IAnjutaDebuggerVariable*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Variable name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call with the variable value</doc>
              <type name="DebuggerGCharCallback"
                    c:type="IAnjutaDebuggerGCharCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_children" introspectable="0">
        <callback name="list_children" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerVariable" c:type="IAnjutaDebuggerVariable*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Variable name</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="from" transfer-ownership="none">
              <doc xml:whitespace="preserve">Starting from this children (zero-based)</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">Callback to call when the children have been created with a list of variable objects</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update" introspectable="0">
        <callback name="update" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DebuggerVariable" c:type="IAnjutaDebuggerVariable*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call with the list of all changed variable names</doc>
              <type name="DebuggerGListCallback"
                    c:type="IAnjutaDebuggerGListCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data that is passed back to the callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="DebuggerVariableObject"
            c:type="IAnjutaDebuggerVariableObject">
      <doc xml:whitespace="preserve">Defines a variable object.</doc>
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="expression" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="type" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="changed" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="exited" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="deleted" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="children" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="has_more" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <interface name="Document"
               c:symbol-prefix="document"
               c:type="IAnjutaDocument"
               glib:type-name="IAnjutaDocument"
               glib:get-type="ianjuta_document_get_type"
               glib:type-struct="DocumentIface">
      <function name="error_quark" c:identifier="ianjuta_document_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="begin_undo_action"
                      invoker="begin_undo_action"
                      throws="1">
        <doc xml:whitespace="preserve">Begins the mark of undoable action. Calls to this are stacked and
each must be ended with ianjuta_document_end_action().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="can_redo" invoker="can_redo" throws="1">
        <doc xml:whitespace="preserve">Can the editor redo the last operation?</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if editor can redo, else FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="can_undo" invoker="can_undo" throws="1">
        <doc xml:whitespace="preserve">Can the editor undo the last operation?</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if editor can undo, else FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="clear" invoker="clear" throws="1">
        <doc xml:whitespace="preserve">Clear selection</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="copy" invoker="copy" throws="1">
        <doc xml:whitespace="preserve">Copy selection to clipboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="cut" invoker="cut" throws="1">
        <doc xml:whitespace="preserve">Cut selection to clipboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="end_undo_action"
                      invoker="end_undo_action"
                      throws="1">
        <doc xml:whitespace="preserve">Ends the mark of undoable action.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_filename" invoker="get_filename" throws="1">
        <doc xml:whitespace="preserve">Allows obtaining of the filename the editor was loaded from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The name of the file. Not to be freed by caller.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="grab_focus" invoker="grab_focus" throws="1">
        <doc xml:whitespace="preserve">Grabs the focus.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="paste" invoker="paste" throws="1">
        <doc xml:whitespace="preserve">Paste clipboard at current position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="redo" invoker="redo" throws="1">
        <doc xml:whitespace="preserve">Redo last undo operation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="undo" invoker="undo" throws="1">
        <doc xml:whitespace="preserve">Undo last operation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="update_ui">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="begin_undo_action"
              c:identifier="ianjuta_document_begin_undo_action"
              throws="1">
        <doc xml:whitespace="preserve">Begins the mark of undoable action. Calls to this are stacked and
each must be ended with ianjuta_document_end_action().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="can_redo"
              c:identifier="ianjuta_document_can_redo"
              throws="1">
        <doc xml:whitespace="preserve">Can the editor redo the last operation?</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if editor can redo, else FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="can_undo"
              c:identifier="ianjuta_document_can_undo"
              throws="1">
        <doc xml:whitespace="preserve">Can the editor undo the last operation?</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if editor can undo, else FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="clear" c:identifier="ianjuta_document_clear" throws="1">
        <doc xml:whitespace="preserve">Clear selection</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="copy" c:identifier="ianjuta_document_copy" throws="1">
        <doc xml:whitespace="preserve">Copy selection to clipboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="cut" c:identifier="ianjuta_document_cut" throws="1">
        <doc xml:whitespace="preserve">Cut selection to clipboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="end_undo_action"
              c:identifier="ianjuta_document_end_undo_action"
              throws="1">
        <doc xml:whitespace="preserve">Ends the mark of undoable action.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_filename"
              c:identifier="ianjuta_document_get_filename"
              throws="1">
        <doc xml:whitespace="preserve">Allows obtaining of the filename the editor was loaded from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The name of the file. Not to be freed by caller.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="grab_focus"
              c:identifier="ianjuta_document_grab_focus"
              throws="1">
        <doc xml:whitespace="preserve">Grabs the focus.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="paste" c:identifier="ianjuta_document_paste" throws="1">
        <doc xml:whitespace="preserve">Paste clipboard at current position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="redo" c:identifier="ianjuta_document_redo" throws="1">
        <doc xml:whitespace="preserve">Redo last undo operation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="undo" c:identifier="ianjuta_document_undo" throws="1">
        <doc xml:whitespace="preserve">Undo last operation</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <glib:signal name="update-ui" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when the document assumes the UI must be updated
because some internal state of the document has changed. For example, if
current line position is changed, it needs to be reflected to the UI.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="DocumentIface"
            c:type="IAnjutaDocumentIface"
            glib:is-gtype-struct-for="Document">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="update_ui">
        <callback name="update_ui">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin_undo_action">
        <callback name="begin_undo_action" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_redo">
        <callback name="can_redo" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if editor can redo, else FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_undo">
        <callback name="can_undo" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if editor can undo, else FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear">
        <callback name="clear" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="copy">
        <callback name="copy" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cut">
        <callback name="cut" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_undo_action">
        <callback name="end_undo_action" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_filename">
        <callback name="get_filename" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The name of the file. Not to be freed by caller.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="grab_focus">
        <callback name="grab_focus" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="paste">
        <callback name="paste" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="redo">
        <callback name="redo" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="undo">
        <callback name="undo" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="DocumentManager"
               c:symbol-prefix="document_manager"
               c:type="IAnjutaDocumentManager"
               glib:type-name="IAnjutaDocumentManager"
               glib:get-type="ianjuta_document_manager_get_type"
               glib:type-struct="DocumentManagerIface">
      <virtual-method name="add_bookmark" invoker="add_bookmark" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_buffer" invoker="add_buffer" throws="1">
        <doc xml:whitespace="preserve">Creates a new editor buffer of the given name and sets the given
content as its initial content.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the IAnjutaEditor instance that has been added.</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the editor buffer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:whitespace="preserve">Initial content of the buffer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_document" invoker="add_document" throws="1">
        <doc xml:whitespace="preserve">Adds a document to the document manager. This will open a new
Notebook tab and show the document there</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="document" transfer-ownership="none">
            <doc xml:whitespace="preserve">the document to add</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="find_document_with_file"
                      invoker="find_document_with_file"
                      throws="1">
        <doc xml:whitespace="preserve">Finds the document that has the file  loaded. Only
the editor that matches the file will be searched.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the document that corresponds to given file. NULL if there is no editor loaded with this file.</doc>
          <type name="Document" c:type="IAnjutaDocument*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file to find.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_current_document"
                      invoker="get_current_document"
                      throws="1">
        <doc xml:whitespace="preserve">Gets the current document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the currently active document. NULL if none is there.</doc>
          <type name="Document" c:type="IAnjutaDocument*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_doc_widgets"
                      invoker="get_doc_widgets"
                      throws="1">
        <doc xml:whitespace="preserve">Gets a list of widgets for open documents. Each widget is
a GTK_WIDGET(IAnjutaDocument*)</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">a list of widgets for all open documents. The returned list (but not the data in the list) must be freed after use.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gtk.Widget"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="get_file" invoker="get_file" throws="1">
        <doc xml:whitespace="preserve">Given the short filename, finds the file of the filename, if the
editor that has it loaded is found. If there is no editor that has
this file opened, returns NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the GFile for the given short filename</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">short filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="goto_file_line"
                      invoker="goto_file_line"
                      throws="1">
        <doc xml:whitespace="preserve">Loads the given file if not loaded yet, set its editor as current editor
and moves cursor to the given line in the editor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the editor where the mark has been put. NULL if none.</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to go to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="lineno" transfer-ownership="none">
            <doc xml:whitespace="preserve">the line number in the file to go to.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="goto_file_line_mark"
                      invoker="goto_file_line_mark"
                      throws="1">
        <doc xml:whitespace="preserve">Loads the given file if not loaded yet, set its editor as current editor
and moves cursor to the given line in the editor. Optionally also marks
the line with line marker if @mark is given TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the editor where the mark has been put. NULL if none.</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to go to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="lineno" transfer-ownership="none">
            <doc xml:whitespace="preserve">the line number in the file to go to.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the line should be marked with a marker.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_document"
                      invoker="remove_document"
                      throws="1">
        <doc xml:whitespace="preserve">Closes and removes the given document. If @save_before is TRUE, also
saves the document before closing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the document was removed, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="document" transfer-ownership="none">
            <doc xml:whitespace="preserve">Document to close.</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </parameter>
          <parameter name="save_before" transfer-ownership="none">
            <doc xml:whitespace="preserve">If true, saves the document before closing.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_current_document"
                      invoker="set_current_document"
                      throws="1">
        <doc xml:whitespace="preserve">Sets the given document as current document.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="document" transfer-ownership="none">
            <doc xml:whitespace="preserve">the document to set as current.</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_bookmark"
              c:identifier="ianjuta_document_manager_add_bookmark"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_buffer"
              c:identifier="ianjuta_document_manager_add_buffer"
              throws="1">
        <doc xml:whitespace="preserve">Creates a new editor buffer of the given name and sets the given
content as its initial content.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the IAnjutaEditor instance that has been added.</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the editor buffer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:whitespace="preserve">Initial content of the buffer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_document"
              c:identifier="ianjuta_document_manager_add_document"
              throws="1">
        <doc xml:whitespace="preserve">Adds a document to the document manager. This will open a new
Notebook tab and show the document there</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="document" transfer-ownership="none">
            <doc xml:whitespace="preserve">the document to add</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_document_with_file"
              c:identifier="ianjuta_document_manager_find_document_with_file"
              throws="1">
        <doc xml:whitespace="preserve">Finds the document that has the file  loaded. Only
the editor that matches the file will be searched.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the document that corresponds to given file. NULL if there is no editor loaded with this file.</doc>
          <type name="Document" c:type="IAnjutaDocument*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file to find.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_current_document"
              c:identifier="ianjuta_document_manager_get_current_document"
              throws="1">
        <doc xml:whitespace="preserve">Gets the current document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the currently active document. NULL if none is there.</doc>
          <type name="Document" c:type="IAnjutaDocument*"/>
        </return-value>
      </method>
      <method name="get_doc_widgets"
              c:identifier="ianjuta_document_manager_get_doc_widgets"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of widgets for open documents. Each widget is
a GTK_WIDGET(IAnjutaDocument*)</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">a list of widgets for all open documents. The returned list (but not the data in the list) must be freed after use.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gtk.Widget"/>
          </type>
        </return-value>
      </method>
      <method name="get_file"
              c:identifier="ianjuta_document_manager_get_file"
              throws="1">
        <doc xml:whitespace="preserve">Given the short filename, finds the file of the filename, if the
editor that has it loaded is found. If there is no editor that has
this file opened, returns NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the GFile for the given short filename</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">short filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="goto_file_line"
              c:identifier="ianjuta_document_manager_goto_file_line"
              throws="1">
        <doc xml:whitespace="preserve">Loads the given file if not loaded yet, set its editor as current editor
and moves cursor to the given line in the editor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the editor where the mark has been put. NULL if none.</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to go to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="lineno" transfer-ownership="none">
            <doc xml:whitespace="preserve">the line number in the file to go to.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="goto_file_line_mark"
              c:identifier="ianjuta_document_manager_goto_file_line_mark"
              throws="1">
        <doc xml:whitespace="preserve">Loads the given file if not loaded yet, set its editor as current editor
and moves cursor to the given line in the editor. Optionally also marks
the line with line marker if @mark is given TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the editor where the mark has been put. NULL if none.</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to go to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="lineno" transfer-ownership="none">
            <doc xml:whitespace="preserve">the line number in the file to go to.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the line should be marked with a marker.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_document"
              c:identifier="ianjuta_document_manager_remove_document"
              throws="1">
        <doc xml:whitespace="preserve">Closes and removes the given document. If @save_before is TRUE, also
saves the document before closing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the document was removed, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="document" transfer-ownership="none">
            <doc xml:whitespace="preserve">Document to close.</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </parameter>
          <parameter name="save_before" transfer-ownership="none">
            <doc xml:whitespace="preserve">If true, saves the document before closing.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_current_document"
              c:identifier="ianjuta_document_manager_set_current_document"
              throws="1">
        <doc xml:whitespace="preserve">Sets the given document as current document.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="document" transfer-ownership="none">
            <doc xml:whitespace="preserve">the document to set as current.</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <enumeration name="DocumentManagerError"
                 glib:type-name="IAnjutaDocumentManagerError"
                 glib:get-type="ianjuta_document_manager_error_get_type"
                 c:type="IAnjutaDocumentManagerError"
                 glib:error-domain="ianjuta-document-manager-quark">
      <member name="doesnt_exist"
              value="0"
              c:identifier="IANJUTA_DOCUMENT_MANAGER_DOESNT_EXIST"
              glib:nick="doesnt-exist"/>
      <function name="quark"
                c:identifier="ianjuta_document_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="DocumentManagerIface"
            c:type="IAnjutaDocumentManagerIface"
            glib:is-gtype-struct-for="DocumentManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="add_bookmark">
        <callback name="add_bookmark" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_buffer">
        <callback name="add_buffer" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">the IAnjutaEditor instance that has been added.</doc>
            <type name="Editor" c:type="IAnjutaEditor*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Name of the editor buffer.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="content" transfer-ownership="none">
              <doc xml:whitespace="preserve">Initial content of the buffer.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_document">
        <callback name="add_document" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="document" transfer-ownership="none">
              <doc xml:whitespace="preserve">the document to add</doc>
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_document_with_file">
        <callback name="find_document_with_file" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the document that corresponds to given file. NULL if there is no editor loaded with this file.</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">The file to find.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_current_document">
        <callback name="get_current_document" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the currently active document. NULL if none is there.</doc>
            <type name="Document" c:type="IAnjutaDocument*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_doc_widgets">
        <callback name="get_doc_widgets" throws="1">
          <return-value transfer-ownership="container">
            <doc xml:whitespace="preserve">a list of widgets for all open documents. The returned list (but not the data in the list) must be freed after use.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gtk.Widget"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_file">
        <callback name="get_file" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">the GFile for the given short filename</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:whitespace="preserve">short filename</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_file_line">
        <callback name="goto_file_line" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the editor where the mark has been put. NULL if none.</doc>
            <type name="Editor" c:type="IAnjutaEditor*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">file to go to.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="lineno" transfer-ownership="none">
              <doc xml:whitespace="preserve">the line number in the file to go to.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_file_line_mark">
        <callback name="goto_file_line_mark" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the editor where the mark has been put. NULL if none.</doc>
            <type name="Editor" c:type="IAnjutaEditor*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">file to go to.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="lineno" transfer-ownership="none">
              <doc xml:whitespace="preserve">the line number in the file to go to.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="mark" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE if the line should be marked with a marker.</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_document">
        <callback name="remove_document" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the document was removed, else FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="document" transfer-ownership="none">
              <doc xml:whitespace="preserve">Document to close.</doc>
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
            <parameter name="save_before" transfer-ownership="none">
              <doc xml:whitespace="preserve">If true, saves the document before closing.</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_current_document">
        <callback name="set_current_document" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="DocumentManager" c:type="IAnjutaDocumentManager*"/>
            </parameter>
            <parameter name="document" transfer-ownership="none">
              <doc xml:whitespace="preserve">the document to set as current.</doc>
              <type name="Document" c:type="IAnjutaDocument*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="EDITOR_INDENT_WIDTH_KEY"
              value="indent-width"
              c:type="IANJUTA_EDITOR_INDENT_WIDTH_KEY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="EDITOR_PREF_SCHEMA"
              value="editor"
              c:type="IANJUTA_EDITOR_PREF_SCHEMA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="EDITOR_TAB_WIDTH_KEY"
              value="tab-width"
              c:type="IANJUTA_EDITOR_TAB_WIDTH_KEY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="EDITOR_USE_TABS_KEY"
              value="use-tabs"
              c:type="IANJUTA_EDITOR_USE_TABS_KEY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <interface name="Editor"
               c:symbol-prefix="editor"
               c:type="IAnjutaEditor"
               glib:type-name="IAnjutaEditor"
               glib:get-type="ianjuta_editor_get_type"
               glib:type-struct="EditorIface">
      <virtual-method name="append" invoker="append" throws="1">
        <doc xml:whitespace="preserve">Appends @length characters from @text buffer at the end of editor
buffer. If @length is -1, the whole @text is used. @length is in bytes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text to append.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of @text to use.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="backspace">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="added" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="lines" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="char_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="ch" transfer-ownership="none">
            <type name="gchar" c:type="gchar"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="code_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="code" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cursor_moved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="erase" invoker="erase" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position_start" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="position_end" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="erase_all" invoker="erase_all" throws="1">
        <doc xml:whitespace="preserve">Empties the whole editor buffer. There will be zero characters.
After the erase operation, none of the active iters are guranteed
to be valid.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_column" invoker="get_column" throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_current_word"
                      invoker="get_current_word"
                      throws="1">
        <doc xml:whitespace="preserve">Obtains the word on which carat is currently on.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Current word.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_end_position"
                      invoker="get_end_position"
                      throws="1">
        <doc xml:whitespace="preserve">Gets the iter positioned at the end of the editor buffer. The
returned iter is the end-iter which does not point to any valid
character in the buffer (it is pointed one step beyond the last
valid character).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Cell iter set to the end of the editor (end-iter).</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_length" invoker="get_length" throws="1">
        <doc xml:whitespace="preserve">Get length of complete text in editor. This will be the total
number of bytes in the file or buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Text length.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_line_begin_position"
                      invoker="get_line_begin_position"
                      throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">fixme</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_line_end_position"
                      invoker="get_line_end_position"
                      throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">fixme</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_line_from_position"
                      invoker="get_line_from_position"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_lineno" invoker="get_lineno" throws="1">
        <doc xml:whitespace="preserve">Obtains current line number on which carat is.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Line number.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_offset" invoker="get_offset" throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_overwrite" invoker="get_overwrite" throws="1">
        <doc xml:whitespace="preserve">Obtains editor overwirte mode: TRUE = Override, FALSE = Insert.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">editor mode.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_position" invoker="get_position" throws="1">
        <doc xml:whitespace="preserve">Get current caret position.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Iterator that points to the current position.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_position_from_offset"
                      invoker="get_position_from_offset"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Creates and returns an iter for editor cells. The iter is
placed at the unicode character position where the given offset
@offset happens to fall. The returned iter is cell (character)
iter and not byte iter, so all iter operations
on it are character (not byte) iteration, including all position
and index references in the iter.

The iter must be unreferrenced by the caller when done.
The iter navigates (next/previous) in step of unicode
characters (one unicode character == one cell).

Retrun value: a newly created iter of IAnjutaEditorCell placed at the
given @offset position.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:whitespace="preserve">Character offset position where the iter will be set</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_start_position"
                      invoker="get_start_position"
                      throws="1">
        <doc xml:whitespace="preserve">Gets the iter positioned at the start of the editor buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Cell iter set to the begining of the editor.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_tabsize" invoker="get_tabsize" throws="1">
        <doc xml:whitespace="preserve">Returns the tabsize (in spaces) currently used by the editor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">tabsize in number of spaces</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_text" invoker="get_text" throws="1">
        <doc xml:whitespace="preserve">Gets text characters beginning from @begin (including char
pointed by @begin) and ending with @end (excluding character
pointed by @end). The characters returned are utf-8 encoded.
The iterators @begin and @end could be in either order. The returned
text, however, is in right order. If both @begin and @end points
to the same position, NULL is returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A buffer of utf-8 characters. The returned buffer must be freed when no longer required.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="begin" transfer-ownership="none">
            <doc xml:whitespace="preserve">Begining iterator</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End iterator</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_all" invoker="get_text_all" throws="1">
        <doc xml:whitespace="preserve">Gets all text characters in the editor.
The characters returned are utf-8 encoded.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A buffer of utf-8 characters containing all text from editor. The returned buffer must be freed when no longer required.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_use_spaces"
                      invoker="get_use_spaces"
                      throws="1">
        <doc xml:whitespace="preserve">Returns if the editor uses spaces for filling up tab characters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if yes, FALSE if no.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="glade_callback_add">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget_typename" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="signal_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="handler_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="swap" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="after" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="glade_member_add">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget_typename" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="widget_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="goto_end" invoker="goto_end" throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the end of editor and text view is scrolled to
bring it in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="goto_line" invoker="goto_line" throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the given @lineno line and text view is scrolled to
bring it in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lineno" transfer-ownership="none">
            <doc xml:whitespace="preserve">line number where carat will be moved.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="goto_position" invoker="goto_position" throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the given @position and text view is scrolled to
bring @position in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Character position where carat will be moved.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="goto_start" invoker="goto_start" throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the begining of editor and text view is scrolled to
bring it in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="insert" invoker="insert" throws="1">
        <doc xml:whitespace="preserve">Inserts @length characters from @text buffer at given @position of
editor buffer. If @length is -1, the whole @text is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Character position in editor where insert will take place.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text to append.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of @text to use.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="line_marks_gutter_clicked">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_auto_indent"
                      invoker="set_auto_indent"
                      throws="1">
        <doc xml:whitespace="preserve">Sets whether the editor should auto-indent itself. A plugin that does
custom auto-indent can set this to false and override the preferences
setting</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="auto_indent" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE to enable auto-indent, FALSE to disable</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_popup_menu"
                      invoker="set_popup_menu"
                      throws="1">
        <doc xml:whitespace="preserve">Set Editor popup menu. This is the menu shown in the editor when one
right-clicks on it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:whitespace="preserve">Popupmenu</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_tabsize" invoker="set_tabsize" throws="1">
        <doc xml:whitespace="preserve">Sets the tabsize of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tabsize" transfer-ownership="none">
            <doc xml:whitespace="preserve">Tabsize in spaces</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_use_spaces"
                      invoker="set_use_spaces"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="use_spaces" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="append" c:identifier="ianjuta_editor_append" throws="1">
        <doc xml:whitespace="preserve">Appends @length characters from @text buffer at the end of editor
buffer. If @length is -1, the whole @text is used. @length is in bytes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text to append.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of @text to use.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="erase" c:identifier="ianjuta_editor_erase" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position_start" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="position_end" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="erase_all"
              c:identifier="ianjuta_editor_erase_all"
              throws="1">
        <doc xml:whitespace="preserve">Empties the whole editor buffer. There will be zero characters.
After the erase operation, none of the active iters are guranteed
to be valid.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_column"
              c:identifier="ianjuta_editor_get_column"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_current_word"
              c:identifier="ianjuta_editor_get_current_word"
              throws="1">
        <doc xml:whitespace="preserve">Obtains the word on which carat is currently on.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Current word.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_end_position"
              c:identifier="ianjuta_editor_get_end_position"
              throws="1">
        <doc xml:whitespace="preserve">Gets the iter positioned at the end of the editor buffer. The
returned iter is the end-iter which does not point to any valid
character in the buffer (it is pointed one step beyond the last
valid character).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Cell iter set to the end of the editor (end-iter).</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="get_length"
              c:identifier="ianjuta_editor_get_length"
              throws="1">
        <doc xml:whitespace="preserve">Get length of complete text in editor. This will be the total
number of bytes in the file or buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Text length.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_line_begin_position"
              c:identifier="ianjuta_editor_get_line_begin_position"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">fixme</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_end_position"
              c:identifier="ianjuta_editor_get_line_end_position"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">fixme</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_from_position"
              c:identifier="ianjuta_editor_get_line_from_position"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_lineno"
              c:identifier="ianjuta_editor_get_lineno"
              throws="1">
        <doc xml:whitespace="preserve">Obtains current line number on which carat is.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Line number.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_offset"
              c:identifier="ianjuta_editor_get_offset"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_overwrite"
              c:identifier="ianjuta_editor_get_overwrite"
              throws="1">
        <doc xml:whitespace="preserve">Obtains editor overwirte mode: TRUE = Override, FALSE = Insert.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">editor mode.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_position"
              c:identifier="ianjuta_editor_get_position"
              throws="1">
        <doc xml:whitespace="preserve">Get current caret position.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Iterator that points to the current position.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="get_position_from_offset"
              c:identifier="ianjuta_editor_get_position_from_offset"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Creates and returns an iter for editor cells. The iter is
placed at the unicode character position where the given offset
@offset happens to fall. The returned iter is cell (character)
iter and not byte iter, so all iter operations
on it are character (not byte) iteration, including all position
and index references in the iter.

The iter must be unreferrenced by the caller when done.
The iter navigates (next/previous) in step of unicode
characters (one unicode character == one cell).

Retrun value: a newly created iter of IAnjutaEditorCell placed at the
given @offset position.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:whitespace="preserve">Character offset position where the iter will be set</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_start_position"
              c:identifier="ianjuta_editor_get_start_position"
              throws="1">
        <doc xml:whitespace="preserve">Gets the iter positioned at the start of the editor buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Cell iter set to the begining of the editor.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="get_tabsize"
              c:identifier="ianjuta_editor_get_tabsize"
              throws="1">
        <doc xml:whitespace="preserve">Returns the tabsize (in spaces) currently used by the editor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">tabsize in number of spaces</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_text"
              c:identifier="ianjuta_editor_get_text"
              throws="1">
        <doc xml:whitespace="preserve">Gets text characters beginning from @begin (including char
pointed by @begin) and ending with @end (excluding character
pointed by @end). The characters returned are utf-8 encoded.
The iterators @begin and @end could be in either order. The returned
text, however, is in right order. If both @begin and @end points
to the same position, NULL is returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A buffer of utf-8 characters. The returned buffer must be freed when no longer required.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="begin" transfer-ownership="none">
            <doc xml:whitespace="preserve">Begining iterator</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End iterator</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_all"
              c:identifier="ianjuta_editor_get_text_all"
              throws="1">
        <doc xml:whitespace="preserve">Gets all text characters in the editor.
The characters returned are utf-8 encoded.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A buffer of utf-8 characters containing all text from editor. The returned buffer must be freed when no longer required.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_use_spaces"
              c:identifier="ianjuta_editor_get_use_spaces"
              throws="1">
        <doc xml:whitespace="preserve">Returns if the editor uses spaces for filling up tab characters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if yes, FALSE if no.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="goto_end"
              c:identifier="ianjuta_editor_goto_end"
              throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the end of editor and text view is scrolled to
bring it in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="goto_line"
              c:identifier="ianjuta_editor_goto_line"
              throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the given @lineno line and text view is scrolled to
bring it in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="lineno" transfer-ownership="none">
            <doc xml:whitespace="preserve">line number where carat will be moved.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="goto_position"
              c:identifier="ianjuta_editor_goto_position"
              throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the given @position and text view is scrolled to
bring @position in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Character position where carat will be moved.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="goto_start"
              c:identifier="ianjuta_editor_goto_start"
              throws="1">
        <doc xml:whitespace="preserve">Carat is moved to the begining of editor and text view is scrolled to
bring it in viewable area of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="insert" c:identifier="ianjuta_editor_insert" throws="1">
        <doc xml:whitespace="preserve">Inserts @length characters from @text buffer at given @position of
editor buffer. If @length is -1, the whole @text is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Character position in editor where insert will take place.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Text to append.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of @text to use.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auto_indent"
              c:identifier="ianjuta_editor_set_auto_indent"
              throws="1">
        <doc xml:whitespace="preserve">Sets whether the editor should auto-indent itself. A plugin that does
custom auto-indent can set this to false and override the preferences
setting</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="auto_indent" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE to enable auto-indent, FALSE to disable</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_popup_menu"
              c:identifier="ianjuta_editor_set_popup_menu"
              throws="1">
        <doc xml:whitespace="preserve">Set Editor popup menu. This is the menu shown in the editor when one
right-clicks on it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:whitespace="preserve">Popupmenu</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tabsize"
              c:identifier="ianjuta_editor_set_tabsize"
              throws="1">
        <doc xml:whitespace="preserve">Sets the tabsize of the editor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tabsize" transfer-ownership="none">
            <doc xml:whitespace="preserve">Tabsize in spaces</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_spaces"
              c:identifier="ianjuta_editor_set_use_spaces"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="use_spaces" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="backspace" when="last">
        <doc xml:whitespace="preserve">The signal is emitted when the user presses backspace</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="changed" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when any text change happens in editor.
The changes begin at @position. @text is not garanteed to be NULL
terminated. Use @length to read the text. @lines represent the
number of line breaks in the added or removed text.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="added" transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if added, FALSE if deleted.</doc>
            <type name="Iterable"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of the text changed.</doc>
            <type name="gboolean"/>
          </parameter>
          <parameter name="lines" transfer-ownership="none">
            <doc xml:whitespace="preserve">Number of lines added or removed.</doc>
            <type name="gint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">The text added or removed.</doc>
            <type name="gint"/>
          </parameter>
          <parameter name="obj" transfer-ownership="none">
            <doc xml:whitespace="preserve">Self</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="char-added" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when any character is added inside the editor.
The newly added character is @ch which has been inserted at @position.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="ch" transfer-ownership="none">
            <doc xml:whitespace="preserve">The character that has been added.</doc>
            <type name="Iterable"/>
          </parameter>
          <parameter name="obj" transfer-ownership="none">
            <doc xml:whitespace="preserve">Self</doc>
            <type name="gchar"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="code-added" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when code is added inside the editor.
The newly added code is @code which has been inserted at @position.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <doc xml:whitespace="preserve">The code that has been added.</doc>
            <type name="Iterable"/>
          </parameter>
          <parameter name="obj" transfer-ownership="none">
            <doc xml:whitespace="preserve">Self</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cursor-moved" when="last">
        <doc xml:whitespace="preserve">The signal is a hint that the cursor was moved.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="glade-callback-add" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
          <parameter name="p5" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="glade-member-add" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when code for a widget must be generated.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="widget_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the widget that will become a member of the class.</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">Path for the .ui file that generated the signal.</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="obj" transfer-ownership="none">
            <doc xml:whitespace="preserve">Self</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="line-marks-gutter-clicked" when="last">
        <doc xml:whitespace="preserve">The signal is emitted when the user clicks on a marker</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="double_click" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether the line marks gutter was double clicked</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <interface name="EditorAssist"
               c:symbol-prefix="editor_assist"
               c:type="IAnjutaEditorAssist"
               glib:type-name="IAnjutaEditorAssist"
               glib:get-type="ianjuta_editor_assist_get_type"
               glib:type-struct="EditorAssistIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_assist_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="add" invoker="add" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cancelled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="invoke" invoker="invoke" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="proposals" invoker="proposals" throws="1">
        <doc xml:whitespace="preserve">Add the list of proposals for the current population. You can add
proposals async as long as the last call sets finished to TRUE. That
is usually called by the IAnjutaProvider after it was triggered by
ianjuta_provider_populate()</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:whitespace="preserve">a IAnjutaProvider</doc>
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
          <parameter name="proposals" transfer-ownership="none">
            <doc xml:whitespace="preserve">a list of IAnjutaProposals</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="EditorAssistProposal"/>
            </type>
          </parameter>
          <parameter name="pre_word" transfer-ownership="none">
            <doc xml:whitespace="preserve">the word before the cursor</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="finished" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether is was the last call in an async operation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove" invoker="remove" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="ianjuta_editor_assist_add" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="invoke"
              c:identifier="ianjuta_editor_assist_invoke"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="proposals"
              c:identifier="ianjuta_editor_assist_proposals"
              throws="1">
        <doc xml:whitespace="preserve">Add the list of proposals for the current population. You can add
proposals async as long as the last call sets finished to TRUE. That
is usually called by the IAnjutaProvider after it was triggered by
ianjuta_provider_populate()</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:whitespace="preserve">a IAnjutaProvider</doc>
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
          <parameter name="proposals" transfer-ownership="none">
            <doc xml:whitespace="preserve">a list of IAnjutaProposals</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="EditorAssistProposal"/>
            </type>
          </parameter>
          <parameter name="pre_word" transfer-ownership="none">
            <doc xml:whitespace="preserve">the word before the cursor</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="finished" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether is was the last call in an async operation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove"
              c:identifier="ianjuta_editor_assist_remove"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="Provider" c:type="IAnjutaProvider*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="cancelled" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when the autocompletion is cancelled due to various
reasons. The provider should avoid to call ianjuta_editor_assist_proposals() after
this signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="EditorAssistIface"
            c:type="IAnjutaEditorAssistIface"
            glib:is-gtype-struct-for="EditorAssist">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="cancelled">
        <callback name="cancelled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorAssist" c:type="IAnjutaEditorAssist*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add">
        <callback name="add" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorAssist" c:type="IAnjutaEditorAssist*"/>
            </parameter>
            <parameter name="provider" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="invoke">
        <callback name="invoke" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorAssist" c:type="IAnjutaEditorAssist*"/>
            </parameter>
            <parameter name="provider" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="proposals">
        <callback name="proposals" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorAssist" c:type="IAnjutaEditorAssist*"/>
            </parameter>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:whitespace="preserve">a IAnjutaProvider</doc>
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
            <parameter name="proposals" transfer-ownership="none">
              <doc xml:whitespace="preserve">a list of IAnjutaProposals</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="EditorAssistProposal"/>
              </type>
            </parameter>
            <parameter name="pre_word" transfer-ownership="none">
              <doc xml:whitespace="preserve">the word before the cursor</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="finished" transfer-ownership="none">
              <doc xml:whitespace="preserve">whether is was the last call in an async operation</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <callback name="remove" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorAssist" c:type="IAnjutaEditorAssist*"/>
            </parameter>
            <parameter name="provider" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="EditorAssistProposal" c:type="IAnjutaEditorAssistProposal">
      <field name="label" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="markup" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="info" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="text" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="icon" writable="1">
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </field>
      <field name="data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <enumeration name="EditorAttribute"
                 glib:type-name="IAnjutaEditorAttribute"
                 glib:get-type="ianjuta_editor_attribute_get_type"
                 c:type="IAnjutaEditorAttribute">
      <doc xml:whitespace="preserve">This enumeration is used to specify the type of text. Note that not all
editors implement this.</doc>
      <member name="text"
              value="0"
              c:identifier="IANJUTA_EDITOR_TEXT"
              glib:nick="text"/>
      <member name="keyword"
              value="1"
              c:identifier="IANJUTA_EDITOR_KEYWORD"
              glib:nick="keyword"/>
      <member name="comment"
              value="2"
              c:identifier="IANJUTA_EDITOR_COMMENT"
              glib:nick="comment"/>
      <member name="string"
              value="3"
              c:identifier="IANJUTA_EDITOR_STRING"
              glib:nick="string"/>
    </enumeration>
    <interface name="EditorCell"
               c:symbol-prefix="editor_cell"
               c:type="IAnjutaEditorCell"
               glib:type-name="IAnjutaEditorCell"
               glib:get-type="ianjuta_editor_cell_get_type"
               glib:type-struct="EditorCellIface">
      <function name="error_quark"
                c:identifier="ianjuta_editor_cell_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_attribute" invoker="get_attribute" throws="1">
        <return-value transfer-ownership="none">
          <type name="EditorAttribute" c:type="IAnjutaEditorAttribute"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_char" invoker="get_char" throws="1">
        <doc xml:whitespace="preserve">Returns the byte of the unicode character in this cell at given
index @char_index. @char_index can vary from 0 to length of the
unicode string minus 1. Out of range index is not allowed
(asserted) and return is undefined.

Since there is dynamic allocation of unicode character string
involved in ianjuta_editor_cell_get_character(), this function
is mainly useful for fast iteration (such as copying data).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a byte character.</doc>
          <type name="gchar" c:type="gchar"/>
        </return-value>
        <parameters>
          <parameter name="char_index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_character" invoker="get_character" throws="1">
        <doc xml:whitespace="preserve">Returns the unicode character in this cell. A NULL terminated
string is returned that is the multibyte unicode character.
NULL is returned if the cell does not have any character.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly created string representing the cell's unicode character.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_length" invoker="get_length" throws="1">
        <doc xml:whitespace="preserve">Gets the length of the cell in bytes. That is, length of the
unicode character.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Length of the unicode character.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <method name="get_attribute"
              c:identifier="ianjuta_editor_cell_get_attribute"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="EditorAttribute" c:type="IAnjutaEditorAttribute"/>
        </return-value>
      </method>
      <method name="get_char"
              c:identifier="ianjuta_editor_cell_get_char"
              throws="1">
        <doc xml:whitespace="preserve">Returns the byte of the unicode character in this cell at given
index @char_index. @char_index can vary from 0 to length of the
unicode string minus 1. Out of range index is not allowed
(asserted) and return is undefined.

Since there is dynamic allocation of unicode character string
involved in ianjuta_editor_cell_get_character(), this function
is mainly useful for fast iteration (such as copying data).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a byte character.</doc>
          <type name="gchar" c:type="gchar"/>
        </return-value>
        <parameters>
          <parameter name="char_index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_character"
              c:identifier="ianjuta_editor_cell_get_character"
              throws="1">
        <doc xml:whitespace="preserve">Returns the unicode character in this cell. A NULL terminated
string is returned that is the multibyte unicode character.
NULL is returned if the cell does not have any character.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly created string representing the cell's unicode character.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_length"
              c:identifier="ianjuta_editor_cell_get_length"
              throws="1">
        <doc xml:whitespace="preserve">Gets the length of the cell in bytes. That is, length of the
unicode character.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Length of the unicode character.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorCellIface"
            c:type="IAnjutaEditorCellIface"
            glib:is-gtype-struct-for="EditorCell">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_attribute">
        <callback name="get_attribute" throws="1">
          <return-value transfer-ownership="none">
            <type name="EditorAttribute" c:type="IAnjutaEditorAttribute"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_char">
        <callback name="get_char" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">a byte character.</doc>
            <type name="gchar" c:type="gchar"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
            <parameter name="char_index" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_character">
        <callback name="get_character" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a newly created string representing the cell's unicode character.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_length">
        <callback name="get_length" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of the unicode character.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorCellStyle"
               c:symbol-prefix="editor_cell_style"
               c:type="IAnjutaEditorCellStyle"
               glib:type-name="IAnjutaEditorCellStyle"
               glib:get-type="ianjuta_editor_cell_style_get_type"
               glib:type-struct="EditorCellStyleIface">
      <prerequisite name="EditorCell"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_cell_style_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_background_color"
                      invoker="get_background_color"
                      throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_color" invoker="get_color" throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_font_description"
                      invoker="get_font_description"
                      throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <method name="get_background_color"
              c:identifier="ianjuta_editor_cell_style_get_background_color"
              throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_color"
              c:identifier="ianjuta_editor_cell_style_get_color"
              throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_font_description"
              c:identifier="ianjuta_editor_cell_style_get_font_description"
              throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorCellStyleIface"
            c:type="IAnjutaEditorCellStyleIface"
            glib:is-gtype-struct-for="EditorCellStyle">
      <field name="g_iface">
        <type name="EditorCellIface" c:type="IAnjutaEditorCellIface"/>
      </field>
      <field name="get_background_color">
        <callback name="get_background_color" throws="1">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCellStyle" c:type="IAnjutaEditorCellStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_color">
        <callback name="get_color" throws="1">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCellStyle" c:type="IAnjutaEditorCellStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_font_description">
        <callback name="get_font_description" throws="1">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorCellStyle" c:type="IAnjutaEditorCellStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorComment"
               c:symbol-prefix="editor_comment"
               c:type="IAnjutaEditorComment"
               glib:type-name="IAnjutaEditorComment"
               glib:get-type="ianjuta_editor_comment_get_type"
               glib:type-struct="EditorCommentIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_comment_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="block" invoker="block" throws="1">
        <doc xml:whitespace="preserve">Comment/Uncomment out selected block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="box" invoker="box" throws="1">
        <doc xml:whitespace="preserve">Comment/Uncomment out selected block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="stream" invoker="stream" throws="1">
        <doc xml:whitespace="preserve">Comment/Uncomment out selected block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="block"
              c:identifier="ianjuta_editor_comment_block"
              throws="1">
        <doc xml:whitespace="preserve">Comment/Uncomment out selected block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="box" c:identifier="ianjuta_editor_comment_box" throws="1">
        <doc xml:whitespace="preserve">Comment/Uncomment out selected block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="stream"
              c:identifier="ianjuta_editor_comment_stream"
              throws="1">
        <doc xml:whitespace="preserve">Comment/Uncomment out selected block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorCommentIface"
            c:type="IAnjutaEditorCommentIface"
            glib:is-gtype-struct-for="EditorComment">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="block">
        <callback name="block" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorComment" c:type="IAnjutaEditorComment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="box">
        <callback name="box" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorComment" c:type="IAnjutaEditorComment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stream">
        <callback name="stream" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorComment" c:type="IAnjutaEditorComment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorConvert"
               c:symbol-prefix="editor_convert"
               c:type="IAnjutaEditorConvert"
               glib:type-name="IAnjutaEditorConvert"
               glib:get-type="ianjuta_editor_convert_get_type"
               glib:type-struct="EditorConvertIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_convert_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="to_lower" invoker="to_lower" throws="1">
        <doc xml:whitespace="preserve">change characters from start position to end position to lowercase</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">End position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="to_upper" invoker="to_upper" throws="1">
        <doc xml:whitespace="preserve">change characters from start position to end position to uppercase.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">End position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="to_lower"
              c:identifier="ianjuta_editor_convert_to_lower"
              throws="1">
        <doc xml:whitespace="preserve">change characters from start position to end position to lowercase</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">End position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_upper"
              c:identifier="ianjuta_editor_convert_to_upper"
              throws="1">
        <doc xml:whitespace="preserve">change characters from start position to end position to uppercase.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end_position" transfer-ownership="none">
            <doc xml:whitespace="preserve">End position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="EditorConvertIface"
            c:type="IAnjutaEditorConvertIface"
            glib:is-gtype-struct-for="EditorConvert">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="to_lower">
        <callback name="to_lower" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorConvert" c:type="IAnjutaEditorConvert*"/>
            </parameter>
            <parameter name="start_position" transfer-ownership="none">
              <doc xml:whitespace="preserve">Start position.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="end_position" transfer-ownership="none">
              <doc xml:whitespace="preserve">End position.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="to_upper">
        <callback name="to_upper" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorConvert" c:type="IAnjutaEditorConvert*"/>
            </parameter>
            <parameter name="start_position" transfer-ownership="none">
              <doc xml:whitespace="preserve">Start position.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="end_position" transfer-ownership="none">
              <doc xml:whitespace="preserve">End position.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="EditorError"
                 glib:type-name="IAnjutaEditorError"
                 glib:get-type="ianjuta_editor_error_get_type"
                 c:type="IAnjutaEditorError"
                 glib:error-domain="ianjuta-editor-quark">
      <member name="doesnt_exist"
              value="0"
              c:identifier="IANJUTA_EDITOR_DOESNT_EXIST"
              glib:nick="doesnt-exist"/>
      <function name="quark" c:identifier="ianjuta_editor_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <interface name="EditorFactory"
               c:symbol-prefix="editor_factory"
               c:type="IAnjutaEditorFactory"
               glib:type-name="IAnjutaEditorFactory"
               glib:get-type="ianjuta_editor_factory_get_type"
               glib:type-struct="EditorFactoryIface">
      <function name="error_quark"
                c:identifier="ianjuta_editor_factory_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="new_editor"
                      invoker="new_editor"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get a new GtkWidget* which implements IAnjutaEditor</doc>
        <return-value>
          <doc xml:whitespace="preserve">An object implementing IAnjutaEditor</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to open</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">filename to open</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="new_editor"
              c:identifier="ianjuta_editor_factory_new_editor"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get a new GtkWidget* which implements IAnjutaEditor</doc>
        <return-value>
          <doc xml:whitespace="preserve">An object implementing IAnjutaEditor</doc>
          <type name="Editor" c:type="IAnjutaEditor*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to open</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">filename to open</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="EditorFactoryIface"
            c:type="IAnjutaEditorFactoryIface"
            glib:is-gtype-struct-for="EditorFactory">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="new_editor" introspectable="0">
        <callback name="new_editor" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">An object implementing IAnjutaEditor</doc>
            <type name="Editor" c:type="IAnjutaEditor*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorFactory" c:type="IAnjutaEditorFactory*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">file to open</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:whitespace="preserve">filename to open</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorFolds"
               c:symbol-prefix="editor_folds"
               c:type="IAnjutaEditorFolds"
               glib:type-name="IAnjutaEditorFolds"
               glib:get-type="ianjuta_editor_folds_get_type"
               glib:type-struct="EditorFoldsIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_folds_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="close_all" invoker="close_all" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="open_all" invoker="open_all" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="toggle_current"
                      invoker="toggle_current"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="close_all"
              c:identifier="ianjuta_editor_folds_close_all"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="open_all"
              c:identifier="ianjuta_editor_folds_open_all"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="toggle_current"
              c:identifier="ianjuta_editor_folds_toggle_current"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorFoldsIface"
            c:type="IAnjutaEditorFoldsIface"
            glib:is-gtype-struct-for="EditorFolds">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="close_all">
        <callback name="close_all" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorFolds" c:type="IAnjutaEditorFolds*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="open_all">
        <callback name="open_all" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorFolds" c:type="IAnjutaEditorFolds*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="toggle_current">
        <callback name="toggle_current" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorFolds" c:type="IAnjutaEditorFolds*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorGladeSignal"
               c:symbol-prefix="editor_glade_signal"
               c:type="IAnjutaEditorGladeSignal"
               glib:type-name="IAnjutaEditorGladeSignal"
               glib:get-type="ianjuta_editor_glade_signal_get_type"
               glib:type-struct="EditorGladeSignalIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_glade_signal_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="drop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iterator" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="signal_data" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drop_possible">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iterator" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <glib:signal name="drop" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Iterable"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drop-possible" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Iterable"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="EditorGladeSignalIface"
            c:type="IAnjutaEditorGladeSignalIface"
            glib:is-gtype-struct-for="EditorGladeSignal">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="drop">
        <callback name="drop">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorGladeSignal"
                    c:type="IAnjutaEditorGladeSignal*"/>
            </parameter>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="signal_data" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drop_possible">
        <callback name="drop_possible">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorGladeSignal"
                    c:type="IAnjutaEditorGladeSignal*"/>
            </parameter>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorGoto"
               c:symbol-prefix="editor_goto"
               c:type="IAnjutaEditorGoto"
               glib:type-name="IAnjutaEditorGoto"
               glib:get-type="ianjuta_editor_goto_get_type"
               glib:type-struct="EditorGotoIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_goto_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="end_block" invoker="end_block" throws="1">
        <doc xml:whitespace="preserve">Moves cursor to the end of the current block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="matching_brace"
                      invoker="matching_brace"
                      throws="1">
        <doc xml:whitespace="preserve">Moves cursor to matching brace</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="start_block" invoker="start_block" throws="1">
        <doc xml:whitespace="preserve">Moves cursor to the start of the current block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="end_block"
              c:identifier="ianjuta_editor_goto_end_block"
              throws="1">
        <doc xml:whitespace="preserve">Moves cursor to the end of the current block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="matching_brace"
              c:identifier="ianjuta_editor_goto_matching_brace"
              throws="1">
        <doc xml:whitespace="preserve">Moves cursor to matching brace</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="start_block"
              c:identifier="ianjuta_editor_goto_start_block"
              throws="1">
        <doc xml:whitespace="preserve">Moves cursor to the start of the current block</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorGotoIface"
            c:type="IAnjutaEditorGotoIface"
            glib:is-gtype-struct-for="EditorGoto">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="end_block">
        <callback name="end_block" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorGoto" c:type="IAnjutaEditorGoto*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="matching_brace">
        <callback name="matching_brace" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorGoto" c:type="IAnjutaEditorGoto*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start_block">
        <callback name="start_block" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorGoto" c:type="IAnjutaEditorGoto*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorHover"
               c:symbol-prefix="editor_hover"
               c:type="IAnjutaEditorHover"
               glib:type-name="IAnjutaEditorHover"
               glib:get-type="ianjuta_editor_hover_get_type"
               glib:type-struct="EditorHoverIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_hover_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="display" invoker="display" throws="1">
        <doc xml:whitespace="preserve">Show @info as tooltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:whitespace="preserve">String to display</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hover_leave">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hover_over">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="display"
              c:identifier="ianjuta_editor_hover_display"
              throws="1">
        <doc xml:whitespace="preserve">Show @info as tooltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:whitespace="preserve">String to display</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="hover-leave" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Iterable"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="hover-over" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Iterable"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="EditorHoverIface"
            c:type="IAnjutaEditorHoverIface"
            glib:is-gtype-struct-for="EditorHover">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="hover_leave">
        <callback name="hover_leave">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorHover" c:type="IAnjutaEditorHover*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hover_over">
        <callback name="hover_over">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorHover" c:type="IAnjutaEditorHover*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="display">
        <callback name="display" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorHover" c:type="IAnjutaEditorHover*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <doc xml:whitespace="preserve">String to display</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="EditorIface"
            c:type="IAnjutaEditorIface"
            glib:is-gtype-struct-for="Editor">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="backspace">
        <callback name="backspace">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="added" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="lines" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="char_added">
        <callback name="char_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="ch" transfer-ownership="none">
              <type name="gchar" c:type="gchar"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="code_added">
        <callback name="code_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="code" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cursor_moved">
        <callback name="cursor_moved">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="glade_callback_add">
        <callback name="glade_callback_add">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="widget_typename" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="signal_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="handler_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="object" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="swap" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="after" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="glade_member_add">
        <callback name="glade_member_add">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="widget_typename" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="widget_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="line_marks_gutter_clicked">
        <callback name="line_marks_gutter_clicked">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="append">
        <callback name="append" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:whitespace="preserve">Text to append.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <doc xml:whitespace="preserve">Length of @text to use.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="erase">
        <callback name="erase" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position_start" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="position_end" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="erase_all">
        <callback name="erase_all" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_column">
        <callback name="get_column" throws="1">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_current_word">
        <callback name="get_current_word" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">Current word.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_end_position">
        <callback name="get_end_position" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Cell iter set to the end of the editor (end-iter).</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_length">
        <callback name="get_length" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Text length.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_line_begin_position">
        <callback name="get_line_begin_position" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_line_end_position">
        <callback name="get_line_end_position" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_line_from_position">
        <callback name="get_line_from_position" throws="1">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_lineno">
        <callback name="get_lineno" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Line number.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_offset">
        <callback name="get_offset" throws="1">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_overwrite">
        <callback name="get_overwrite" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">editor mode.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_position">
        <callback name="get_position" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">Iterator that points to the current position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_position_from_offset" introspectable="0">
        <callback name="get_position_from_offset"
                  introspectable="0"
                  throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="offset" transfer-ownership="none">
              <doc xml:whitespace="preserve">Character offset position where the iter will be set</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_start_position">
        <callback name="get_start_position" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Cell iter set to the begining of the editor.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_tabsize">
        <callback name="get_tabsize" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">tabsize in number of spaces</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text">
        <callback name="get_text" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A buffer of utf-8 characters. The returned buffer must be freed when no longer required.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="begin" transfer-ownership="none">
              <doc xml:whitespace="preserve">Begining iterator</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">End iterator</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_all">
        <callback name="get_text_all" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A buffer of utf-8 characters containing all text from editor. The returned buffer must be freed when no longer required.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_use_spaces">
        <callback name="get_use_spaces" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if yes, FALSE if no.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_end">
        <callback name="goto_end" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_line">
        <callback name="goto_line" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="lineno" transfer-ownership="none">
              <doc xml:whitespace="preserve">line number where carat will be moved.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_position">
        <callback name="goto_position" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <doc xml:whitespace="preserve">Character position where carat will be moved.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_start">
        <callback name="goto_start" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert">
        <callback name="insert" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <doc xml:whitespace="preserve">Character position in editor where insert will take place.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:whitespace="preserve">Text to append.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <doc xml:whitespace="preserve">Length of @text to use.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_auto_indent">
        <callback name="set_auto_indent" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="auto_indent" transfer-ownership="none">
              <doc xml:whitespace="preserve">TRUE to enable auto-indent, FALSE to disable</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_popup_menu">
        <callback name="set_popup_menu" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <doc xml:whitespace="preserve">Popupmenu</doc>
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_tabsize">
        <callback name="set_tabsize" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="tabsize" transfer-ownership="none">
              <doc xml:whitespace="preserve">Tabsize in spaces</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_use_spaces">
        <callback name="set_use_spaces" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Editor" c:type="IAnjutaEditor*"/>
            </parameter>
            <parameter name="use_spaces" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorLanguage"
               c:symbol-prefix="editor_language"
               c:type="IAnjutaEditorLanguage"
               glib:type-name="IAnjutaEditorLanguage"
               glib:get-type="ianjuta_editor_language_get_type"
               glib:type-struct="EditorLanguageIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_language_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_language" invoker="get_language" throws="1">
        <doc xml:whitespace="preserve">Return the name of the currently used language</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_language_name"
                      invoker="get_language_name"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_supported_languages"
                      invoker="get_supported_languages"
                      throws="1">
        <doc xml:whitespace="preserve">Return a list of languages supported by the editor
Note: These list contains the names in the form
the editor implementation knows them</doc>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="const GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="language_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_language" invoker="set_language" throws="1">
        <doc xml:whitespace="preserve">Force the editor to use a given language</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <doc xml:whitespace="preserve">Language</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_language"
              c:identifier="ianjuta_editor_language_get_language"
              throws="1">
        <doc xml:whitespace="preserve">Return the name of the currently used language</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="get_language_name"
              c:identifier="ianjuta_editor_language_get_language_name"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_supported_languages"
              c:identifier="ianjuta_editor_language_get_supported_languages"
              throws="1">
        <doc xml:whitespace="preserve">Return a list of languages supported by the editor
Note: These list contains the names in the form
the editor implementation knows them</doc>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="const GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="set_language"
              c:identifier="ianjuta_editor_language_set_language"
              throws="1">
        <doc xml:whitespace="preserve">Force the editor to use a given language</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <doc xml:whitespace="preserve">Language</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="language-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="EditorLanguageIface"
            c:type="IAnjutaEditorLanguageIface"
            glib:is-gtype-struct-for="EditorLanguage">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="language_changed">
        <callback name="language_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
            <parameter name="language" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_language">
        <callback name="get_language" throws="1">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_language_name">
        <callback name="get_language_name" throws="1">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
            <parameter name="language" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_supported_languages">
        <callback name="get_supported_languages" throws="1">
          <return-value transfer-ownership="none">
            <type name="GLib.List" c:type="const GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_language">
        <callback name="set_language" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
            <parameter name="language" transfer-ownership="none">
              <doc xml:whitespace="preserve">Language</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorLineMode"
               c:symbol-prefix="editor_line_mode"
               c:type="IAnjutaEditorLineMode"
               glib:type-name="IAnjutaEditorLineMode"
               glib:get-type="ianjuta_editor_line_mode_get_type"
               glib:type-struct="EditorLineModeIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_line_mode_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="convert" invoker="convert" throws="1">
        <doc xml:whitespace="preserve">Set the line ending mode to the given @mode and convert all line end
characters in the buffer to @mode line end characters.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Line mode to convert.</doc>
            <type name="EditorLineModeType"
                  c:type="IAnjutaEditorLineModeType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="fix" invoker="fix" throws="1">
        <doc xml:whitespace="preserve">Convert EOL characters to majority of line mode. This is helpful
when the buffer contains mixed line modes and we want to fix it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get" invoker="get" throws="1">
        <doc xml:whitespace="preserve">Get current line ending mode. It is auto-detected from the
buffer contents.</doc>
        <return-value transfer-ownership="none">
          <type name="EditorLineModeType" c:type="IAnjutaEditorLineModeType"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set" invoker="set" throws="1">
        <doc xml:whitespace="preserve">Set the line ending mode to the given @mode. Existing line end
characters in the buffer are not touched. Only the newly added
texts will have @mode line end characters.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Line mode to set.</doc>
            <type name="EditorLineModeType"
                  c:type="IAnjutaEditorLineModeType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="convert"
              c:identifier="ianjuta_editor_line_mode_convert"
              throws="1">
        <doc xml:whitespace="preserve">Set the line ending mode to the given @mode and convert all line end
characters in the buffer to @mode line end characters.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Line mode to convert.</doc>
            <type name="EditorLineModeType"
                  c:type="IAnjutaEditorLineModeType"/>
          </parameter>
        </parameters>
      </method>
      <method name="fix"
              c:identifier="ianjuta_editor_line_mode_fix"
              throws="1">
        <doc xml:whitespace="preserve">Convert EOL characters to majority of line mode. This is helpful
when the buffer contains mixed line modes and we want to fix it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get"
              c:identifier="ianjuta_editor_line_mode_get"
              throws="1">
        <doc xml:whitespace="preserve">Get current line ending mode. It is auto-detected from the
buffer contents.</doc>
        <return-value transfer-ownership="none">
          <type name="EditorLineModeType" c:type="IAnjutaEditorLineModeType"/>
        </return-value>
      </method>
      <method name="set"
              c:identifier="ianjuta_editor_line_mode_set"
              throws="1">
        <doc xml:whitespace="preserve">Set the line ending mode to the given @mode. Existing line end
characters in the buffer are not touched. Only the newly added
texts will have @mode line end characters.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Line mode to set.</doc>
            <type name="EditorLineModeType"
                  c:type="IAnjutaEditorLineModeType"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="EditorLineModeIface"
            c:type="IAnjutaEditorLineModeIface"
            glib:is-gtype-struct-for="EditorLineMode">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="convert">
        <callback name="convert" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLineMode" c:type="IAnjutaEditorLineMode*"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <doc xml:whitespace="preserve">Line mode to convert.</doc>
              <type name="EditorLineModeType"
                    c:type="IAnjutaEditorLineModeType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="fix">
        <callback name="fix" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLineMode" c:type="IAnjutaEditorLineMode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get">
        <callback name="get" throws="1">
          <return-value transfer-ownership="none">
            <type name="EditorLineModeType"
                  c:type="IAnjutaEditorLineModeType"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLineMode" c:type="IAnjutaEditorLineMode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set">
        <callback name="set" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorLineMode" c:type="IAnjutaEditorLineMode*"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <doc xml:whitespace="preserve">Line mode to set.</doc>
              <type name="EditorLineModeType"
                    c:type="IAnjutaEditorLineModeType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="EditorLineModeType"
                 glib:type-name="IAnjutaEditorLineModeType"
                 glib:get-type="ianjuta_editor_line_mode_type_get_type"
                 c:type="IAnjutaEditorLineModeType">
      <doc xml:whitespace="preserve">This enumeration is used to specify the type of text. Note that not all
editors implement this.</doc>
      <member name="lf"
              value="0"
              c:identifier="IANJUTA_EDITOR_LINE_MODE_LF"
              glib:nick="lf"/>
      <member name="cr"
              value="1"
              c:identifier="IANJUTA_EDITOR_LINE_MODE_CR"
              glib:nick="cr"/>
      <member name="crlf"
              value="2"
              c:identifier="IANJUTA_EDITOR_LINE_MODE_CRLF"
              glib:nick="crlf"/>
    </enumeration>
    <interface name="EditorSearch"
               c:symbol-prefix="editor_search"
               c:type="IAnjutaEditorSearch"
               glib:type-name="IAnjutaEditorSearch"
               glib:get-type="ianjuta_editor_search_get_type"
               glib:type-struct="EditorSearchIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_search_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="backward" invoker="backward" throws="1">
        <doc xml:whitespace="preserve">Search backward from end to start</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="search" transfer-ownership="none">
            <doc xml:whitespace="preserve">String to search for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to search from</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to stop searching</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="result_start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the start of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
          <parameter name="result_end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the end of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="forward" invoker="forward" throws="1">
        <doc xml:whitespace="preserve">Search forward from start to end</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="search" transfer-ownership="none">
            <doc xml:whitespace="preserve">String to search for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to search from</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to stop searching</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="result_start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the start of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
          <parameter name="result_end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the end of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="backward"
              c:identifier="ianjuta_editor_search_backward"
              throws="1">
        <doc xml:whitespace="preserve">Search backward from end to start</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="search" transfer-ownership="none">
            <doc xml:whitespace="preserve">String to search for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to search from</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to stop searching</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="result_start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the start of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
          <parameter name="result_end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the end of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward"
              c:identifier="ianjuta_editor_search_forward"
              throws="1">
        <doc xml:whitespace="preserve">Search forward from start to end</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="search" transfer-ownership="none">
            <doc xml:whitespace="preserve">String to search for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to search from</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to stop searching</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
          </parameter>
          <parameter name="result_start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the start of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
          <parameter name="result_end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Will be set to the end of the search_result (or NULL)</doc>
            <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="EditorSearchIface"
            c:type="IAnjutaEditorSearchIface"
            glib:is-gtype-struct-for="EditorSearch">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="backward">
        <callback name="backward" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSearch" c:type="IAnjutaEditorSearch*"/>
            </parameter>
            <parameter name="search" transfer-ownership="none">
              <doc xml:whitespace="preserve">String to search for</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="case_sensitive" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">Where to search from</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">Where to stop searching</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
            <parameter name="result_start"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Will be set to the start of the search_result (or NULL)</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
            </parameter>
            <parameter name="result_end"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Will be set to the end of the search_result (or NULL)</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="forward">
        <callback name="forward" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSearch" c:type="IAnjutaEditorSearch*"/>
            </parameter>
            <parameter name="search" transfer-ownership="none">
              <doc xml:whitespace="preserve">String to search for</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="case_sensitive" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">Where to search from</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">Where to stop searching</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell*"/>
            </parameter>
            <parameter name="result_start"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Will be set to the start of the search_result (or NULL)</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
            </parameter>
            <parameter name="result_end"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Will be set to the end of the search_result (or NULL)</doc>
              <type name="EditorCell" c:type="IAnjutaEditorCell**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorSelection"
               c:symbol-prefix="editor_selection"
               c:type="IAnjutaEditorSelection"
               glib:type-name="IAnjutaEditorSelection"
               glib:get-type="ianjuta_editor_selection_get_type"
               glib:type-struct="EditorSelectionIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_selection_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get" invoker="get" throws="1">
        <doc xml:whitespace="preserve">Gets curerntly selected text in editor.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly allocated buffer of currently selected characters. NULL if there is no selection. The returned buffer must be freed after use.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_end"
                      invoker="get_end"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get end position of selection. If there is no selection, returns
NULL.</doc>
        <return-value>
          <doc xml:whitespace="preserve">End of selection or NULL if there is no selection.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_start"
                      invoker="get_start"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Gets start position of selection text.

Return: Start of selection or NULL if there is no selection.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="has_selection" invoker="has_selection" throws="1">
        <doc xml:whitespace="preserve">Returns TRUE if editor has any text selected. The selection
positions can be retrieved with ianjuta_editor_selection_get_start()
and ianjuta_editor_selection_get_end().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is text selected else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="replace" invoker="replace" throws="1">
        <doc xml:whitespace="preserve">Replaces currently selected text with the @text. Only @length amount
of characters are used from @text buffer to replace.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Replacement text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of the text to used in @text.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="select_all" invoker="select_all" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="select_block" invoker="select_block" throws="1">
        <doc xml:whitespace="preserve">Selects current block of code. The definition of block of code
depends on highlight mode used (programming language). Some
highlight mode does not have block concept, in that case this
method does not do anything.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="select_function"
                      invoker="select_function"
                      throws="1">
        <doc xml:whitespace="preserve">Select current function block. The definition of function block
depends on highlight mode used (programming language). Some
highlight mode does not have function concept, in that case this
method does not do anything.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set" invoker="set" throws="1">
        <doc xml:whitespace="preserve">Select characters between start and end. Start and end don't have to
be ordered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Begin of selection</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End of selection</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="scroll" transfer-ownership="none">
            <doc xml:whitespace="preserve">Scroll selection onscreen</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get"
              c:identifier="ianjuta_editor_selection_get"
              throws="1">
        <doc xml:whitespace="preserve">Gets curerntly selected text in editor.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly allocated buffer of currently selected characters. NULL if there is no selection. The returned buffer must be freed after use.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_end"
              c:identifier="ianjuta_editor_selection_get_end"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get end position of selection. If there is no selection, returns
NULL.</doc>
        <return-value>
          <doc xml:whitespace="preserve">End of selection or NULL if there is no selection.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="get_start"
              c:identifier="ianjuta_editor_selection_get_start"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Gets start position of selection text.

Return: Start of selection or NULL if there is no selection.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="has_selection"
              c:identifier="ianjuta_editor_selection_has_selection"
              throws="1">
        <doc xml:whitespace="preserve">Returns TRUE if editor has any text selected. The selection
positions can be retrieved with ianjuta_editor_selection_get_start()
and ianjuta_editor_selection_get_end().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is text selected else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="replace"
              c:identifier="ianjuta_editor_selection_replace"
              throws="1">
        <doc xml:whitespace="preserve">Replaces currently selected text with the @text. Only @length amount
of characters are used from @text buffer to replace.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">Replacement text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:whitespace="preserve">Length of the text to used in @text.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_all"
              c:identifier="ianjuta_editor_selection_select_all"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="select_block"
              c:identifier="ianjuta_editor_selection_select_block"
              throws="1">
        <doc xml:whitespace="preserve">Selects current block of code. The definition of block of code
depends on highlight mode used (programming language). Some
highlight mode does not have block concept, in that case this
method does not do anything.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="select_function"
              c:identifier="ianjuta_editor_selection_select_function"
              throws="1">
        <doc xml:whitespace="preserve">Select current function block. The definition of function block
depends on highlight mode used (programming language). Some
highlight mode does not have function concept, in that case this
method does not do anything.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set"
              c:identifier="ianjuta_editor_selection_set"
              throws="1">
        <doc xml:whitespace="preserve">Select characters between start and end. Start and end don't have to
be ordered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Begin of selection</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End of selection</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="scroll" transfer-ownership="none">
            <doc xml:whitespace="preserve">Scroll selection onscreen</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="EditorSelectionIface"
            c:type="IAnjutaEditorSelectionIface"
            glib:is-gtype-struct-for="EditorSelection">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="get">
        <callback name="get" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A newly allocated buffer of currently selected characters. NULL if there is no selection. The returned buffer must be freed after use.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_end" introspectable="0">
        <callback name="get_end" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">End of selection or NULL if there is no selection.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_start" introspectable="0">
        <callback name="get_start" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="has_selection">
        <callback name="has_selection" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if there is text selected else FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="replace">
        <callback name="replace" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:whitespace="preserve">Replacement text.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <doc xml:whitespace="preserve">Length of the text to used in @text.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_all">
        <callback name="select_all" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_block">
        <callback name="select_block" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_function">
        <callback name="select_function" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set">
        <callback name="set" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorSelection" c:type="IAnjutaEditorSelection*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">Begin of selection</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">End of selection</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="scroll" transfer-ownership="none">
              <doc xml:whitespace="preserve">Scroll selection onscreen</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorTip"
               c:symbol-prefix="editor_tip"
               c:type="IAnjutaEditorTip"
               glib:type-name="IAnjutaEditorTip"
               glib:get-type="ianjuta_editor_tip_get_type"
               glib:type-struct="EditorTipIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_tip_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="cancel" invoker="cancel" throws="1">
        <doc xml:whitespace="preserve">Cancels the last shown tooltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="show" invoker="show" throws="1">
        <doc xml:whitespace="preserve">Show tips showing more information on current context. No user feedback
is required when tips are shown. @position indicates
the position before which is the known context and after which are
the suggestions. Usually the editor would use this to
align the choices displayed such that the carat is just at this
position when the choices are displayed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tips" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of alternative tips.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Tip position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="visible" invoker="visible" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether a tooltip is crrently shown</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <method name="cancel"
              c:identifier="ianjuta_editor_tip_cancel"
              throws="1">
        <doc xml:whitespace="preserve">Cancels the last shown tooltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="show" c:identifier="ianjuta_editor_tip_show" throws="1">
        <doc xml:whitespace="preserve">Show tips showing more information on current context. No user feedback
is required when tips are shown. @position indicates
the position before which is the known context and after which are
the suggestions. Usually the editor would use this to
align the choices displayed such that the carat is just at this
position when the choices are displayed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tips" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of alternative tips.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">Tip position.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="visible"
              c:identifier="ianjuta_editor_tip_visible"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether a tooltip is crrently shown</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorTipIface"
            c:type="IAnjutaEditorTipIface"
            glib:is-gtype-struct-for="EditorTip">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="cancel">
        <callback name="cancel" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorTip" c:type="IAnjutaEditorTip*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show">
        <callback name="show" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorTip" c:type="IAnjutaEditorTip*"/>
            </parameter>
            <parameter name="tips" transfer-ownership="none">
              <doc xml:whitespace="preserve">list of alternative tips.</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="utf8"/>
              </type>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <doc xml:whitespace="preserve">Tip position.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="visible">
        <callback name="visible" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">whether a tooltip is crrently shown</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorTip" c:type="IAnjutaEditorTip*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorView"
               c:symbol-prefix="editor_view"
               c:type="IAnjutaEditorView"
               glib:type-name="IAnjutaEditorView"
               glib:get-type="ianjuta_editor_view_get_type"
               glib:type-struct="EditorViewIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_view_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="create" invoker="create" throws="1">
        <doc xml:whitespace="preserve">Creates a new view for the editor. The newly created view gets
the user focus and scrolls to the same location as last view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_count" invoker="get_count" throws="1">
        <doc xml:whitespace="preserve">Total number of views currently present. It will never be less
than 1. Invalid return values are considered error condition.</doc>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="remove_current"
                      invoker="remove_current"
                      throws="1">
        <doc xml:whitespace="preserve">Removes currently focused editor view. It does not remove the
last view of the editor. That is, if currently there is only
one view of the editor, this function does nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="create"
              c:identifier="ianjuta_editor_view_create"
              throws="1">
        <doc xml:whitespace="preserve">Creates a new view for the editor. The newly created view gets
the user focus and scrolls to the same location as last view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_count"
              c:identifier="ianjuta_editor_view_get_count"
              throws="1">
        <doc xml:whitespace="preserve">Total number of views currently present. It will never be less
than 1. Invalid return values are considered error condition.</doc>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="remove_current"
              c:identifier="ianjuta_editor_view_remove_current"
              throws="1">
        <doc xml:whitespace="preserve">Removes currently focused editor view. It does not remove the
last view of the editor. That is, if currently there is only
one view of the editor, this function does nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorViewIface"
            c:type="IAnjutaEditorViewIface"
            glib:is-gtype-struct-for="EditorView">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="create">
        <callback name="create" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorView" c:type="IAnjutaEditorView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_count">
        <callback name="get_count" throws="1">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorView" c:type="IAnjutaEditorView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_current">
        <callback name="remove_current" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorView" c:type="IAnjutaEditorView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="EditorZoom"
               c:symbol-prefix="editor_zoom"
               c:type="IAnjutaEditorZoom"
               glib:type-name="IAnjutaEditorZoom"
               glib:get-type="ianjuta_editor_zoom_get_type"
               glib:type-struct="EditorZoomIface">
      <prerequisite name="Editor"/>
      <function name="error_quark"
                c:identifier="ianjuta_editor_zoom_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="in" invoker="in" throws="1">
        <doc xml:whitespace="preserve">Zoom in</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="out" invoker="out" throws="1">
        <doc xml:whitespace="preserve">Zoom out</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="in" c:identifier="ianjuta_editor_zoom_in" throws="1">
        <doc xml:whitespace="preserve">Zoom in</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="out" c:identifier="ianjuta_editor_zoom_out" throws="1">
        <doc xml:whitespace="preserve">Zoom out</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="EditorZoomIface"
            c:type="IAnjutaEditorZoomIface"
            glib:is-gtype-struct-for="EditorZoom">
      <field name="g_iface">
        <type name="EditorIface" c:type="IAnjutaEditorIface"/>
      </field>
      <field name="in">
        <callback name="in" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorZoom" c:type="IAnjutaEditorZoom*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="out">
        <callback name="out" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="EditorZoom" c:type="IAnjutaEditorZoom*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Environment"
               c:symbol-prefix="environment"
               c:type="IAnjutaEnvironment"
               glib:type-name="IAnjutaEnvironment"
               glib:get-type="ianjuta_environment_get_type"
               glib:type-struct="EnvironmentIface">
      <virtual-method name="get_real_directory"
                      invoker="get_real_directory"
                      throws="1">
        <doc xml:whitespace="preserve">Convert a directory in the environment to a directory outside.
It is useful when the environment use chroot. Take care that
the input directory string is freed using g_free but and you need to
free the output string when not needed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The directory path outside the environment</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:whitespace="preserve">A directory path in the environment</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="override" invoker="override" throws="1">
        <doc xml:whitespace="preserve">Override a command to work in another build environment</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">FALSE if there is an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dirp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer on the working directory</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="argvp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer on a NULL terminated string array containing the command name in argv[0] and all its argument</doc>
            <type name="utf8" c:type="gchar***"/>
          </parameter>
          <parameter name="envp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer on a NULL terminated string array containing all additional environment variable used by the command</doc>
            <type name="utf8" c:type="gchar***"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_real_directory"
              c:identifier="ianjuta_environment_get_real_directory"
              throws="1">
        <doc xml:whitespace="preserve">Convert a directory in the environment to a directory outside.
It is useful when the environment use chroot. Take care that
the input directory string is freed using g_free but and you need to
free the output string when not needed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The directory path outside the environment</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:whitespace="preserve">A directory path in the environment</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="override"
              c:identifier="ianjuta_environment_override"
              throws="1">
        <doc xml:whitespace="preserve">Override a command to work in another build environment</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">FALSE if there is an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dirp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer on the working directory</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="argvp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer on a NULL terminated string array containing the command name in argv[0] and all its argument</doc>
            <type name="utf8" c:type="gchar***"/>
          </parameter>
          <parameter name="envp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer on a NULL terminated string array containing all additional environment variable used by the command</doc>
            <type name="utf8" c:type="gchar***"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <enumeration name="EnvironmentError"
                 glib:type-name="IAnjutaEnvironmentError"
                 glib:get-type="ianjuta_environment_error_get_type"
                 c:type="IAnjutaEnvironmentError"
                 glib:error-domain="ianjuta-environment-quark">
      <doc xml:whitespace="preserve">Possible build errors</doc>
      <member name="config"
              value="0"
              c:identifier="IANJUTA_ENVIRONMENT_CONFIG"
              glib:nick="config"/>
      <member name="other_error"
              value="1"
              c:identifier="IANJUTA_ENVIRONMENT_OTHER_ERROR"
              glib:nick="other-error"/>
      <function name="quark" c:identifier="ianjuta_environment_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="EnvironmentIface"
            c:type="IAnjutaEnvironmentIface"
            glib:is-gtype-struct-for="Environment">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_real_directory">
        <callback name="get_real_directory" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">The directory path outside the environment</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Environment" c:type="IAnjutaEnvironment*"/>
            </parameter>
            <parameter name="dir" transfer-ownership="none">
              <doc xml:whitespace="preserve">A directory path in the environment</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="override">
        <callback name="override" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">FALSE if there is an error.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Environment" c:type="IAnjutaEnvironment*"/>
            </parameter>
            <parameter name="dirp" transfer-ownership="none">
              <doc xml:whitespace="preserve">a pointer on the working directory</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
            <parameter name="argvp" transfer-ownership="none">
              <doc xml:whitespace="preserve">a pointer on a NULL terminated string array containing the command name in argv[0] and all its argument</doc>
              <type name="utf8" c:type="gchar***"/>
            </parameter>
            <parameter name="envp" transfer-ownership="none">
              <doc xml:whitespace="preserve">a pointer on a NULL terminated string array containing all additional environment variable used by the command</doc>
              <type name="utf8" c:type="gchar***"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="FILE_MANAGER_SELECTED_FILE"
              value="file_manager_selected_file"
              c:type="IANJUTA_FILE_MANAGER_SELECTED_FILE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <interface name="File"
               c:symbol-prefix="file"
               c:type="IAnjutaFile"
               glib:type-name="IAnjutaFile"
               glib:get-type="ianjuta_file_get_type"
               glib:type-struct="FileIface">
      <function name="error_quark" c:identifier="ianjuta_file_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_file" invoker="get_file" throws="1">
        <doc xml:whitespace="preserve">Returns the file that was opened with ianjuta_file_open().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The last file opened.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="open" invoker="open" throws="1">
        <doc xml:whitespace="preserve">The implementor opens the given file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to open.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="get_file" c:identifier="ianjuta_file_get_file" throws="1">
        <doc xml:whitespace="preserve">Returns the file that was opened with ianjuta_file_open().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The last file opened.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </method>
      <method name="open" c:identifier="ianjuta_file_open" throws="1">
        <doc xml:whitespace="preserve">The implementor opens the given file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file to open.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="opened" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="FileIface"
            c:type="IAnjutaFileIface"
            glib:is-gtype-struct-for="File">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="opened">
        <callback name="opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="File" c:type="IAnjutaFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_file">
        <callback name="get_file" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">The last file opened.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="File" c:type="IAnjutaFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="open">
        <callback name="open" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="File" c:type="IAnjutaFile*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">file to open.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="FileLoader"
               c:symbol-prefix="file_loader"
               c:type="IAnjutaFileLoader"
               glib:type-name="IAnjutaFileLoader"
               glib:get-type="ianjuta_file_loader_get_type"
               glib:type-struct="FileLoaderIface">
      <prerequisite name="Loader"/>
      <function name="error_quark"
                c:identifier="ianjuta_file_loader_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="load" invoker="load" introspectable="0" throws="1">
        <doc xml:whitespace="preserve">Determines a plugin which can open the given file, activates it
opening the file and returns the interface of the plugin activated.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Plugin interface used to load the file.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to load</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="readonly" transfer-ownership="none">
            <doc xml:whitespace="preserve">Open in readonly mode.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="peek_interface"
                      invoker="peek_interface"
                      throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="load"
              c:identifier="ianjuta_file_loader_load"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Determines a plugin which can open the given file, activates it
opening the file and returns the interface of the plugin activated.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Plugin interface used to load the file.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to load</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="readonly" transfer-ownership="none">
            <doc xml:whitespace="preserve">Open in readonly mode.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_interface"
              c:identifier="ianjuta_file_loader_peek_interface"
              throws="1">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="FileLoaderIface"
            c:type="IAnjutaFileLoaderIface"
            glib:is-gtype-struct-for="FileLoader">
      <field name="g_iface">
        <type name="LoaderIface" c:type="IAnjutaLoaderIface"/>
      </field>
      <field name="load" introspectable="0">
        <callback name="load" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">Plugin interface used to load the file.</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileLoader" c:type="IAnjutaFileLoader*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File to load</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="readonly" transfer-ownership="none">
              <doc xml:whitespace="preserve">Open in readonly mode.</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="peek_interface">
        <callback name="peek_interface" throws="1">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileLoader" c:type="IAnjutaFileLoader*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="FileManager"
               c:symbol-prefix="file_manager"
               c:type="IAnjutaFileManager"
               glib:type-name="IAnjutaFileManager"
               glib:get-type="ianjuta_file_manager_get_type"
               glib:type-struct="FileManagerIface">
      <function name="error_quark"
                c:identifier="ianjuta_file_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_selected"
                      invoker="get_selected"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="section_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_root" invoker="set_root" throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="root_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_selected" invoker="set_selected" throws="1">
        <doc xml:whitespace="preserve">fixme.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to select</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_selected"
              c:identifier="ianjuta_file_manager_get_selected"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </method>
      <method name="set_root"
              c:identifier="ianjuta_file_manager_set_root"
              throws="1">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="root_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">fixme</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="ianjuta_file_manager_set_selected"
              throws="1">
        <doc xml:whitespace="preserve">fixme.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to select</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="section-changed" when="last">
        <doc xml:whitespace="preserve">fixme</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="err" transfer-ownership="none">
            <doc xml:whitespace="preserve">Error propagation and reporting.</doc>
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="FileManagerIface"
            c:type="IAnjutaFileManagerIface"
            glib:is-gtype-struct-for="FileManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="section_changed">
        <callback name="section_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileManager" c:type="IAnjutaFileManager*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selected" introspectable="0">
        <callback name="get_selected" introspectable="0" throws="1">
          <return-value>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileManager" c:type="IAnjutaFileManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_root">
        <callback name="set_root" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileManager" c:type="IAnjutaFileManager*"/>
            </parameter>
            <parameter name="root_uri" transfer-ownership="none">
              <doc xml:whitespace="preserve">fixme</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_selected">
        <callback name="set_selected" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileManager" c:type="IAnjutaFileManager*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File to select</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="FileSavable"
               c:symbol-prefix="file_savable"
               c:type="IAnjutaFileSavable"
               glib:type-name="IAnjutaFileSavable"
               glib:get-type="ianjuta_file_savable_get_type"
               glib:type-struct="FileSavableIface">
      <prerequisite name="File"/>
      <function name="error_quark"
                c:identifier="ianjuta_file_savable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="is_conflict" invoker="is_conflict" throws="1">
        <doc xml:whitespace="preserve">Return is the file is in conflict. It means the file
has been modified externally and the user needs to
tell which version he wants to use.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if conflict, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="is_dirty" invoker="is_dirty" throws="1">
        <doc xml:whitespace="preserve">Returns the dirty status of the content.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if dirty, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="is_read_only" invoker="is_read_only" throws="1">
        <doc xml:whitespace="preserve">Return is the file is read-only</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if read-only, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="save" invoker="save" throws="1">
        <doc xml:whitespace="preserve">Saves the content to the original file from which it was loaded.
The signal saved is always emitted even if the save fails.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="save_as" invoker="save_as" throws="1">
        <doc xml:whitespace="preserve">Saves the content to a different File.
The signal saved is always emitted even if the save fails.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to save the content.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="saved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_dirty" invoker="set_dirty" throws="1">
        <doc xml:whitespace="preserve">if @dirty is TRUE, sets dirty for the content. Save point will be
left and the content will be considered not saved. Otherwise,
content will considered saved and save-point will be entered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dirty" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the file was edited or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_save_ui">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="is_conflict"
              c:identifier="ianjuta_file_savable_is_conflict"
              throws="1">
        <doc xml:whitespace="preserve">Return is the file is in conflict. It means the file
has been modified externally and the user needs to
tell which version he wants to use.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if conflict, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_dirty"
              c:identifier="ianjuta_file_savable_is_dirty"
              throws="1">
        <doc xml:whitespace="preserve">Returns the dirty status of the content.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if dirty, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_read_only"
              c:identifier="ianjuta_file_savable_is_read_only"
              throws="1">
        <doc xml:whitespace="preserve">Return is the file is read-only</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if read-only, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="save" c:identifier="ianjuta_file_savable_save" throws="1">
        <doc xml:whitespace="preserve">Saves the content to the original file from which it was loaded.
The signal saved is always emitted even if the save fails.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="save_as"
              c:identifier="ianjuta_file_savable_save_as"
              throws="1">
        <doc xml:whitespace="preserve">Saves the content to a different File.
The signal saved is always emitted even if the save fails.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to save the content.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dirty"
              c:identifier="ianjuta_file_savable_set_dirty"
              throws="1">
        <doc xml:whitespace="preserve">if @dirty is TRUE, sets dirty for the content. Save point will be
left and the content will be considered not saved. Otherwise,
content will considered saved and save-point will be entered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dirty" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the file was edited or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="saved" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when the content is saved.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">file where the content is saved or NULL if save failed</doc>
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-save-ui" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="FileSavableIface"
            c:type="IAnjutaFileSavableIface"
            glib:is-gtype-struct-for="FileSavable">
      <field name="g_iface">
        <type name="FileIface" c:type="IAnjutaFileIface"/>
      </field>
      <field name="saved">
        <callback name="saved">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_save_ui">
        <callback name="update_save_ui">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_conflict">
        <callback name="is_conflict" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if conflict, FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_dirty">
        <callback name="is_dirty" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if dirty, FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_read_only">
        <callback name="is_read_only" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if read-only, FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save">
        <callback name="save" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save_as">
        <callback name="save_as" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File to save the content.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_dirty">
        <callback name="set_dirty" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="FileSavable" c:type="IAnjutaFileSavable*"/>
            </parameter>
            <parameter name="dirty" transfer-ownership="none">
              <doc xml:whitespace="preserve">Whether the file was edited or not</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Help"
               c:symbol-prefix="help"
               c:type="IAnjutaHelp"
               glib:type-name="IAnjutaHelp"
               glib:get-type="ianjuta_help_get_type"
               glib:type-struct="HelpIface">
      <function name="error_quark" c:identifier="ianjuta_help_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="search" invoker="search" throws="1">
        <doc xml:whitespace="preserve">Search for string @query in the help and display the result</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:whitespace="preserve">string to search in the help</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="search" c:identifier="ianjuta_help_search" throws="1">
        <doc xml:whitespace="preserve">Search for string @query in the help and display the result</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:whitespace="preserve">string to search in the help</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="HelpIface"
            c:type="IAnjutaHelpIface"
            glib:is-gtype-struct-for="Help">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="search">
        <callback name="search" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Help" c:type="IAnjutaHelp*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <doc xml:whitespace="preserve">string to search in the help</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Indenter"
               c:symbol-prefix="indenter"
               c:type="IAnjutaIndenter"
               glib:type-name="IAnjutaIndenter"
               glib:get-type="ianjuta_indenter_get_type"
               glib:type-struct="IndenterIface">
      <function name="error_quark" c:identifier="ianjuta_indenter_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="indent" invoker="indent" throws="1">
        <doc xml:whitespace="preserve">Indent the area between @start and @end according to the indentation rules
of the programming language. Usually implemented by language support plugins.
Only one indenter can be loaded at a time.
Note: Indenters always affect full lines, so start and end will be moved
according to the next line start/end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start of the area to indent</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End of the area to indent</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="indent" c:identifier="ianjuta_indenter_indent" throws="1">
        <doc xml:whitespace="preserve">Indent the area between @start and @end according to the indentation rules
of the programming language. Usually implemented by language support plugins.
Only one indenter can be loaded at a time.
Note: Indenters always affect full lines, so start and end will be moved
according to the next line start/end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start of the area to indent</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End of the area to indent</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="IndenterIface"
            c:type="IAnjutaIndenterIface"
            glib:is-gtype-struct-for="Indenter">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="indent">
        <callback name="indent" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Indenter" c:type="IAnjutaIndenter*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">Start of the area to indent</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">End of the area to indent</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Indicable"
               c:symbol-prefix="indicable"
               c:type="IAnjutaIndicable"
               glib:type-name="IAnjutaIndicable"
               glib:get-type="ianjuta_indicable_get_type"
               glib:type-struct="IndicableIface">
      <function name="error_quark"
                c:identifier="ianjuta_indicable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="clear" invoker="clear" throws="1">
        <doc xml:whitespace="preserve">Clear all indicators</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set" invoker="set" throws="1">
        <doc xml:whitespace="preserve">Set an indicator</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="begin_location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location where the indication should start</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end_location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location where the indication should end</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="indicator" transfer-ownership="none">
            <doc xml:whitespace="preserve">the indicator to use</doc>
            <type name="IndicableIndicator"
                  c:type="IAnjutaIndicableIndicator"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="clear" c:identifier="ianjuta_indicable_clear" throws="1">
        <doc xml:whitespace="preserve">Clear all indicators</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set" c:identifier="ianjuta_indicable_set" throws="1">
        <doc xml:whitespace="preserve">Set an indicator</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="begin_location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location where the indication should start</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="end_location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location where the indication should end</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="indicator" transfer-ownership="none">
            <doc xml:whitespace="preserve">the indicator to use</doc>
            <type name="IndicableIndicator"
                  c:type="IAnjutaIndicableIndicator"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="IndicableIface"
            c:type="IAnjutaIndicableIface"
            glib:is-gtype-struct-for="Indicable">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="clear">
        <callback name="clear" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Indicable" c:type="IAnjutaIndicable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set">
        <callback name="set" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Indicable" c:type="IAnjutaIndicable*"/>
            </parameter>
            <parameter name="begin_location" transfer-ownership="none">
              <doc xml:whitespace="preserve">Location where the indication should start</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="end_location" transfer-ownership="none">
              <doc xml:whitespace="preserve">Location where the indication should end</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="indicator" transfer-ownership="none">
              <doc xml:whitespace="preserve">the indicator to use</doc>
              <type name="IndicableIndicator"
                    c:type="IAnjutaIndicableIndicator"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="IndicableIndicator"
                 glib:type-name="IAnjutaIndicableIndicator"
                 glib:get-type="ianjuta_indicable_indicator_get_type"
                 c:type="IAnjutaIndicableIndicator">
      <doc xml:whitespace="preserve">This enumeration is used to specify the appearance of the indicator</doc>
      <member name="none"
              value="0"
              c:identifier="IANJUTA_INDICABLE_NONE"
              glib:nick="none"/>
      <member name="important"
              value="1"
              c:identifier="IANJUTA_INDICABLE_IMPORTANT"
              glib:nick="important"/>
      <member name="warning"
              value="2"
              c:identifier="IANJUTA_INDICABLE_WARNING"
              glib:nick="warning"/>
      <member name="critical"
              value="3"
              c:identifier="IANJUTA_INDICABLE_CRITICAL"
              glib:nick="critical"/>
    </enumeration>
    <interface name="Iterable"
               c:symbol-prefix="iterable"
               c:type="IAnjutaIterable"
               glib:type-name="IAnjutaIterable"
               glib:get-type="ianjuta_iterable_get_type"
               glib:type-struct="IterableIface">
      <function name="error_quark" c:identifier="ianjuta_iterable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="assign" invoker="assign" throws="1">
        <doc xml:whitespace="preserve">Assigns the iter position from @src_iter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src_iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">Source iter from which to copy the assignment.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clone" invoker="clone" throws="1">
        <doc xml:whitespace="preserve">Clones the iterable. The returned iterable object must be unreffed
when done.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new instance of this iterable pointing at the same location.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="compare" invoker="compare" throws="1">
        <doc xml:whitespace="preserve">Compares the position of @iter2 with this @obj. Returns -1
value if this @obj is smaller than @iter2. Returns +1 value
if this @obj is larger than @iter2. And returns 0 if both are equal.
If you want difference of the iter positions, use
#ianjuta_iterable_diff(). This method is meant for fast comparision.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if equal, -1 if @obj is smaller than @iter2 or +1 if @obj is larger than @iter2.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="iter2" transfer-ownership="none">
            <doc xml:whitespace="preserve">Second iter to compare.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="diff" invoker="diff" throws="1">
        <doc xml:whitespace="preserve">Compares the position of @iter2 with this @obj and returns difference
in position of the two (@obj - @iter2).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The position difference of @obj - @iter2</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="iter2" transfer-ownership="none">
            <doc xml:whitespace="preserve">Second iter to differenciate.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="first" invoker="first" throws="1">
        <doc xml:whitespace="preserve">Set iter to first element position. Returns FALSE if
there is no element in the iterable (hence does not have first).
The iter points to the first valid item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="foreach"
                      invoker="foreach"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Call callback for each element in the list. Call back is passed the
same iter, but with different position set (from first to last). This
method does not affect current position. i.e. current position is
restored at the end of this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">user data that is passed back to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_length" invoker="get_length" throws="1">
        <doc xml:whitespace="preserve">Length of the iterable (number of elements indexable by it).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">total length of the list.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_position" invoker="get_position" throws="1">
        <doc xml:whitespace="preserve">Index of the current iter in the iterable. It will be
from 0 to length - 1 (ianjuta_iter_get_length()) if iter is pointed
at valid element. It will return -1 if iter is pointed at end-iter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">integer index, or -1 for end-iter.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="last" invoker="last" throws="1">
        <doc xml:whitespace="preserve">Set iter position to end-iter (one past last element) position.
Returns FALSE if there is no element in the iterable (already
at end-iter).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="next" invoker="next" throws="1">
        <doc xml:whitespace="preserve">Set the iter position to next element position. Iter can go until one
item past the last item and lands in end-iter. end-iter does not point
to any valid item and signifies end of the list. Returns FALSE if iter
was already at end-iter (iter can not go past it) and remains pointed
to the end-iter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE if already at end-iter.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="previous" invoker="previous" throws="1">
        <doc xml:whitespace="preserve">Set the iter position to previous element position. Returns FALSE if
there is no previous element and the iter remains pointed to the first
element.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set_position" invoker="set_position" throws="1">
        <doc xml:whitespace="preserve">Sets the current position of the iter to @position. The given @position
must be from 0 to length - 1 (#ianjuta_iter_get_length()) to point to
a valid element. Passing @position &lt; 0 will set it to end-iter. It
returns TRUE for the above cases. FLASE will be returned, if
out-of-range @position is passed (@position &gt; length - 1) and iter is
set to end-iter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successfully set (i.e. @position is within the range or end-iter). otherwise returns FALSE (i.e. @position is out of data range).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">New position for the iter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="assign" c:identifier="ianjuta_iterable_assign" throws="1">
        <doc xml:whitespace="preserve">Assigns the iter position from @src_iter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src_iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">Source iter from which to copy the assignment.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clone" c:identifier="ianjuta_iterable_clone" throws="1">
        <doc xml:whitespace="preserve">Clones the iterable. The returned iterable object must be unreffed
when done.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new instance of this iterable pointing at the same location.</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="compare"
              c:identifier="ianjuta_iterable_compare"
              throws="1">
        <doc xml:whitespace="preserve">Compares the position of @iter2 with this @obj. Returns -1
value if this @obj is smaller than @iter2. Returns +1 value
if this @obj is larger than @iter2. And returns 0 if both are equal.
If you want difference of the iter positions, use
#ianjuta_iterable_diff(). This method is meant for fast comparision.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if equal, -1 if @obj is smaller than @iter2 or +1 if @obj is larger than @iter2.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="iter2" transfer-ownership="none">
            <doc xml:whitespace="preserve">Second iter to compare.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="diff" c:identifier="ianjuta_iterable_diff" throws="1">
        <doc xml:whitespace="preserve">Compares the position of @iter2 with this @obj and returns difference
in position of the two (@obj - @iter2).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The position difference of @obj - @iter2</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="iter2" transfer-ownership="none">
            <doc xml:whitespace="preserve">Second iter to differenciate.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="first" c:identifier="ianjuta_iterable_first" throws="1">
        <doc xml:whitespace="preserve">Set iter to first element position. Returns FALSE if
there is no element in the iterable (hence does not have first).
The iter points to the first valid item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="foreach"
              c:identifier="ianjuta_iterable_foreach"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Call callback for each element in the list. Call back is passed the
same iter, but with different position set (from first to last). This
method does not affect current position. i.e. current position is
restored at the end of this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data that is passed back to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_length"
              c:identifier="ianjuta_iterable_get_length"
              throws="1">
        <doc xml:whitespace="preserve">Length of the iterable (number of elements indexable by it).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">total length of the list.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_position"
              c:identifier="ianjuta_iterable_get_position"
              throws="1">
        <doc xml:whitespace="preserve">Index of the current iter in the iterable. It will be
from 0 to length - 1 (ianjuta_iter_get_length()) if iter is pointed
at valid element. It will return -1 if iter is pointed at end-iter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">integer index, or -1 for end-iter.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="last" c:identifier="ianjuta_iterable_last" throws="1">
        <doc xml:whitespace="preserve">Set iter position to end-iter (one past last element) position.
Returns FALSE if there is no element in the iterable (already
at end-iter).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="next" c:identifier="ianjuta_iterable_next" throws="1">
        <doc xml:whitespace="preserve">Set the iter position to next element position. Iter can go until one
item past the last item and lands in end-iter. end-iter does not point
to any valid item and signifies end of the list. Returns FALSE if iter
was already at end-iter (iter can not go past it) and remains pointed
to the end-iter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE if already at end-iter.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="previous"
              c:identifier="ianjuta_iterable_previous"
              throws="1">
        <doc xml:whitespace="preserve">Set the iter position to previous element position. Returns FALSE if
there is no previous element and the iter remains pointed to the first
element.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_position"
              c:identifier="ianjuta_iterable_set_position"
              throws="1">
        <doc xml:whitespace="preserve">Sets the current position of the iter to @position. The given @position
must be from 0 to length - 1 (#ianjuta_iter_get_length()) to point to
a valid element. Passing @position &lt; 0 will set it to end-iter. It
returns TRUE for the above cases. FLASE will be returned, if
out-of-range @position is passed (@position &gt; length - 1) and iter is
set to end-iter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successfully set (i.e. @position is within the range or end-iter). otherwise returns FALSE (i.e. @position is out of data range).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">New position for the iter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="IterableIface"
            c:type="IAnjutaIterableIface"
            glib:is-gtype-struct-for="Iterable">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="assign">
        <callback name="assign" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="src_iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">Source iter from which to copy the assignment.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clone">
        <callback name="clone" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A new instance of this iterable pointing at the same location.</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="compare">
        <callback name="compare" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">0 if equal, -1 if @obj is smaller than @iter2 or +1 if @obj is larger than @iter2.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="iter2" transfer-ownership="none">
              <doc xml:whitespace="preserve">Second iter to compare.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="diff">
        <callback name="diff" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The position difference of @obj - @iter2</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="iter2" transfer-ownership="none">
              <doc xml:whitespace="preserve">Second iter to differenciate.</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="first">
        <callback name="first" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="foreach" introspectable="0">
        <callback name="foreach" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call for each element.</doc>
              <type name="GLib.Func" c:type="GFunc"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">user data that is passed back to the callback.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_length">
        <callback name="get_length" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">total length of the list.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_position">
        <callback name="get_position" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">integer index, or -1 for end-iter.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="last">
        <callback name="last" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="next">
        <callback name="next" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE if already at end-iter.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="previous">
        <callback name="previous" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_position">
        <callback name="set_position" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if successfully set (i.e. @position is within the range or end-iter). otherwise returns FALSE (i.e. @position is out of data range).</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="position" transfer-ownership="none">
              <doc xml:whitespace="preserve">New position for the iter.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="IterableTree"
               c:symbol-prefix="iterable_tree"
               c:type="IAnjutaIterableTree"
               glib:type-name="IAnjutaIterableTree"
               glib:get-type="ianjuta_iterable_tree_get_type"
               glib:type-struct="IterableTreeIface">
      <prerequisite name="Iterable"/>
      <function name="error_quark"
                c:identifier="ianjuta_iterable_tree_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="children" invoker="children" throws="1">
        <doc xml:whitespace="preserve">Iter position set to first child of current iter. If there is no
children, return NULL (iter position is not changed).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="foreach_post"
                      invoker="foreach_post"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Call callback for each element in post order.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data to pass back to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="foreach_pre"
                      invoker="foreach_pre"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Call callback for each element in pre order.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">User data to pass back to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_children" invoker="has_children" throws="1">
        <doc xml:whitespace="preserve">Returns true if current iter has children</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are children, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="parent" invoker="parent" throws="1">
        <doc xml:whitespace="preserve">Set iter position to parent of curernt iter. If there is no parent,
returns FALSE (current iter position is not changed)</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <method name="children"
              c:identifier="ianjuta_iterable_tree_children"
              throws="1">
        <doc xml:whitespace="preserve">Iter position set to first child of current iter. If there is no
children, return NULL (iter position is not changed).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="foreach_post"
              c:identifier="ianjuta_iterable_tree_foreach_post"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Call callback for each element in post order.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data to pass back to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_pre"
              c:identifier="ianjuta_iterable_tree_foreach_pre"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Call callback for each element in pre order.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback" transfer-ownership="none" closure="1">
            <doc xml:whitespace="preserve">Callback to call for each element.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data to pass back to callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_children"
              c:identifier="ianjuta_iterable_tree_has_children"
              throws="1">
        <doc xml:whitespace="preserve">Returns true if current iter has children</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are children, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="parent"
              c:identifier="ianjuta_iterable_tree_parent"
              throws="1">
        <doc xml:whitespace="preserve">Set iter position to parent of curernt iter. If there is no parent,
returns FALSE (current iter position is not changed)</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
    </interface>
    <record name="IterableTreeIface"
            c:type="IAnjutaIterableTreeIface"
            glib:is-gtype-struct-for="IterableTree">
      <field name="g_iface">
        <type name="IterableIface" c:type="IAnjutaIterableIface"/>
      </field>
      <field name="children">
        <callback name="children" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="IterableTree" c:type="IAnjutaIterableTree*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="foreach_post" introspectable="0">
        <callback name="foreach_post" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="IterableTree" c:type="IAnjutaIterableTree*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call for each element.</doc>
              <type name="GLib.Func" c:type="GFunc"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data to pass back to callback.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="foreach_pre" introspectable="0">
        <callback name="foreach_pre" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="IterableTree" c:type="IAnjutaIterableTree*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">Callback to call for each element.</doc>
              <type name="GLib.Func" c:type="GFunc"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="2">
              <doc xml:whitespace="preserve">User data to pass back to callback.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="has_children">
        <callback name="has_children" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if there are children, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="IterableTree" c:type="IAnjutaIterableTree*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="parent">
        <callback name="parent" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, otherwise FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="IterableTree" c:type="IAnjutaIterableTree*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_BRACE_AFTER_FUNC"
              value="completion-brace-after-func"
              c:type="IANJUTA_LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_BRACE_AFTER_FUNC">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_CLOSEBRACE_AFTER_FUNC"
              value="completion-closebrace-after-func"
              c:type="IANJUTA_LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_CLOSEBRACE_AFTER_FUNC">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_ENABLE"
              value="completion-enable"
              c:type="IANJUTA_LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_ENABLE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_SPACE_AFTER_FUNC"
              value="completion-space-after-func"
              c:type="IANJUTA_LANGUAGE_PROVIDER_PREF_AUTOCOMPLETE_SPACE_AFTER_FUNC">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="LANGUAGE_PROVIDER_PREF_CALLTIP_ENABLE"
              value="calltip-enable"
              c:type="IANJUTA_LANGUAGE_PROVIDER_PREF_CALLTIP_ENABLE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <interface name="Language"
               c:symbol-prefix="language"
               c:type="IAnjutaLanguage"
               glib:type-name="IAnjutaLanguage"
               glib:get-type="ianjuta_language_get_type"
               glib:type-struct="LanguageIface">
      <function name="error_quark" c:identifier="ianjuta_language_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_from_editor"
                      invoker="get_from_editor"
                      throws="1">
        <doc xml:whitespace="preserve">Conviniece method to get the id directly from the editor</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A valid language id or 0</doc>
          <type name="LanguageId" c:type="IAnjutaLanguageId"/>
        </return-value>
        <parameters>
          <parameter name="editor" transfer-ownership="none">
            <doc xml:whitespace="preserve">An object implementing IAnjutaEditorLanguage</doc>
            <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_from_mime_type"
                      invoker="get_from_mime_type"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="LanguageId" c:type="IAnjutaLanguageId"/>
        </return-value>
        <parameters>
          <parameter name="mime_type" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_from_string"
                      invoker="get_from_string"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="LanguageId" c:type="IAnjutaLanguageId"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_languages" invoker="get_languages" throws="1">
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">a list of ids of the available languages. Use GPOINTER_TO_INT() to receive them. The list but not the values should be free'd with g_list_free()</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gint"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="get_make_target"
                      invoker="get_make_target"
                      throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The suffix for the file thats needs to be passed to make to compile the file, e.g. ".o" for C</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_mime_types"
                      invoker="get_mime_types"
                      introspectable="0"
                      throws="1">
        <return-value>
          <doc xml:whitespace="preserve">A list of mime-types that represent this language</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The main name of the language. When you call ianjuta_language_from_string() before that method the string you get here might be different to the one you passed because the language might have multiple string representations</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_name_from_editor"
                      invoker="get_name_from_editor"
                      throws="1">
        <doc xml:whitespace="preserve">Conviniece method to get the name directly from the editor</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A language name or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="editor" transfer-ownership="none">
            <doc xml:whitespace="preserve">An object implementing IAnjutaEditorLanguage</doc>
            <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_strings"
                      invoker="get_strings"
                      introspectable="0"
                      throws="1">
        <return-value>
          <doc xml:whitespace="preserve">A list of strings that represent this language</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_from_editor"
              c:identifier="ianjuta_language_get_from_editor"
              throws="1">
        <doc xml:whitespace="preserve">Conviniece method to get the id directly from the editor</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A valid language id or 0</doc>
          <type name="LanguageId" c:type="IAnjutaLanguageId"/>
        </return-value>
        <parameters>
          <parameter name="editor" transfer-ownership="none">
            <doc xml:whitespace="preserve">An object implementing IAnjutaEditorLanguage</doc>
            <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_from_mime_type"
              c:identifier="ianjuta_language_get_from_mime_type"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="LanguageId" c:type="IAnjutaLanguageId"/>
        </return-value>
        <parameters>
          <parameter name="mime_type" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_from_string"
              c:identifier="ianjuta_language_get_from_string"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="LanguageId" c:type="IAnjutaLanguageId"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_languages"
              c:identifier="ianjuta_language_get_languages"
              throws="1">
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">a list of ids of the available languages. Use GPOINTER_TO_INT() to receive them. The list but not the values should be free'd with g_list_free()</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gint"/>
          </type>
        </return-value>
      </method>
      <method name="get_make_target"
              c:identifier="ianjuta_language_get_make_target"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The suffix for the file thats needs to be passed to make to compile the file, e.g. ".o" for C</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mime_types"
              c:identifier="ianjuta_language_get_mime_types"
              introspectable="0"
              throws="1">
        <return-value>
          <doc xml:whitespace="preserve">A list of mime-types that represent this language</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="ianjuta_language_get_name"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The main name of the language. When you call ianjuta_language_from_string() before that method the string you get here might be different to the one you passed because the language might have multiple string representations</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name_from_editor"
              c:identifier="ianjuta_language_get_name_from_editor"
              throws="1">
        <doc xml:whitespace="preserve">Conviniece method to get the name directly from the editor</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A language name or NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="editor" transfer-ownership="none">
            <doc xml:whitespace="preserve">An object implementing IAnjutaEditorLanguage</doc>
            <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_strings"
              c:identifier="ianjuta_language_get_strings"
              introspectable="0"
              throws="1">
        <return-value>
          <doc xml:whitespace="preserve">A list of strings that represent this language</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="LanguageIface"
            c:type="IAnjutaLanguageIface"
            glib:is-gtype-struct-for="Language">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_from_editor">
        <callback name="get_from_editor" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">A valid language id or 0</doc>
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="editor" transfer-ownership="none">
              <doc xml:whitespace="preserve">An object implementing IAnjutaEditorLanguage</doc>
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_from_mime_type">
        <callback name="get_from_mime_type" throws="1">
          <return-value transfer-ownership="none">
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="mime_type" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_from_string">
        <callback name="get_from_string" throws="1">
          <return-value transfer-ownership="none">
            <type name="LanguageId" c:type="IAnjutaLanguageId"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="string" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_languages">
        <callback name="get_languages" throws="1">
          <return-value transfer-ownership="container">
            <doc xml:whitespace="preserve">a list of ids of the available languages. Use GPOINTER_TO_INT() to receive them. The list but not the values should be free'd with g_list_free()</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gint"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_make_target">
        <callback name="get_make_target" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The suffix for the file thats needs to be passed to make to compile the file, e.g. ".o" for C</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">A valid language id</doc>
              <type name="LanguageId" c:type="IAnjutaLanguageId"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_mime_types" introspectable="0">
        <callback name="get_mime_types" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">A list of mime-types that represent this language</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">A valid language id</doc>
              <type name="LanguageId" c:type="IAnjutaLanguageId"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_name">
        <callback name="get_name" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The main name of the language. When you call ianjuta_language_from_string() before that method the string you get here might be different to the one you passed because the language might have multiple string representations</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">A valid language id</doc>
              <type name="LanguageId" c:type="IAnjutaLanguageId"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_name_from_editor">
        <callback name="get_name_from_editor" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">A language name or NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="editor" transfer-ownership="none">
              <doc xml:whitespace="preserve">An object implementing IAnjutaEditorLanguage</doc>
              <type name="EditorLanguage" c:type="IAnjutaEditorLanguage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_strings" introspectable="0">
        <callback name="get_strings" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">A list of strings that represent this language</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Language" c:type="IAnjutaLanguage*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">A valid language id</doc>
              <type name="LanguageId" c:type="IAnjutaLanguageId"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="LanguageProvider"
               c:symbol-prefix="language_provider"
               c:type="IAnjutaLanguageProvider"
               glib:type-name="IAnjutaLanguageProvider"
               glib:get-type="ianjuta_language_provider_get_type"
               glib:type-struct="LanguageProviderIface">
      <prerequisite name="Provider"/>
      <function name="error_quark"
                c:identifier="ianjuta_language_provider_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_calltip_cache"
                      invoker="get_calltip_cache"
                      throws="1">
        <doc xml:whitespace="preserve">Searches for a calltip in the cache</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">tips for the searched name of the method from the cache, NULL if nothing found</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="call_context" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the method to show a calltip</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_calltip_context"
                      invoker="get_calltip_context"
                      throws="1">
        <doc xml:whitespace="preserve">Searches for a calltip context</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">name of the method to show a calltip for or NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">current cursor position</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_calltip" invoker="new_calltip" throws="1">
        <doc xml:whitespace="preserve">Creates a new calltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="call_context" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the method to create a new calltip</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">current cursor position</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_completions"
                      invoker="populate_completions"
                      throws="1">
        <doc xml:whitespace="preserve">Show completion for the context at position @iter. The provider should
call ianjuta_editor_assist_proposals here to add proposals to the list.

Note that this is called after every character typed and the list of proposals
has to be completely renewed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the iter where the provider populated, NULL otherwise</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">the text iter where the provider should be populated</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_calltip_cache"
              c:identifier="ianjuta_language_provider_get_calltip_cache"
              throws="1">
        <doc xml:whitespace="preserve">Searches for a calltip in the cache</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">tips for the searched name of the method from the cache, NULL if nothing found</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="call_context" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the method to show a calltip</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_calltip_context"
              c:identifier="ianjuta_language_provider_get_calltip_context"
              throws="1">
        <doc xml:whitespace="preserve">Searches for a calltip context</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">name of the method to show a calltip for or NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">current cursor position</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_calltip"
              c:identifier="ianjuta_language_provider_new_calltip"
              throws="1">
        <doc xml:whitespace="preserve">Creates a new calltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="call_context" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the method to create a new calltip</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">current cursor position</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_completions"
              c:identifier="ianjuta_language_provider_populate_completions"
              throws="1">
        <doc xml:whitespace="preserve">Show completion for the context at position @iter. The provider should
call ianjuta_editor_assist_proposals here to add proposals to the list.

Note that this is called after every character typed and the list of proposals
has to be completely renewed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the iter where the provider populated, NULL otherwise</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">the text iter where the provider should be populated</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="LanguageProviderIface"
            c:type="IAnjutaLanguageProviderIface"
            glib:is-gtype-struct-for="LanguageProvider">
      <field name="g_iface">
        <type name="ProviderIface" c:type="IAnjutaProviderIface"/>
      </field>
      <field name="get_calltip_cache">
        <callback name="get_calltip_cache" throws="1">
          <return-value transfer-ownership="container">
            <doc xml:whitespace="preserve">tips for the searched name of the method from the cache, NULL if nothing found</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="LanguageProvider" c:type="IAnjutaLanguageProvider*"/>
            </parameter>
            <parameter name="call_context" transfer-ownership="none">
              <doc xml:whitespace="preserve">name of the method to show a calltip</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_calltip_context">
        <callback name="get_calltip_context" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">name of the method to show a calltip for or NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="LanguageProvider" c:type="IAnjutaLanguageProvider*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">current cursor position</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="new_calltip">
        <callback name="new_calltip" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="LanguageProvider" c:type="IAnjutaLanguageProvider*"/>
            </parameter>
            <parameter name="call_context" transfer-ownership="none">
              <doc xml:whitespace="preserve">name of the method to create a new calltip</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">current cursor position</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_completions">
        <callback name="populate_completions" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">the iter where the provider populated, NULL otherwise</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="LanguageProvider" c:type="IAnjutaLanguageProvider*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">the text iter where the provider should be populated</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Loader"
               c:symbol-prefix="loader"
               c:type="IAnjutaLoader"
               glib:type-name="IAnjutaLoader"
               glib:get-type="ianjuta_loader_get_type"
               glib:type-struct="LoaderIface">
      <function name="error_quark" c:identifier="ianjuta_loader_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="find_plugins"
                      invoker="find_plugins"
                      introspectable="0"
                      throws="1">
        <return-value>
          <doc xml:whitespace="preserve">all plugins supporting loader interface.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Anjuta.Plugin"/>
          </type>
        </return-value>
      </virtual-method>
      <method name="find_plugins"
              c:identifier="ianjuta_loader_find_plugins"
              introspectable="0"
              throws="1">
        <return-value>
          <doc xml:whitespace="preserve">all plugins supporting loader interface.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Anjuta.Plugin"/>
          </type>
        </return-value>
      </method>
    </interface>
    <record name="LoaderIface"
            c:type="IAnjutaLoaderIface"
            glib:is-gtype-struct-for="Loader">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="find_plugins" introspectable="0">
        <callback name="find_plugins" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">all plugins supporting loader interface.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Anjuta.Plugin"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Loader" c:type="IAnjutaLoader*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Markable"
               c:symbol-prefix="markable"
               c:type="IAnjutaMarkable"
               glib:type-name="IAnjutaMarkable"
               glib:get-type="ianjuta_markable_get_type"
               glib:type-struct="MarkableIface">
      <virtual-method name="delete_all_markers"
                      invoker="delete_all_markers"
                      throws="1">
        <doc xml:whitespace="preserve">Delete the @marker from all locations.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">Marker to delete.</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_marker_set" invoker="is_marker_set" throws="1">
        <doc xml:whitespace="preserve">Check if the @marker is set at the given @location.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the marker is set at the location, other false.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location to check.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">Marker to check.</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="location_from_handle"
                      invoker="location_from_handle"
                      throws="1">
        <doc xml:whitespace="preserve">Location where a marker is set could have moved by some operation in
the implementation. To retrieve the correct location where the marker
has moved, pass the handle retured by ianjuta_markable_mark() to this
method.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Current location where the marker was set.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:whitespace="preserve">Handle of location.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="mark" invoker="mark" throws="1">
        <doc xml:whitespace="preserve">Marks the specified location with the given marker type. Location is
implementation depenedent. For example, for an editor location means
lines where markers are set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Handle of the location marked. Can be used later to obtain new location, if it has been moved due to addetions/deletions in the implementor object.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location at which the marker to set.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of marker to be used</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">optional tooltip displayed with the marker</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="marker_clicked">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="double_click" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unmark" invoker="unmark" throws="1">
        <doc xml:whitespace="preserve">Clears the @marker at given @location.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location where the marker is set.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker to unset.</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="delete_all_markers"
              c:identifier="ianjuta_markable_delete_all_markers"
              throws="1">
        <doc xml:whitespace="preserve">Delete the @marker from all locations.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">Marker to delete.</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_marker_set"
              c:identifier="ianjuta_markable_is_marker_set"
              throws="1">
        <doc xml:whitespace="preserve">Check if the @marker is set at the given @location.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the marker is set at the location, other false.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location to check.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">Marker to check.</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
        </parameters>
      </method>
      <method name="location_from_handle"
              c:identifier="ianjuta_markable_location_from_handle"
              throws="1">
        <doc xml:whitespace="preserve">Location where a marker is set could have moved by some operation in
the implementation. To retrieve the correct location where the marker
has moved, pass the handle retured by ianjuta_markable_mark() to this
method.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Current location where the marker was set.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:whitespace="preserve">Handle of location.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="mark" c:identifier="ianjuta_markable_mark" throws="1">
        <doc xml:whitespace="preserve">Marks the specified location with the given marker type. Location is
implementation depenedent. For example, for an editor location means
lines where markers are set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Handle of the location marked. Can be used later to obtain new location, if it has been moved due to addetions/deletions in the implementor object.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location at which the marker to set.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of marker to be used</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">optional tooltip displayed with the marker</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unmark" c:identifier="ianjuta_markable_unmark" throws="1">
        <doc xml:whitespace="preserve">Clears the @marker at given @location.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location where the marker is set.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="marker" transfer-ownership="none">
            <doc xml:whitespace="preserve">The marker to unset.</doc>
            <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="marker-clicked" when="last">
        <doc xml:whitespace="preserve">The signal is emitted when the user clicks on a marker</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="double_click" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether the marker was double clicked</doc>
            <type name="gboolean"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">location of the clicked marker</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <enumeration name="MarkableError"
                 glib:type-name="IAnjutaMarkableError"
                 glib:get-type="ianjuta_markable_error_get_type"
                 c:type="IAnjutaMarkableError"
                 glib:error-domain="ianjuta-markable-quark">
      <member name="invalid_location"
              value="0"
              c:identifier="IANJUTA_MARKABLE_INVALID_LOCATION"
              glib:nick="invalid-location"/>
      <function name="quark" c:identifier="ianjuta_markable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="MarkableIface"
            c:type="IAnjutaMarkableIface"
            glib:is-gtype-struct-for="Markable">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="marker_clicked">
        <callback name="marker_clicked">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Markable" c:type="IAnjutaMarkable*"/>
            </parameter>
            <parameter name="double_click" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="delete_all_markers">
        <callback name="delete_all_markers" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Markable" c:type="IAnjutaMarkable*"/>
            </parameter>
            <parameter name="marker" transfer-ownership="none">
              <doc xml:whitespace="preserve">Marker to delete.</doc>
              <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_marker_set">
        <callback name="is_marker_set" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the marker is set at the location, other false.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Markable" c:type="IAnjutaMarkable*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <doc xml:whitespace="preserve">Location to check.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="marker" transfer-ownership="none">
              <doc xml:whitespace="preserve">Marker to check.</doc>
              <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="location_from_handle">
        <callback name="location_from_handle" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Current location where the marker was set.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Markable" c:type="IAnjutaMarkable*"/>
            </parameter>
            <parameter name="handle" transfer-ownership="none">
              <doc xml:whitespace="preserve">Handle of location.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="mark">
        <callback name="mark" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Handle of the location marked. Can be used later to obtain new location, if it has been moved due to addetions/deletions in the implementor object.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Markable" c:type="IAnjutaMarkable*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <doc xml:whitespace="preserve">Location at which the marker to set.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="marker" transfer-ownership="none">
              <doc xml:whitespace="preserve">Type of marker to be used</doc>
              <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
            </parameter>
            <parameter name="tooltip" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">optional tooltip displayed with the marker</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unmark">
        <callback name="unmark" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Markable" c:type="IAnjutaMarkable*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <doc xml:whitespace="preserve">Location where the marker is set.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="marker" transfer-ownership="none">
              <doc xml:whitespace="preserve">The marker to unset.</doc>
              <type name="MarkableMarker" c:type="IAnjutaMarkableMarker"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="MarkableMarker"
                 glib:type-name="IAnjutaMarkableMarker"
                 glib:get-type="ianjuta_markable_marker_get_type"
                 c:type="IAnjutaMarkableMarker">
      <doc xml:whitespace="preserve">This enumeration is used to specify the pixmap used for the marker</doc>
      <member name="linemarker"
              value="0"
              c:identifier="IANJUTA_MARKABLE_LINEMARKER"
              glib:nick="linemarker"/>
      <member name="bookmark"
              value="1"
              c:identifier="IANJUTA_MARKABLE_BOOKMARK"
              glib:nick="bookmark"/>
      <member name="message"
              value="2"
              c:identifier="IANJUTA_MARKABLE_MESSAGE"
              glib:nick="message"/>
      <member name="breakpoint_disabled"
              value="3"
              c:identifier="IANJUTA_MARKABLE_BREAKPOINT_DISABLED"
              glib:nick="breakpoint-disabled"/>
      <member name="breakpoint_enabled"
              value="4"
              c:identifier="IANJUTA_MARKABLE_BREAKPOINT_ENABLED"
              glib:nick="breakpoint-enabled"/>
      <member name="program_counter"
              value="5"
              c:identifier="IANJUTA_MARKABLE_PROGRAM_COUNTER"
              glib:nick="program-counter"/>
    </enumeration>
    <interface name="MessageManager"
               c:symbol-prefix="message_manager"
               c:type="IAnjutaMessageManager"
               glib:type-name="IAnjutaMessageManager"
               glib:get-type="ianjuta_message_manager_get_type"
               glib:type-struct="MessageManagerIface">
      <virtual-method name="add_view"
                      invoker="add_view"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Adds a new view to the message-manager</doc>
        <return-value>
          <doc xml:whitespace="preserve">The new message-view</doc>
          <type name="MessageView" c:type="IAnjutaMessageView*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name/Title of the new view</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Path to an icon or ""</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_all_views"
                      invoker="get_all_views"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get all message-views</doc>
        <return-value>
          <doc xml:whitespace="preserve">A GList* of all views. You must not manipulate the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MessageView"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="get_current_view"
                      invoker="get_current_view"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the view with is currently on top of
the notebook or NULL if the message-manager is empty.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Current view; #IAnjutaMessageView object. NULL, if there is no views.</doc>
          <type name="MessageView" c:type="IAnjutaMessageView*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_view_by_name"
                      invoker="get_view_by_name"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get the view with the given name or NULL if
it does not exist.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The message-view or NULL</doc>
          <type name="MessageView" c:type="IAnjutaMessageView*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name/Title of the view</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_view" invoker="remove_view" throws="1">
        <doc xml:whitespace="preserve">Remove view from the message-manager. The view
will become invalid.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">The view to remove</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_current_view"
                      invoker="set_current_view"
                      throws="1">
        <doc xml:whitespace="preserve">Set view to be on top of the notebook.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_view_icon" invoker="set_view_icon" throws="1">
        <doc xml:whitespace="preserve">Sets the icon of view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sets the icon of view.</doc>
            <type name="GdkPixbuf.PixbufAnimation"
                  c:type="GdkPixbufAnimation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_view_icon_from_stock"
                      invoker="set_view_icon_from_stock"
                      throws="1">
        <doc xml:whitespace="preserve">Sets the icon of view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sets the icon of view.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_view_title"
                      invoker="set_view_title"
                      throws="1">
        <doc xml:whitespace="preserve">Sets the title of view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sets the title of view.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_view"
              c:identifier="ianjuta_message_manager_add_view"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Adds a new view to the message-manager</doc>
        <return-value>
          <doc xml:whitespace="preserve">The new message-view</doc>
          <type name="MessageView" c:type="IAnjutaMessageView*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name/Title of the new view</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Path to an icon or ""</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_all_views"
              c:identifier="ianjuta_message_manager_get_all_views"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get all message-views</doc>
        <return-value>
          <doc xml:whitespace="preserve">A GList* of all views. You must not manipulate the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MessageView"/>
          </type>
        </return-value>
      </method>
      <method name="get_current_view"
              c:identifier="ianjuta_message_manager_get_current_view"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the view with is currently on top of
the notebook or NULL if the message-manager is empty.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Current view; #IAnjutaMessageView object. NULL, if there is no views.</doc>
          <type name="MessageView" c:type="IAnjutaMessageView*"/>
        </return-value>
      </method>
      <method name="get_view_by_name"
              c:identifier="ianjuta_message_manager_get_view_by_name"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get the view with the given name or NULL if
it does not exist.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The message-view or NULL</doc>
          <type name="MessageView" c:type="IAnjutaMessageView*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name/Title of the view</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_view"
              c:identifier="ianjuta_message_manager_remove_view"
              throws="1">
        <doc xml:whitespace="preserve">Remove view from the message-manager. The view
will become invalid.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">The view to remove</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_current_view"
              c:identifier="ianjuta_message_manager_set_current_view"
              throws="1">
        <doc xml:whitespace="preserve">Set view to be on top of the notebook.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_view_icon"
              c:identifier="ianjuta_message_manager_set_view_icon"
              throws="1">
        <doc xml:whitespace="preserve">Sets the icon of view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sets the icon of view.</doc>
            <type name="GdkPixbuf.PixbufAnimation"
                  c:type="GdkPixbufAnimation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_view_icon_from_stock"
              c:identifier="ianjuta_message_manager_set_view_icon_from_stock"
              throws="1">
        <doc xml:whitespace="preserve">Sets the icon of view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sets the icon of view.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_view_title"
              c:identifier="ianjuta_message_manager_set_view_title"
              throws="1">
        <doc xml:whitespace="preserve">Sets the title of view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">A message view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sets the title of view.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <enumeration name="MessageManagerError"
                 glib:type-name="IAnjutaMessageManagerError"
                 glib:get-type="ianjuta_message_manager_error_get_type"
                 c:type="IAnjutaMessageManagerError"
                 glib:error-domain="ianjuta-message-manager-quark">
      <member name="doesnt_exist"
              value="0"
              c:identifier="IANJUTA_MESSAGE_MANAGER_DOESNT_EXIST"
              glib:nick="doesnt-exist"/>
      <function name="quark"
                c:identifier="ianjuta_message_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="MessageManagerIface"
            c:type="IAnjutaMessageManagerIface"
            glib:is-gtype-struct-for="MessageManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="add_view" introspectable="0">
        <callback name="add_view" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">The new message-view</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Name/Title of the new view</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="icon" transfer-ownership="none">
              <doc xml:whitespace="preserve">Path to an icon or ""</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_all_views" introspectable="0">
        <callback name="get_all_views" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">A GList* of all views. You must not manipulate the list.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="MessageView"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_current_view" introspectable="0">
        <callback name="get_current_view" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">Current view; #IAnjutaMessageView object. NULL, if there is no views.</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_view_by_name" introspectable="0">
        <callback name="get_view_by_name" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">The message-view or NULL</doc>
            <type name="MessageView" c:type="IAnjutaMessageView*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Name/Title of the view</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_view">
        <callback name="remove_view" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:whitespace="preserve">The view to remove</doc>
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_current_view">
        <callback name="set_current_view" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:whitespace="preserve">A message view</doc>
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_view_icon">
        <callback name="set_view_icon" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:whitespace="preserve">A message view</doc>
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="icon" transfer-ownership="none">
              <doc xml:whitespace="preserve">Sets the icon of view.</doc>
              <type name="GdkPixbuf.PixbufAnimation"
                    c:type="GdkPixbufAnimation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_view_icon_from_stock">
        <callback name="set_view_icon_from_stock" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:whitespace="preserve">A message view</doc>
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="icon" transfer-ownership="none">
              <doc xml:whitespace="preserve">Sets the icon of view.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_view_title">
        <callback name="set_view_title" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageManager" c:type="IAnjutaMessageManager*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:whitespace="preserve">A message view</doc>
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <doc xml:whitespace="preserve">Sets the title of view.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="MessageView"
               c:symbol-prefix="message_view"
               c:type="IAnjutaMessageView"
               glib:type-name="IAnjutaMessageView"
               glib:get-type="ianjuta_message_view_get_type"
               glib:type-struct="MessageViewIface">
      <function name="error_quark"
                c:identifier="ianjuta_message_view_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="append" invoker="append" throws="1">
        <doc xml:whitespace="preserve">Append the message with summary displayed and details displayed as tooltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">type of the message</doc>
            <type name="MessageViewType" c:type="IAnjutaMessageViewType"/>
          </parameter>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:whitespace="preserve">summary of the message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="details" transfer-ownership="none">
            <doc xml:whitespace="preserve">details of the message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="buffer_append" invoker="buffer_append" throws="1">
        <doc xml:whitespace="preserve">Appends the text in buffer. Flushes the buffer where a newline is found.
by emiiting buffer_flushed signal. The string is expected to be utf8.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">text to show as message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="buffer_flushed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear" invoker="clear" throws="1">
        <doc xml:whitespace="preserve">Clear all messages in buffer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_all_messages"
                      invoker="get_all_messages"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Get a list of all messages. The list has to be freed</doc>
        <return-value>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="get_current_message"
                      invoker="get_current_message"
                      throws="1">
        <doc xml:whitespace="preserve">Get the currently selected message</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="message_clicked">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="select_next" invoker="select_next" throws="1">
        <doc xml:whitespace="preserve">Select next message (of type INFO, WARNING or ERROR)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="select_previous"
                      invoker="select_previous"
                      throws="1">
        <doc xml:whitespace="preserve">Select previous message</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="append"
              c:identifier="ianjuta_message_view_append"
              throws="1">
        <doc xml:whitespace="preserve">Append the message with summary displayed and details displayed as tooltip</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">type of the message</doc>
            <type name="MessageViewType" c:type="IAnjutaMessageViewType"/>
          </parameter>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:whitespace="preserve">summary of the message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="details" transfer-ownership="none">
            <doc xml:whitespace="preserve">details of the message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="buffer_append"
              c:identifier="ianjuta_message_view_buffer_append"
              throws="1">
        <doc xml:whitespace="preserve">Appends the text in buffer. Flushes the buffer where a newline is found.
by emiiting buffer_flushed signal. The string is expected to be utf8.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">text to show as message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear"
              c:identifier="ianjuta_message_view_clear"
              throws="1">
        <doc xml:whitespace="preserve">Clear all messages in buffer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_all_messages"
              c:identifier="ianjuta_message_view_get_all_messages"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Get a list of all messages. The list has to be freed</doc>
        <return-value>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="get_current_message"
              c:identifier="ianjuta_message_view_get_current_message"
              throws="1">
        <doc xml:whitespace="preserve">Get the currently selected message</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="select_next"
              c:identifier="ianjuta_message_view_select_next"
              throws="1">
        <doc xml:whitespace="preserve">Select next message (of type INFO, WARNING or ERROR)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="select_previous"
              c:identifier="ianjuta_message_view_select_previous"
              throws="1">
        <doc xml:whitespace="preserve">Select previous message</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <glib:signal name="buffer-flushed" when="last">
        <doc xml:whitespace="preserve">Emitted when #ianjuta_message_view_buffer_append found a newline</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">the current line</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="message-clicked" when="last">
        <doc xml:whitespace="preserve">Emitted when the user clicks on a message</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="message" transfer-ownership="none">
            <doc xml:whitespace="preserve">text of the clicked message</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="MessageViewIface"
            c:type="IAnjutaMessageViewIface"
            glib:is-gtype-struct-for="MessageView">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="buffer_flushed">
        <callback name="buffer_flushed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="message_clicked">
        <callback name="message_clicked">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="append">
        <callback name="append" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <doc xml:whitespace="preserve">type of the message</doc>
              <type name="MessageViewType" c:type="IAnjutaMessageViewType"/>
            </parameter>
            <parameter name="summary" transfer-ownership="none">
              <doc xml:whitespace="preserve">summary of the message</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="details" transfer-ownership="none">
              <doc xml:whitespace="preserve">details of the message</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="buffer_append">
        <callback name="buffer_append" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <doc xml:whitespace="preserve">text to show as message</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear">
        <callback name="clear" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_all_messages" introspectable="0">
        <callback name="get_all_messages" introspectable="0" throws="1">
          <return-value>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_current_message">
        <callback name="get_current_message" throws="1">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_next">
        <callback name="select_next" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_previous">
        <callback name="select_previous" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="MessageView" c:type="IAnjutaMessageView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="MessageViewType"
                 glib:type-name="IAnjutaMessageViewType"
                 glib:get-type="ianjuta_message_view_type_get_type"
                 c:type="IAnjutaMessageViewType">
      <doc xml:whitespace="preserve">Speficy the type ot the message added to the message view</doc>
      <member name="type_normal"
              value="0"
              c:identifier="IANJUTA_MESSAGE_VIEW_TYPE_NORMAL"
              glib:nick="type-normal"/>
      <member name="type_info"
              value="1"
              c:identifier="IANJUTA_MESSAGE_VIEW_TYPE_INFO"
              glib:nick="type-info"/>
      <member name="type_warning"
              value="2"
              c:identifier="IANJUTA_MESSAGE_VIEW_TYPE_WARNING"
              glib:nick="type-warning"/>
      <member name="type_error"
              value="3"
              c:identifier="IANJUTA_MESSAGE_VIEW_TYPE_ERROR"
              glib:nick="type-error"/>
    </enumeration>
    <constant name="PROJECT_MANAGER_CURRENT_PROJECT"
              value="project_manager_current_project"
              c:type="IANJUTA_PROJECT_MANAGER_CURRENT_PROJECT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROJECT_MANAGER_CURRENT_URI"
              value="project_manager_current_uri"
              c:type="IANJUTA_PROJECT_MANAGER_CURRENT_URI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PROJECT_MANAGER_PROJECT_ROOT_URI"
              value="project_root_uri"
              c:type="IANJUTA_PROJECT_MANAGER_PROJECT_ROOT_URI">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <interface name="PluginFactory"
               c:symbol-prefix="plugin_factory"
               c:type="IAnjutaPluginFactory"
               glib:type-name="IAnjutaPluginFactory"
               glib:get-type="ianjuta_plugin_factory_get_type"
               glib:type-struct="PluginFactoryIface">
      <virtual-method name="new_plugin"
                      invoker="new_plugin"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Create a new AnjutaPlugin object from the plugin information handle,
give it the AnjutaShell object as argument.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a new plugin object</doc>
          <type name="Anjuta.Plugin" c:type="AnjutaPlugin*"/>
        </return-value>
        <parameters>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:whitespace="preserve">Plugin information</doc>
            <type name="Anjuta.PluginHandle" c:type="AnjutaPluginHandle*"/>
          </parameter>
          <parameter name="shell" transfer-ownership="none">
            <doc xml:whitespace="preserve">Anjuta shell</doc>
            <type name="Anjuta.Shell" c:type="AnjutaShell*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="new_plugin"
              c:identifier="ianjuta_plugin_factory_new_plugin"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Create a new AnjutaPlugin object from the plugin information handle,
give it the AnjutaShell object as argument.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a new plugin object</doc>
          <type name="Anjuta.Plugin" c:type="AnjutaPlugin*"/>
        </return-value>
        <parameters>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:whitespace="preserve">Plugin information</doc>
            <type name="Anjuta.PluginHandle" c:type="AnjutaPluginHandle*"/>
          </parameter>
          <parameter name="shell" transfer-ownership="none">
            <doc xml:whitespace="preserve">Anjuta shell</doc>
            <type name="Anjuta.Shell" c:type="AnjutaShell*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <enumeration name="PluginFactoryError"
                 glib:type-name="IAnjutaPluginFactoryError"
                 glib:get-type="ianjuta_plugin_factory_error_get_type"
                 c:type="IAnjutaPluginFactoryError"
                 glib:error-domain="ianjuta-plugin-factory-quark">
      <doc xml:whitespace="preserve">These enumeration is used to specify errors.</doc>
      <member name="ok"
              value="0"
              c:identifier="IANJUTA_PLUGIN_FACTORY_OK"
              glib:nick="ok"/>
      <member name="missing_location"
              value="1"
              c:identifier="IANJUTA_PLUGIN_FACTORY_MISSING_LOCATION"
              glib:nick="missing-location"/>
      <member name="missing_type"
              value="2"
              c:identifier="IANJUTA_PLUGIN_FACTORY_MISSING_TYPE"
              glib:nick="missing-type"/>
      <member name="missing_module"
              value="3"
              c:identifier="IANJUTA_PLUGIN_FACTORY_MISSING_MODULE"
              glib:nick="missing-module"/>
      <member name="invalid_module"
              value="4"
              c:identifier="IANJUTA_PLUGIN_FACTORY_INVALID_MODULE"
              glib:nick="invalid-module"/>
      <member name="missing_function"
              value="5"
              c:identifier="IANJUTA_PLUGIN_FACTORY_MISSING_FUNCTION"
              glib:nick="missing-function"/>
      <member name="invalid_type"
              value="6"
              c:identifier="IANJUTA_PLUGIN_FACTORY_INVALID_TYPE"
              glib:nick="invalid-type"/>
      <member name="unknown_error"
              value="7"
              c:identifier="IANJUTA_PLUGIN_FACTORY_UNKNOWN_ERROR"
              glib:nick="unknown-error"/>
      <function name="quark" c:identifier="ianjuta_plugin_factory_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="PluginFactoryIface"
            c:type="IAnjutaPluginFactoryIface"
            glib:is-gtype-struct-for="PluginFactory">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="new_plugin" introspectable="0">
        <callback name="new_plugin" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">a new plugin object</doc>
            <type name="Anjuta.Plugin" c:type="AnjutaPlugin*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="PluginFactory" c:type="IAnjutaPluginFactory*"/>
            </parameter>
            <parameter name="handle" transfer-ownership="none">
              <doc xml:whitespace="preserve">Plugin information</doc>
              <type name="Anjuta.PluginHandle" c:type="AnjutaPluginHandle*"/>
            </parameter>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:whitespace="preserve">Anjuta shell</doc>
              <type name="Anjuta.Shell" c:type="AnjutaShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Preferences"
               c:symbol-prefix="preferences"
               c:type="IAnjutaPreferences"
               glib:type-name="IAnjutaPreferences"
               glib:get-type="ianjuta_preferences_get_type"
               glib:type-struct="PreferencesIface">
      <function name="error_quark"
                c:identifier="ianjuta_preferences_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="merge" invoker="merge" throws="1">
        <doc xml:whitespace="preserve">When called, the plugin should install it's preferences</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prefs" transfer-ownership="none">
            <doc xml:whitespace="preserve">AnjutaPreferences to install to</doc>
            <type name="Anjuta.Preferences" c:type="AnjutaPreferences*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unmerge" invoker="unmerge" throws="1">
        <doc xml:whitespace="preserve">When called, the plugin should uninstall it's preferences</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prefs" transfer-ownership="none">
            <doc xml:whitespace="preserve">AnjutaPreferences to install to</doc>
            <type name="Anjuta.Preferences" c:type="AnjutaPreferences*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="merge" c:identifier="ianjuta_preferences_merge" throws="1">
        <doc xml:whitespace="preserve">When called, the plugin should install it's preferences</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prefs" transfer-ownership="none">
            <doc xml:whitespace="preserve">AnjutaPreferences to install to</doc>
            <type name="Anjuta.Preferences" c:type="AnjutaPreferences*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unmerge"
              c:identifier="ianjuta_preferences_unmerge"
              throws="1">
        <doc xml:whitespace="preserve">When called, the plugin should uninstall it's preferences</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prefs" transfer-ownership="none">
            <doc xml:whitespace="preserve">AnjutaPreferences to install to</doc>
            <type name="Anjuta.Preferences" c:type="AnjutaPreferences*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="PreferencesIface"
            c:type="IAnjutaPreferencesIface"
            glib:is-gtype-struct-for="Preferences">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="merge">
        <callback name="merge" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Preferences" c:type="IAnjutaPreferences*"/>
            </parameter>
            <parameter name="prefs" transfer-ownership="none">
              <doc xml:whitespace="preserve">AnjutaPreferences to install to</doc>
              <type name="Anjuta.Preferences" c:type="AnjutaPreferences*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unmerge">
        <callback name="unmerge" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Preferences" c:type="IAnjutaPreferences*"/>
            </parameter>
            <parameter name="prefs" transfer-ownership="none">
              <doc xml:whitespace="preserve">AnjutaPreferences to install to</doc>
              <type name="Anjuta.Preferences" c:type="AnjutaPreferences*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Print"
               c:symbol-prefix="print"
               c:type="IAnjutaPrint"
               glib:type-name="IAnjutaPrint"
               glib:get-type="ianjuta_print_get_type"
               glib:type-struct="PrintIface">
      <function name="error_quark" c:identifier="ianjuta_print_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="print" invoker="print" throws="1">
        <doc xml:whitespace="preserve">Show print preview dialog</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="print_preview" invoker="print_preview" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="print" c:identifier="ianjuta_print_print" throws="1">
        <doc xml:whitespace="preserve">Show print preview dialog</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="print_preview"
              c:identifier="ianjuta_print_print_preview"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="PrintIface"
            c:type="IAnjutaPrintIface"
            glib:is-gtype-struct-for="Print">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="print">
        <callback name="print" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Print" c:type="IAnjutaPrint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="print_preview">
        <callback name="print_preview" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Print" c:type="IAnjutaPrint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Project"
               c:symbol-prefix="project"
               c:type="IAnjutaProject"
               glib:type-name="IAnjutaProject"
               glib:get-type="ianjuta_project_get_type"
               glib:type-struct="ProjectIface">
      <virtual-method name="add_node_after"
                      invoker="add_node_after"
                      throws="1">
        <doc xml:whitespace="preserve">Create a new node and insert it after sibling</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The new node, NULL if error</doc>
          <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Parent</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="sibling" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Sibling</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node type</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
          <parameter name="file" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional file object for the node</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional name for the node</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_node_before"
                      invoker="add_node_before"
                      throws="1">
        <doc xml:whitespace="preserve">Create a new node and insert it before sibling</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The new node, NULL if error</doc>
          <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Parent</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="sibling" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Sibling</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node type</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
          <parameter name="file" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional file object for the node</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional name for the node</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="file_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_node_info" invoker="get_node_info" throws="1">
        <doc xml:whitespace="preserve">Return a list of possible node;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A list containing information on all node supported by the project.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Anjuta.ProjectNodeInfo"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="get_root" invoker="get_root" throws="1">
        <doc xml:whitespace="preserve">Get root_node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The root node</doc>
          <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="is_loaded" invoker="is_loaded" throws="1">
        <doc xml:whitespace="preserve">Return TRUE if the project is loaded;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the project is completely loaded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="load_node" invoker="load_node" throws="1">
        <doc xml:whitespace="preserve">Reload a project node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node has been loaded without error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Project node to reload</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_loaded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="node_saved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_node" invoker="remove_node" throws="1">
        <doc xml:whitespace="preserve">Remove a node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node can be removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_property"
                      invoker="remove_property"
                      throws="1">
        <doc xml:whitespace="preserve">Remove a property of the node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node is removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Name for map property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="save_node" invoker="save_node" throws="1">
        <doc xml:whitespace="preserve">Save a project node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node has been saved without error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Project node to save</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_property" invoker="set_property" throws="1">
        <doc xml:whitespace="preserve">Change a properties on node.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The new property of NULL if the property cannot be set</doc>
          <type name="Anjuta.ProjectProperty" c:type="AnjutaProjectProperty*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Name for map property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_node_after"
              c:identifier="ianjuta_project_add_node_after"
              throws="1">
        <doc xml:whitespace="preserve">Create a new node and insert it after sibling</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The new node, NULL if error</doc>
          <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Parent</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="sibling" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Sibling</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node type</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
          <parameter name="file" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional file object for the node</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional name for the node</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_node_before"
              c:identifier="ianjuta_project_add_node_before"
              throws="1">
        <doc xml:whitespace="preserve">Create a new node and insert it before sibling</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The new node, NULL if error</doc>
          <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Parent</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="sibling" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Sibling</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node type</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
          <parameter name="file" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional file object for the node</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Optional name for the node</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_node_info"
              c:identifier="ianjuta_project_get_node_info"
              throws="1">
        <doc xml:whitespace="preserve">Return a list of possible node;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A list containing information on all node supported by the project.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Anjuta.ProjectNodeInfo"/>
          </type>
        </return-value>
      </method>
      <method name="get_root"
              c:identifier="ianjuta_project_get_root"
              throws="1">
        <doc xml:whitespace="preserve">Get root_node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The root node</doc>
          <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
        </return-value>
      </method>
      <method name="is_loaded"
              c:identifier="ianjuta_project_is_loaded"
              throws="1">
        <doc xml:whitespace="preserve">Return TRUE if the project is loaded;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the project is completely loaded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="load_node"
              c:identifier="ianjuta_project_load_node"
              throws="1">
        <doc xml:whitespace="preserve">Reload a project node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node has been loaded without error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Project node to reload</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_node"
              c:identifier="ianjuta_project_remove_node"
              throws="1">
        <doc xml:whitespace="preserve">Remove a node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node can be removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_property"
              c:identifier="ianjuta_project_remove_property"
              throws="1">
        <doc xml:whitespace="preserve">Remove a property of the node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node is removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Name for map property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_node"
              c:identifier="ianjuta_project_save_node"
              throws="1">
        <doc xml:whitespace="preserve">Save a project node</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the node has been saved without error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Project node to save</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property"
              c:identifier="ianjuta_project_set_property"
              throws="1">
        <doc xml:whitespace="preserve">Change a properties on node.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The new property of NULL if the property cannot be set</doc>
          <type name="Anjuta.ProjectProperty" c:type="AnjutaProjectProperty*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">Name for map property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="file-changed" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when the project is changed on the disk. The
corresponding node has to be reloaded.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Node to be reloaded.</doc>
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-changed" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when a node is changed by a function of this
interface. The error argument is not NULL if the change was not
possible. The corresponding node need to be saved.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Changed node.</doc>
            <type name="gpointer"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:whitespace="preserve">Error while changing node</doc>
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-loaded" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when a node is loaded. It returns an error if the
load operation fail.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Loaded node.</doc>
            <type name="gpointer"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:whitespace="preserve">Error while loading node</doc>
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="node-saved" when="last">
        <doc xml:whitespace="preserve">This signal is emitted when a node is saved. It returns an error if the
save operation fail.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">Saved node.</doc>
            <type name="gpointer"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:whitespace="preserve">Error while saving node</doc>
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <interface name="ProjectBackend"
               c:symbol-prefix="project_backend"
               c:type="IAnjutaProjectBackend"
               glib:type-name="IAnjutaProjectBackend"
               glib:get-type="ianjuta_project_backend_get_type"
               glib:type-struct="ProjectBackendIface">
      <function name="error_quark"
                c:identifier="ianjuta_project_backend_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="new_project" invoker="new_project" throws="1">
        <doc xml:whitespace="preserve">Create a new Anjuta project.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">An object implementing the #IAnjutaProject interface.</doc>
          <type name="Project" c:type="IAnjutaProject*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">Project file or directory</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="probe" invoker="probe" throws="1">
        <doc xml:whitespace="preserve">Check if the directory contains a project supported by this
backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if the project is invalid and &gt; 0 if the project is valid.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="new_project"
              c:identifier="ianjuta_project_backend_new_project"
              throws="1">
        <doc xml:whitespace="preserve">Create a new Anjuta project.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">An object implementing the #IAnjutaProject interface.</doc>
          <type name="Project" c:type="IAnjutaProject*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">Project file or directory</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="probe"
              c:identifier="ianjuta_project_backend_probe"
              throws="1">
        <doc xml:whitespace="preserve">Check if the directory contains a project supported by this
backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">0 if the project is invalid and &gt; 0 if the project is valid.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="ProjectBackendIface"
            c:type="IAnjutaProjectBackendIface"
            glib:is-gtype-struct-for="ProjectBackend">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="new_project">
        <callback name="new_project" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">An object implementing the #IAnjutaProject interface.</doc>
            <type name="Project" c:type="IAnjutaProject*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectBackend" c:type="IAnjutaProjectBackend*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">Project file or directory</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="probe">
        <callback name="probe" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">0 if the project is invalid and &gt; 0 if the project is valid.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectBackend" c:type="IAnjutaProjectBackend*"/>
            </parameter>
            <parameter name="directory" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="ProjectChooser"
               c:symbol-prefix="project_chooser"
               c:type="IAnjutaProjectChooser"
               glib:type-name="IAnjutaProjectChooser"
               glib:get-type="ianjuta_project_chooser_get_type"
               glib:type-struct="ProjectChooserIface">
      <function name="error_quark"
                c:identifier="ianjuta_project_chooser_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_selected" invoker="get_selected" throws="1">
        <doc xml:whitespace="preserve">Gets the currently selected element in the project chooser.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GFile corresponding to the selected element in the project view or %NULL if no valid node is selected. The file is owned by the widget If you want to keep a pointer to the file you must add a refcount using g_object_ref().</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set_project_model"
                      invoker="set_project_model"
                      throws="1">
        <doc xml:whitespace="preserve">Initialize a project chooser button allowing to select a parent node
where you can add the nodes of type child_type.
As special cases with
&lt;variablelist&gt;
  &lt;varlistentry&gt;
    &lt;term&gt;ANJUTA_PROJECT_ROOT&lt;/term&gt;
    &lt;listitem&gt;&lt;para&gt;all nodes are included&lt;/para&gt;&lt;/listitem&gt;
  &lt;/varlistentry&gt;
  &lt;varlistentry&gt;
    &lt;term&gt;ANJUTA_PROJECT_MODULE&lt;/term&gt;
    &lt;listitem&gt;&lt;para&gt;only modules are included, this can be used
    to add a new package. While ANJUTA_PROJECT_PACKAGE allows you
    to select a target using a package.&lt;/para&gt;&lt;/listitem&gt;
  &lt;/varlistentry&gt;
&lt;/variablelist&gt;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="manager" transfer-ownership="none">
            <doc xml:whitespace="preserve">A project manager</doc>
            <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
          </parameter>
          <parameter name="child_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_selected"
              c:identifier="ianjuta_project_chooser_get_selected"
              throws="1">
        <doc xml:whitespace="preserve">Gets the currently selected element in the project chooser.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GFile corresponding to the selected element in the project view or %NULL if no valid node is selected. The file is owned by the widget If you want to keep a pointer to the file you must add a refcount using g_object_ref().</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </method>
      <method name="set_project_model"
              c:identifier="ianjuta_project_chooser_set_project_model"
              throws="1">
        <doc xml:whitespace="preserve">Initialize a project chooser button allowing to select a parent node
where you can add the nodes of type child_type.
As special cases with
&lt;variablelist&gt;
  &lt;varlistentry&gt;
    &lt;term&gt;ANJUTA_PROJECT_ROOT&lt;/term&gt;
    &lt;listitem&gt;&lt;para&gt;all nodes are included&lt;/para&gt;&lt;/listitem&gt;
  &lt;/varlistentry&gt;
  &lt;varlistentry&gt;
    &lt;term&gt;ANJUTA_PROJECT_MODULE&lt;/term&gt;
    &lt;listitem&gt;&lt;para&gt;only modules are included, this can be used
    to add a new package. While ANJUTA_PROJECT_PACKAGE allows you
    to select a target using a package.&lt;/para&gt;&lt;/listitem&gt;
  &lt;/varlistentry&gt;
&lt;/variablelist&gt;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="manager" transfer-ownership="none">
            <doc xml:whitespace="preserve">A project manager</doc>
            <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
          </parameter>
          <parameter name="child_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="last">
        <doc xml:whitespace="preserve">Emitted when the selected node is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="ProjectChooserIface"
            c:type="IAnjutaProjectChooserIface"
            glib:is-gtype-struct-for="ProjectChooser">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectChooser" c:type="IAnjutaProjectChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selected">
        <callback name="get_selected" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to the selected element in the project view or %NULL if no valid node is selected. The file is owned by the widget If you want to keep a pointer to the file you must add a refcount using g_object_ref().</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectChooser" c:type="IAnjutaProjectChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_project_model">
        <callback name="set_project_model" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if sucessful, other FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectChooser" c:type="IAnjutaProjectChooser*"/>
            </parameter>
            <parameter name="manager" transfer-ownership="none">
              <doc xml:whitespace="preserve">A project manager</doc>
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="child_type" transfer-ownership="none">
              <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
              <type name="Anjuta.ProjectNodeType"
                    c:type="AnjutaProjectNodeType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ProjectError"
                 glib:type-name="IAnjutaProjectError"
                 glib:get-type="ianjuta_project_error_get_type"
                 c:type="IAnjutaProjectError"
                 glib:error-domain="ianjuta-project-quark">
      <member name="error_success"
              value="0"
              c:identifier="IANJUTA_PROJECT_ERROR_SUCCESS"
              glib:nick="error-success"/>
      <member name="error_doesnt_exist"
              value="1"
              c:identifier="IANJUTA_PROJECT_ERROR_DOESNT_EXIST"
              glib:nick="error-doesnt-exist"/>
      <member name="error_already_exists"
              value="2"
              c:identifier="IANJUTA_PROJECT_ERROR_ALREADY_EXISTS"
              glib:nick="error-already-exists"/>
      <member name="error_validation_failed"
              value="3"
              c:identifier="IANJUTA_PROJECT_ERROR_VALIDATION_FAILED"
              glib:nick="error-validation-failed"/>
      <member name="error_project_malformed"
              value="4"
              c:identifier="IANJUTA_PROJECT_ERROR_PROJECT_MALFORMED"
              glib:nick="error-project-malformed"/>
      <member name="error_wrong_parent"
              value="5"
              c:identifier="IANJUTA_PROJECT_ERROR_WRONG_PARENT"
              glib:nick="error-wrong-parent"/>
      <member name="error_not_supported"
              value="6"
              c:identifier="IANJUTA_PROJECT_ERROR_NOT_SUPPORTED"
              glib:nick="error-not-supported"/>
      <member name="error_general_failure"
              value="7"
              c:identifier="IANJUTA_PROJECT_ERROR_GENERAL_FAILURE"
              glib:nick="error-general-failure"/>
      <function name="quark" c:identifier="ianjuta_project_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="ProjectIface"
            c:type="IAnjutaProjectIface"
            glib:is-gtype-struct-for="Project">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="file_changed">
        <callback name="file_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_changed">
        <callback name="node_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_loaded">
        <callback name="node_loaded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="node_saved">
        <callback name="node_saved">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_node_after">
        <callback name="add_node_after" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The new node, NULL if error</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="parent" transfer-ownership="none">
              <doc xml:whitespace="preserve">Parent</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
            <parameter name="sibling" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Sibling</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <doc xml:whitespace="preserve">Node type</doc>
              <type name="Anjuta.ProjectNodeType"
                    c:type="AnjutaProjectNodeType"/>
            </parameter>
            <parameter name="file" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Optional file object for the node</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Optional name for the node</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_node_before">
        <callback name="add_node_before" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The new node, NULL if error</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="parent" transfer-ownership="none">
              <doc xml:whitespace="preserve">Parent</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
            <parameter name="sibling" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Sibling</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <doc xml:whitespace="preserve">Node type</doc>
              <type name="Anjuta.ProjectNodeType"
                    c:type="AnjutaProjectNodeType"/>
            </parameter>
            <parameter name="file" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Optional file object for the node</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Optional name for the node</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_node_info">
        <callback name="get_node_info" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">A list containing information on all node supported by the project.</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="Anjuta.ProjectNodeInfo"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_root">
        <callback name="get_root" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The root node</doc>
            <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_loaded">
        <callback name="is_loaded" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the project is completely loaded.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="load_node">
        <callback name="load_node" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the node has been loaded without error</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <doc xml:whitespace="preserve">Project node to reload</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_node">
        <callback name="remove_node" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the node can be removed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <doc xml:whitespace="preserve">Node</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_property">
        <callback name="remove_property" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the node is removed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <doc xml:whitespace="preserve">Node</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Property</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Name for map property</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save_node">
        <callback name="save_node" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the node has been saved without error</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <doc xml:whitespace="preserve">Project node to save</doc>
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_property">
        <callback name="set_property" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The new property of NULL if the property cannot be set</doc>
            <type name="Anjuta.ProjectProperty"
                  c:type="AnjutaProjectProperty*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Project" c:type="IAnjutaProject*"/>
            </parameter>
            <parameter name="parent" transfer-ownership="none">
              <type name="Anjuta.ProjectNode" c:type="AnjutaProjectNode*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:whitespace="preserve">Property</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">Name for map property</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <doc xml:whitespace="preserve">Value</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="ProjectManager"
               c:symbol-prefix="project_manager"
               c:type="IAnjutaProjectManager"
               glib:type-name="IAnjutaProjectManager"
               glib:get-type="ianjuta_project_manager_get_type"
               glib:type-struct="ProjectManagerIface">
      <function name="error_quark"
                c:identifier="ianjuta_project_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="add_group" invoker="add_group" throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add a new group to the project. The user can select
a parent group different from the one set as default.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new group added in the project. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Group name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_group"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default parent group or %NULL if don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_source" invoker="add_source" throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add a file to the project. If the user selects
multiple files only the first source file is returned.

You can add non existing file. In this case the element_added
signal will be emitted with a non existing file. So it is
up to the caller to reemit this signal later when the file
is created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Source name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_target"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default target or group or %NULL if you don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_source_quiet"
                      invoker="add_source_quiet"
                      throws="1">
        <doc xml:whitespace="preserve">Adds a file to the project without prompting the user.

You can add non existing file. In this case the element_added
signal will be emitted with a non existing file. So it is
up to the caller to reemit this signal later when the file
is created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Source name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to the parent target or group.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_sources" invoker="add_sources" throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add several files to the project. Depending on the
project backend, it can be possible that the source files must
be located in a particular directory.

You can add non existing file. In this case the element_added
signal will be emitted with a non existing file. So it is
up to the caller to reemit this signal later when the file
is created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A list of #GFile corresponding to all new source files added in the project. You own the list with the the returned files; use g_list_free() and g_object_unref() on each file to release them.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="names" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sources name or URI to add.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="default_target"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default target or group or %NULL if don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_target" invoker="add_target" throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add a new target to the project. The user can select
a parent group different from the one set as default.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new target added in the project. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Target name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_group"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default parent group or %NULL if don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="element_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="element_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="element_selected">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_capabilities"
                      invoker="get_capabilities"
                      throws="1">
        <doc xml:whitespace="preserve">Gets the capabilites of project whether it can add group, target
sources etc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Supported capabilites.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_children" invoker="get_children" throws="1">
        <doc xml:whitespace="preserve">Recursively gets the list of all children below the corresponding
parent having the specify type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The list of #GFile corresponding to all children or %NULL if the element has no children with the corresponding type. Free the returned * list with g_list_free() and the files with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to the parent.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="children_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_current_project"
                      invoker="get_current_project"
                      throws="1">
        <doc xml:whitespace="preserve">Gets the current project.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the currently active project. NULL if none is there.</doc>
          <type name="Project" c:type="IAnjutaProject*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_elements" invoker="get_elements" throws="1">
        <doc xml:whitespace="preserve">Get a list of all elements of this type in the project.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Get list of #GFile corresponding to all valid elements or %NULL if there are no elements of this type. Free the returned list with g_list_free() and the files with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="element_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_packages" invoker="get_packages" throws="1">
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">the list of pkg-config packages that the current project requires in it's configure.ac. Can be NULL if there is no project opened currently or no package is required.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </virtual-method>
      <virtual-method name="get_parent"
                      invoker="get_parent"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Gets the parent of the corresponding child.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The parent of the child, or %NULL if the element is the root.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to one child.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_selected" invoker="get_selected" throws="1">
        <doc xml:whitespace="preserve">Gets the currently selected element in the project manager view.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the selected element in the project view. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_target_type"
                      invoker="get_target_type"
                      throws="1">
        <doc xml:whitespace="preserve">Get the type of the corresponding target: program, library...</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Return the type of the target.</doc>
          <type name="Anjuta.ProjectNodeType" c:type="AnjutaProjectNodeType"/>
        </return-value>
        <parameters>
          <parameter name="target" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to a target</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_targets" invoker="get_targets" throws="1">
        <doc xml:whitespace="preserve">Get a list of targets in the project with the corresponding type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A list of #GFile corresponding to each target of the requested type or %NULL if none exists. Free the returned list with g_list_free() and the files with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="target_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">type of the target</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_open" invoker="is_open" throws="1">
        <doc xml:whitespace="preserve">Gets whether a project is currently opened.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if a project is opened.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="project_loaded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_group"
              c:identifier="ianjuta_project_manager_add_group"
              throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add a new group to the project. The user can select
a parent group different from the one set as default.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new group added in the project. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Group name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_group"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default parent group or %NULL if don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_source"
              c:identifier="ianjuta_project_manager_add_source"
              throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add a file to the project. If the user selects
multiple files only the first source file is returned.

You can add non existing file. In this case the element_added
signal will be emitted with a non existing file. So it is
up to the caller to reemit this signal later when the file
is created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Source name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_target"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default target or group or %NULL if you don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_source_quiet"
              c:identifier="ianjuta_project_manager_add_source_quiet"
              throws="1">
        <doc xml:whitespace="preserve">Adds a file to the project without prompting the user.

You can add non existing file. In this case the element_added
signal will be emitted with a non existing file. So it is
up to the caller to reemit this signal later when the file
is created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Source name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to the parent target or group.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_sources"
              c:identifier="ianjuta_project_manager_add_sources"
              throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add several files to the project. Depending on the
project backend, it can be possible that the source files must
be located in a particular directory.

You can add non existing file. In this case the element_added
signal will be emitted with a non existing file. So it is
up to the caller to reemit this signal later when the file
is created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A list of #GFile corresponding to all new source files added in the project. You own the list with the the returned files; use g_list_free() and g_object_unref() on each file to release them.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="names" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sources name or URI to add.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="default_target"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default target or group or %NULL if don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_target"
              c:identifier="ianjuta_project_manager_add_target"
              throws="1">
        <doc xml:whitespace="preserve">Prompts the user to add a new target to the project. The user can select
a parent group different from the one set as default.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the new target added in the project. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Target name or URI.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_group"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">A #GFile corresponding to the default parent group or %NULL if don't care.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_capabilities"
              c:identifier="ianjuta_project_manager_get_capabilities"
              throws="1">
        <doc xml:whitespace="preserve">Gets the capabilites of project whether it can add group, target
sources etc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Supported capabilites.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_children"
              c:identifier="ianjuta_project_manager_get_children"
              throws="1">
        <doc xml:whitespace="preserve">Recursively gets the list of all children below the corresponding
parent having the specify type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The list of #GFile corresponding to all children or %NULL if the element has no children with the corresponding type. Free the returned * list with g_list_free() and the files with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to the parent.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="children_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_current_project"
              c:identifier="ianjuta_project_manager_get_current_project"
              throws="1">
        <doc xml:whitespace="preserve">Gets the current project.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the currently active project. NULL if none is there.</doc>
          <type name="Project" c:type="IAnjutaProject*"/>
        </return-value>
      </method>
      <method name="get_elements"
              c:identifier="ianjuta_project_manager_get_elements"
              throws="1">
        <doc xml:whitespace="preserve">Get a list of all elements of this type in the project.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Get list of #GFile corresponding to all valid elements or %NULL if there are no elements of this type. Free the returned list with g_list_free() and the files with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="element_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_packages"
              c:identifier="ianjuta_project_manager_get_packages"
              throws="1">
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">the list of pkg-config packages that the current project requires in it's configure.ac. Can be NULL if there is no project opened currently or no package is required.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="get_parent"
              c:identifier="ianjuta_project_manager_get_parent"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Gets the parent of the corresponding child.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The parent of the child, or %NULL if the element is the root.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to one child.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="ianjuta_project_manager_get_selected"
              throws="1">
        <doc xml:whitespace="preserve">Gets the currently selected element in the project manager view.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GFile corresponding to the selected element in the project view. You own the returned file; use g_object_unref() to release it.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </method>
      <method name="get_target_type"
              c:identifier="ianjuta_project_manager_get_target_type"
              throws="1">
        <doc xml:whitespace="preserve">Get the type of the corresponding target: program, library...</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Return the type of the target.</doc>
          <type name="Anjuta.ProjectNodeType" c:type="AnjutaProjectNodeType"/>
        </return-value>
        <parameters>
          <parameter name="target" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GFile corresponding to a target</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_targets"
              c:identifier="ianjuta_project_manager_get_targets"
              throws="1">
        <doc xml:whitespace="preserve">Get a list of targets in the project with the corresponding type.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A list of #GFile corresponding to each target of the requested type or %NULL if none exists. Free the returned list with g_list_free() and the files with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="target_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">type of the target</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_open"
              c:identifier="ianjuta_project_manager_is_open"
              throws="1">
        <doc xml:whitespace="preserve">Gets whether a project is currently opened.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if a project is opened.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <glib:signal name="element-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="element-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="element-selected" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="project-loaded" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="ProjectManagerIface"
            c:type="IAnjutaProjectManagerIface"
            glib:is-gtype-struct-for="ProjectManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="element_added">
        <callback name="element_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="element_removed">
        <callback name="element_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="element_selected">
        <callback name="element_selected">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="project_loaded">
        <callback name="project_loaded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_group">
        <callback name="add_group" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A #GFile corresponding to the new group added in the project. You own the returned file; use g_object_unref() to release it.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Group name or URI.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="default_group"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">A #GFile corresponding to the default parent group or %NULL if don't care.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_source">
        <callback name="add_source" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A #GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Source name or URI.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="default_target"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">A #GFile corresponding to the default target or group or %NULL if you don't care.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_source_quiet">
        <callback name="add_source_quiet" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A #GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Source name or URI.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="target" transfer-ownership="none">
              <doc xml:whitespace="preserve">A #GFile corresponding to the parent target or group.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_sources">
        <callback name="add_sources" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A list of #GFile corresponding to all new source files added in the project. You own the list with the the returned files; use g_list_free() and g_object_unref() on each file to release them.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="names" transfer-ownership="none">
              <doc xml:whitespace="preserve">Sources name or URI to add.</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="utf8"/>
              </type>
            </parameter>
            <parameter name="default_target"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">A #GFile corresponding to the default target or group or %NULL if don't care.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_target">
        <callback name="add_target" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A #GFile corresponding to the new target added in the project. You own the returned file; use g_object_unref() to release it.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Target name or URI.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="default_group"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">A #GFile corresponding to the default parent group or %NULL if don't care.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_capabilities">
        <callback name="get_capabilities" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Supported capabilites.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_children">
        <callback name="get_children" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">The list of #GFile corresponding to all children or %NULL if the element has no children with the corresponding type. Free the returned * list with g_list_free() and the files with g_object_unref().</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="parent" transfer-ownership="none">
              <doc xml:whitespace="preserve">A #GFile corresponding to the parent.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="children_type" transfer-ownership="none">
              <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_current_project">
        <callback name="get_current_project" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the currently active project. NULL if none is there.</doc>
            <type name="Project" c:type="IAnjutaProject*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_elements">
        <callback name="get_elements" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">Get list of #GFile corresponding to all valid elements or %NULL if there are no elements of this type. Free the returned list with g_list_free() and the files with g_object_unref().</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="element_type" transfer-ownership="none">
              <doc xml:whitespace="preserve">Select one element type: source, group or target</doc>
              <type name="Anjuta.ProjectNodeType"
                    c:type="AnjutaProjectNodeType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_packages">
        <callback name="get_packages" throws="1">
          <return-value transfer-ownership="container">
            <doc xml:whitespace="preserve">the list of pkg-config packages that the current project requires in it's configure.ac. Can be NULL if there is no project opened currently or no package is required.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_parent" introspectable="0">
        <callback name="get_parent" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">The parent of the child, or %NULL if the element is the root.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="element" transfer-ownership="none">
              <doc xml:whitespace="preserve">A #GFile corresponding to one child.</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_selected">
        <callback name="get_selected" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A #GFile corresponding to the selected element in the project view. You own the returned file; use g_object_unref() to release it.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_target_type">
        <callback name="get_target_type" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Return the type of the target.</doc>
            <type name="Anjuta.ProjectNodeType"
                  c:type="AnjutaProjectNodeType"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="target" transfer-ownership="none">
              <doc xml:whitespace="preserve">A #GFile corresponding to a target</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_targets">
        <callback name="get_targets" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">A list of #GFile corresponding to each target of the requested type or %NULL if none exists. Free the returned list with g_list_free() and the files with g_object_unref().</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
            <parameter name="target_type" transfer-ownership="none">
              <doc xml:whitespace="preserve">type of the target</doc>
              <type name="Anjuta.ProjectNodeType"
                    c:type="AnjutaProjectNodeType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_open">
        <callback name="is_open" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if a project is opened.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="ProjectManager" c:type="IAnjutaProjectManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ProjectProbe"
                 glib:type-name="IAnjutaProjectProbe"
                 glib:get-type="ianjuta_project_probe_get_type"
                 c:type="IAnjutaProjectProbe">
      <member name="probe_files"
              value="10"
              c:identifier="IANJUTA_PROJECT_PROBE_FILES"
              glib:nick="probe-files"/>
      <member name="probe_make_files"
              value="100"
              c:identifier="IANJUTA_PROJECT_PROBE_MAKE_FILES"
              glib:nick="probe-make-files"/>
      <member name="probe_project_files"
              value="200"
              c:identifier="IANJUTA_PROJECT_PROBE_PROJECT_FILES"
              glib:nick="probe-project-files"/>
    </enumeration>
    <interface name="Provider"
               c:symbol-prefix="provider"
               c:type="IAnjutaProvider"
               glib:type-name="IAnjutaProvider"
               glib:get-type="ianjuta_provider_get_type"
               glib:type-struct="ProviderIface">
      <function name="error_quark" c:identifier="ianjuta_provider_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="activate" invoker="activate" throws="1">
        <doc xml:whitespace="preserve">Show completion for the context at position @iter</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">position where the completion occurs</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data assigned to the proposal</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name" throws="1">
        <doc xml:whitespace="preserve">Return a (translatable) name for the provider</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_start_iter"
                      invoker="get_start_iter"
                      throws="1">
        <doc xml:whitespace="preserve">Get the iter where the current completion started</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">current start iter</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="populate" invoker="populate" throws="1">
        <doc xml:whitespace="preserve">Show completion for the context at position @iter. The provider should
call ianjuta_editor_assist_proposals here to add proposals to the list.

Note that this is called after every character typed and the list of proposals
has to be completely renewed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">the text iter where the provider should be populated</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate"
              c:identifier="ianjuta_provider_activate"
              throws="1">
        <doc xml:whitespace="preserve">Show completion for the context at position @iter</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">position where the completion occurs</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data assigned to the proposal</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="ianjuta_provider_get_name"
              throws="1">
        <doc xml:whitespace="preserve">Return a (translatable) name for the provider</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="get_start_iter"
              c:identifier="ianjuta_provider_get_start_iter"
              throws="1">
        <doc xml:whitespace="preserve">Get the iter where the current completion started</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">current start iter</doc>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="populate"
              c:identifier="ianjuta_provider_populate"
              throws="1">
        <doc xml:whitespace="preserve">Show completion for the context at position @iter. The provider should
call ianjuta_editor_assist_proposals here to add proposals to the list.

Note that this is called after every character typed and the list of proposals
has to be completely renewed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">the text iter where the provider should be populated</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="ProviderIface"
            c:type="IAnjutaProviderIface"
            glib:is-gtype-struct-for="Provider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="activate">
        <callback name="activate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">position where the completion occurs</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <doc xml:whitespace="preserve">data assigned to the proposal</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_name">
        <callback name="get_name" throws="1">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_start_iter">
        <callback name="get_start_iter" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">current start iter</doc>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate">
        <callback name="populate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Provider" c:type="IAnjutaProvider*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">the text iter where the provider should be populated</doc>
              <type name="Iterable" c:type="IAnjutaIterable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="SnippetsManager"
               c:symbol-prefix="snippets_manager"
               c:type="IAnjutaSnippetsManager"
               glib:type-name="IAnjutaSnippetsManager"
               glib:get-type="ianjuta_snippets_manager_get_type"
               glib:type-struct="SnippetsManagerIface">
      <function name="error_quark"
                c:identifier="ianjuta_snippets_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="insert" invoker="insert" throws="1">
        <doc xml:whitespace="preserve">Insert snippet in the current editor.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">Trigger-key of the snippet</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="editing_session" transfer-ownership="none">
            <doc xml:whitespace="preserve">If after inserting the snippet there should be an editing session. Mark as FALSE if not interested in the dynamic capabilities of the snippet.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="insert"
              c:identifier="ianjuta_snippets_manager_insert"
              throws="1">
        <doc xml:whitespace="preserve">Insert snippet in the current editor.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">Trigger-key of the snippet</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="editing_session" transfer-ownership="none">
            <doc xml:whitespace="preserve">If after inserting the snippet there should be an editing session. Mark as FALSE if not interested in the dynamic capabilities of the snippet.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="SnippetsManagerIface"
            c:type="IAnjutaSnippetsManagerIface"
            glib:is-gtype-struct-for="SnippetsManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="insert">
        <callback name="insert" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SnippetsManager" c:type="IAnjutaSnippetsManager*"/>
            </parameter>
            <parameter name="key" transfer-ownership="none">
              <doc xml:whitespace="preserve">Trigger-key of the snippet</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="editing_session" transfer-ownership="none">
              <doc xml:whitespace="preserve">If after inserting the snippet there should be an editing session. Mark as FALSE if not interested in the dynamic capabilities of the snippet.</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Stream"
               c:symbol-prefix="stream"
               c:type="IAnjutaStream"
               glib:type-name="IAnjutaStream"
               glib:get-type="ianjuta_stream_get_type"
               glib:type-struct="StreamIface">
      <function name="error_quark" c:identifier="ianjuta_stream_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="open" invoker="open" throws="1">
        <doc xml:whitespace="preserve">The implementor opens the given stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">Stream to open from.</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="open" c:identifier="ianjuta_stream_open" throws="1">
        <doc xml:whitespace="preserve">The implementor opens the given stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">Stream to open from.</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="StreamIface"
            c:type="IAnjutaStreamIface"
            glib:is-gtype-struct-for="Stream">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="open">
        <callback name="open" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Stream" c:type="IAnjutaStream*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:whitespace="preserve">Stream to open from.</doc>
              <type name="gpointer" c:type="FILE*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="StreamLoader"
               c:symbol-prefix="stream_loader"
               c:type="IAnjutaStreamLoader"
               glib:type-name="IAnjutaStreamLoader"
               glib:get-type="ianjuta_stream_loader_get_type"
               glib:type-struct="StreamLoaderIface">
      <prerequisite name="Loader"/>
      <function name="error_quark"
                c:identifier="ianjuta_stream_loader_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="load" invoker="load" introspectable="0" throws="1">
        <doc xml:whitespace="preserve">Determines a plugin which can open the given stream, activates it
opening the stream and returns the interface of the plugin activated.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Plugin interface used to load the stream.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">Stream to load</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
          <parameter name="readonly" transfer-ownership="none">
            <doc xml:whitespace="preserve">Open in readonly mode.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="peek_interface"
                      invoker="peek_interface"
                      throws="1">
        <doc xml:whitespace="preserve">Peeks the stream and determines the interface which can load
this stream.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Plugin interface name that can load the stream.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">Stream to load</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="load"
              c:identifier="ianjuta_stream_loader_load"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Determines a plugin which can open the given stream, activates it
opening the stream and returns the interface of the plugin activated.</doc>
        <return-value>
          <doc xml:whitespace="preserve">Plugin interface used to load the stream.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">Stream to load</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
          <parameter name="readonly" transfer-ownership="none">
            <doc xml:whitespace="preserve">Open in readonly mode.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_interface"
              c:identifier="ianjuta_stream_loader_peek_interface"
              throws="1">
        <doc xml:whitespace="preserve">Peeks the stream and determines the interface which can load
this stream.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Plugin interface name that can load the stream.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">Stream to load</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="StreamLoaderIface"
            c:type="IAnjutaStreamLoaderIface"
            glib:is-gtype-struct-for="StreamLoader">
      <field name="g_iface">
        <type name="LoaderIface" c:type="IAnjutaLoaderIface"/>
      </field>
      <field name="load" introspectable="0">
        <callback name="load" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">Plugin interface used to load the stream.</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="StreamLoader" c:type="IAnjutaStreamLoader*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:whitespace="preserve">Stream to load</doc>
              <type name="gpointer" c:type="FILE*"/>
            </parameter>
            <parameter name="readonly" transfer-ownership="none">
              <doc xml:whitespace="preserve">Open in readonly mode.</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="peek_interface">
        <callback name="peek_interface" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">Plugin interface name that can load the stream.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="StreamLoader" c:type="IAnjutaStreamLoader*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:whitespace="preserve">Stream to load</doc>
              <type name="gpointer" c:type="FILE*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="StreamSavable"
               c:symbol-prefix="stream_savable"
               c:type="IAnjutaStreamSavable"
               glib:type-name="IAnjutaStreamSavable"
               glib:get-type="ianjuta_stream_savable_get_type"
               glib:type-struct="StreamSavableIface">
      <prerequisite name="Stream"/>
      <function name="error_quark"
                c:identifier="ianjuta_stream_savable_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="save" invoker="save" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="save"
              c:identifier="ianjuta_stream_savable_save"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="StreamSavableIface"
            c:type="IAnjutaStreamSavableIface"
            glib:is-gtype-struct-for="StreamSavable">
      <field name="g_iface">
        <type name="StreamIface" c:type="IAnjutaStreamIface"/>
      </field>
      <field name="save">
        <callback name="save" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="StreamSavable" c:type="IAnjutaStreamSavable*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <type name="gpointer" c:type="FILE*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Symbol"
               c:symbol-prefix="symbol"
               c:type="IAnjutaSymbol"
               glib:type-name="IAnjutaSymbol"
               glib:get-type="ianjuta_symbol_get_type"
               glib:type-struct="SymbolIface">
      <function name="error_quark" c:identifier="ianjuta_symbol_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="get_boolean" invoker="get_boolean" throws="1">
        <doc xml:whitespace="preserve">Retreives the boolean value of a boolean @field.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The boolean</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to retrieve.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_file"
                      invoker="get_file"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">A convenience method to get GFile object for
#IANJUTA_SYMBOL_FIELD_FILE_PATH field. The file where the
symbol is declared. It contains the absolute path of the file
unlike raw value of field #IANJUTA_SYMBOL_FIELD_FILE_PATH.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A GFile object. It must be unrefed after use.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_icon" invoker="get_icon" throws="1">
        <doc xml:whitespace="preserve">A convenience method to get a small icon (16x16) representing the symbol
kind. You *need* a query with fields #IANJUTA_SYMBOL_FIELD_ACCESS and
#IANJUTA_SYMBOL_FIELD_KIND selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a Pixbuf icon representing the symbol. Ref the icon if you need to keep it.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_int" invoker="get_int" throws="1">
        <doc xml:whitespace="preserve">Retreives the integer value of an integer @field.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The integer</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to retrieve.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_string" invoker="get_string" throws="1">
        <doc xml:whitespace="preserve">Retreives the string value of a string @field.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to retrieve.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_sym_type" invoker="get_sym_type" throws="1">
        <doc xml:whitespace="preserve">A convenience method to get value of #IANJUTA_SYMBOL_FIELD_TYPE
field typecasted to IAnjutaSymbolType. Numerical value is unchanged.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #IAnjutaSymbolType</doc>
          <type name="SymbolType" c:type="IAnjutaSymbolType"/>
        </return-value>
      </virtual-method>
      <method name="get_boolean"
              c:identifier="ianjuta_symbol_get_boolean"
              throws="1">
        <doc xml:whitespace="preserve">Retreives the boolean value of a boolean @field.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The boolean</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to retrieve.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="ianjuta_symbol_get_file"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">A convenience method to get GFile object for
#IANJUTA_SYMBOL_FIELD_FILE_PATH field. The file where the
symbol is declared. It contains the absolute path of the file
unlike raw value of field #IANJUTA_SYMBOL_FIELD_FILE_PATH.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A GFile object. It must be unrefed after use.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </method>
      <method name="get_icon"
              c:identifier="ianjuta_symbol_get_icon"
              throws="1">
        <doc xml:whitespace="preserve">A convenience method to get a small icon (16x16) representing the symbol
kind. You *need* a query with fields #IANJUTA_SYMBOL_FIELD_ACCESS and
#IANJUTA_SYMBOL_FIELD_KIND selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a Pixbuf icon representing the symbol. Ref the icon if you need to keep it.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
        </return-value>
      </method>
      <method name="get_int" c:identifier="ianjuta_symbol_get_int" throws="1">
        <doc xml:whitespace="preserve">Retreives the integer value of an integer @field.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The integer</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to retrieve.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="ianjuta_symbol_get_string"
              throws="1">
        <doc xml:whitespace="preserve">Retreives the string value of a string @field.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to retrieve.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sym_type"
              c:identifier="ianjuta_symbol_get_sym_type"
              throws="1">
        <doc xml:whitespace="preserve">A convenience method to get value of #IANJUTA_SYMBOL_FIELD_TYPE
field typecasted to IAnjutaSymbolType. Numerical value is unchanged.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #IAnjutaSymbolType</doc>
          <type name="SymbolType" c:type="IAnjutaSymbolType"/>
        </return-value>
      </method>
    </interface>
    <enumeration name="SymbolField"
                 glib:type-name="IAnjutaSymbolField"
                 glib:get-type="ianjuta_symbol_field_get_type"
                 c:type="IAnjutaSymbolField">
      <doc xml:whitespace="preserve">Symbol Fields. Used to define and retrieve results from query. Each of
these fields are either integer or string. Use the right method to
retrieve them. That is, for integer use ianjuta_symbol_get_int(),
for string use ianjuta_symbol_get_string(), and for boolean use
ianjuta_symbol_get_boolean(). Some fields can be in both forms,
e.g. #IANJUTA_SYMBOL_FIELD_TYPE.</doc>
      <member name="field_id"
              value="0"
              c:identifier="IANJUTA_SYMBOL_FIELD_ID"
              glib:nick="field-id"/>
      <member name="field_name"
              value="1"
              c:identifier="IANJUTA_SYMBOL_FIELD_NAME"
              glib:nick="field-name"/>
      <member name="field_file_pos"
              value="2"
              c:identifier="IANJUTA_SYMBOL_FIELD_FILE_POS"
              glib:nick="field-file-pos"/>
      <member name="filed_scope_def_id"
              value="3"
              c:identifier="IANJUTA_SYMBOL_FILED_SCOPE_DEF_ID"
              glib:nick="filed-scope-def-id"/>
      <member name="field_file_scope"
              value="4"
              c:identifier="IANJUTA_SYMBOL_FIELD_FILE_SCOPE"
              glib:nick="field-file-scope"/>
      <member name="field_signature"
              value="5"
              c:identifier="IANJUTA_SYMBOL_FIELD_SIGNATURE"
              glib:nick="field-signature"/>
      <member name="field_returntype"
              value="6"
              c:identifier="IANJUTA_SYMBOL_FIELD_RETURNTYPE"
              glib:nick="field-returntype"/>
      <member name="field_type"
              value="7"
              c:identifier="IANJUTA_SYMBOL_FIELD_TYPE"
              glib:nick="field-type"/>
      <member name="field_type_name"
              value="8"
              c:identifier="IANJUTA_SYMBOL_FIELD_TYPE_NAME"
              glib:nick="field-type-name"/>
      <member name="field_file_path"
              value="9"
              c:identifier="IANJUTA_SYMBOL_FIELD_FILE_PATH"
              glib:nick="field-file-path"/>
      <member name="field_project_name"
              value="10"
              c:identifier="IANJUTA_SYMBOL_FIELD_PROJECT_NAME"
              glib:nick="field-project-name"/>
      <member name="field_project_version"
              value="11"
              c:identifier="IANJUTA_SYMBOL_FIELD_PROJECT_VERSION"
              glib:nick="field-project-version"/>
      <member name="field_implementation"
              value="12"
              c:identifier="IANJUTA_SYMBOL_FIELD_IMPLEMENTATION"
              glib:nick="field-implementation"/>
      <member name="field_access"
              value="13"
              c:identifier="IANJUTA_SYMBOL_FIELD_ACCESS"
              glib:nick="field-access"/>
      <member name="field_kind"
              value="14"
              c:identifier="IANJUTA_SYMBOL_FIELD_KIND"
              glib:nick="field-kind"/>
      <member name="field_is_container"
              value="15"
              c:identifier="IANJUTA_SYMBOL_FIELD_IS_CONTAINER"
              glib:nick="field-is-container"/>
      <member name="field_end"
              value="16"
              c:identifier="IANJUTA_SYMBOL_FIELD_END"
              glib:nick="field-end"/>
    </enumeration>
    <record name="SymbolIface"
            c:type="IAnjutaSymbolIface"
            glib:is-gtype-struct-for="Symbol">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_boolean">
        <callback name="get_boolean" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The boolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <doc xml:whitespace="preserve">The field to retrieve.</doc>
              <type name="SymbolField" c:type="IAnjutaSymbolField"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_file" introspectable="0">
        <callback name="get_file" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">A GFile object. It must be unrefed after use.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_icon">
        <callback name="get_icon" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">a Pixbuf icon representing the symbol. Ref the icon if you need to keep it.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_int">
        <callback name="get_int" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The integer</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <doc xml:whitespace="preserve">The field to retrieve.</doc>
              <type name="SymbolField" c:type="IAnjutaSymbolField"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_string">
        <callback name="get_string" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <doc xml:whitespace="preserve">The field to retrieve.</doc>
              <type name="SymbolField" c:type="IAnjutaSymbolField"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_sym_type">
        <callback name="get_sym_type" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">a #IAnjutaSymbolType</doc>
            <type name="SymbolType" c:type="IAnjutaSymbolType"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="SymbolManager"
               c:symbol-prefix="symbol_manager"
               c:type="IAnjutaSymbolManager"
               glib:type-name="IAnjutaSymbolManager"
               glib:get-type="ianjuta_symbol_manager_get_type"
               glib:type-struct="SymbolManagerIface">
      <function name="error_quark"
                c:identifier="ianjuta_symbol_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="activate_package"
                      invoker="activate_package"
                      throws="1">
        <doc xml:whitespace="preserve">Activates the package for searches in the global symbol database.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the package was loaded (or will be loaded once scanned). FALSE if the version given was newer than the version in the database or the package was not found. In this case, add_package() should be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="pkg_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the package to activate. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pkg_version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_package"
                      invoker="add_package"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Reads the package files into the database asynchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the package will be loaded into the db, FALSE if the package already exists</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="pkg_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the package to scan. Should be the name given by pkg-config. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pkg_version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided. or by the language implementation (Python, Javascript, etc.)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="files" transfer-ownership="none">
            <doc xml:whitespace="preserve">A list of GFile's to scan for this package</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_query"
                      invoker="create_query"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Create a query object. By default only #IANJUTA_SYMBOL_FIELD_ID and
and #IANJUTA_SYMBOL_FIELD_NAME are selected, limit is set to infinity,
offset is set to 0, no filters are set and mode is set to
#IANJUTA_SYMBOL_QUERY_MODE_SYNC.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A #IAnjutaSymbolQuery object</doc>
          <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the query. It decides what query type it is.</doc>
            <type name="SymbolQueryName" c:type="IAnjutaSymbolQueryName"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <doc xml:whitespace="preserve">The database to use.</doc>
            <type name="SymbolQueryDb" c:type="IAnjutaSymbolQueryDb"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="deactivate_all"
                      invoker="deactivate_all"
                      throws="1">
        <doc xml:whitespace="preserve">Deactivates all activate packages</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="deactivate_package"
                      invoker="deactivate_package"
                      throws="1">
        <doc xml:whitespace="preserve">Deactivates the package if it was found. If package is NULL, deactivate all
packages.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pkg_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the package. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pkg_version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prj_scan_end">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="process_id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sys_scan_end">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="process_id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate_package"
              c:identifier="ianjuta_symbol_manager_activate_package"
              throws="1">
        <doc xml:whitespace="preserve">Activates the package for searches in the global symbol database.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the package was loaded (or will be loaded once scanned). FALSE if the version given was newer than the version in the database or the package was not found. In this case, add_package() should be called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="pkg_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the package to activate. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pkg_version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_package"
              c:identifier="ianjuta_symbol_manager_add_package"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Reads the package files into the database asynchronously.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the package will be loaded into the db, FALSE if the package already exists</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="pkg_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the package to scan. Should be the name given by pkg-config. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pkg_version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided. or by the language implementation (Python, Javascript, etc.)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="files" transfer-ownership="none">
            <doc xml:whitespace="preserve">A list of GFile's to scan for this package</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="create_query"
              c:identifier="ianjuta_symbol_manager_create_query"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Create a query object. By default only #IANJUTA_SYMBOL_FIELD_ID and
and #IANJUTA_SYMBOL_FIELD_NAME are selected, limit is set to infinity,
offset is set to 0, no filters are set and mode is set to
#IANJUTA_SYMBOL_QUERY_MODE_SYNC.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A #IAnjutaSymbolQuery object</doc>
          <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the query. It decides what query type it is.</doc>
            <type name="SymbolQueryName" c:type="IAnjutaSymbolQueryName"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <doc xml:whitespace="preserve">The database to use.</doc>
            <type name="SymbolQueryDb" c:type="IAnjutaSymbolQueryDb"/>
          </parameter>
        </parameters>
      </method>
      <method name="deactivate_all"
              c:identifier="ianjuta_symbol_manager_deactivate_all"
              throws="1">
        <doc xml:whitespace="preserve">Deactivates all activate packages</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="deactivate_package"
              c:identifier="ianjuta_symbol_manager_deactivate_package"
              throws="1">
        <doc xml:whitespace="preserve">Deactivates the package if it was found. If package is NULL, deactivate all
packages.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pkg_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the package. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="pkg_version" transfer-ownership="none">
            <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="prj-scan-end" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sys-scan-end" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="SymbolManagerIface"
            c:type="IAnjutaSymbolManagerIface"
            glib:is-gtype-struct-for="SymbolManager">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="prj_scan_end">
        <callback name="prj_scan_end">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
            <parameter name="process_id" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sys_scan_end">
        <callback name="sys_scan_end">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
            <parameter name="process_id" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate_package">
        <callback name="activate_package" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the package was loaded (or will be loaded once scanned). FALSE if the version given was newer than the version in the database or the package was not found. In this case, add_package() should be called.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
            <parameter name="pkg_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Name of the package to activate. The colon char must be avoided.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="pkg_version" transfer-ownership="none">
              <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_package" introspectable="0">
        <callback name="add_package" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">TRUE if the package will be loaded into the db, FALSE if the package already exists</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
            <parameter name="pkg_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Name of the package to scan. Should be the name given by pkg-config. The colon char must be avoided.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="pkg_version" transfer-ownership="none">
              <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided. or by the language implementation (Python, Javascript, etc.)</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="files" transfer-ownership="none">
              <doc xml:whitespace="preserve">A list of GFile's to scan for this package</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_query" introspectable="0">
        <callback name="create_query" introspectable="0" throws="1">
          <return-value>
            <doc xml:whitespace="preserve">A #IAnjutaSymbolQuery object</doc>
            <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:whitespace="preserve">Name of the query. It decides what query type it is.</doc>
              <type name="SymbolQueryName" c:type="IAnjutaSymbolQueryName"/>
            </parameter>
            <parameter name="db" transfer-ownership="none">
              <doc xml:whitespace="preserve">The database to use.</doc>
              <type name="SymbolQueryDb" c:type="IAnjutaSymbolQueryDb"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deactivate_all">
        <callback name="deactivate_all" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deactivate_package">
        <callback name="deactivate_package" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolManager" c:type="IAnjutaSymbolManager*"/>
            </parameter>
            <parameter name="pkg_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">name of the package. The colon char must be avoided.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="pkg_version" transfer-ownership="none">
              <doc xml:whitespace="preserve">Version of the package. The colon char must be avoided.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="SymbolQuery"
               c:symbol-prefix="symbol_query"
               c:type="IAnjutaSymbolQuery"
               glib:type-name="IAnjutaSymbolQuery"
               glib:get-type="ianjuta_symbol_query_get_type"
               glib:type-struct="SymbolQueryIface">
      <function name="error_quark"
                c:identifier="ianjuta_symbol_query_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="async_result">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cancel" invoker="cancel" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="search"
                      invoker="search"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_all"
                      invoker="search_all"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_ALL query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="search_class_parents"
                      invoker="search_class_parents"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_CLASS_PARENTS query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The class symbol whose parents to get.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_file"
                      invoker="search_file"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_FILE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file whose symbols are searched.</doc>
            <type name="Gio.File" c:type="const GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_id"
                      invoker="search_id"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_ID query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol_id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_in_scope"
                      invoker="search_in_scope"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_IN_SCOPE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:whitespace="preserve">The scope inside which symbols are searched.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_members"
                      invoker="search_members"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_MEMBERS query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The symbol whose members to get.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_parent_scope"
                      invoker="search_parent_scope"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_PARENT_SCOPE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The symbol whose parent scope is to be found.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_parent_scope_file"
                      invoker="search_parent_scope_file"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_PARENT_SCOPE_FILE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The symbol whose parent scope is to be found.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
          <parameter name="file_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file where the parent scope is to be found.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search_scope"
                      invoker="search_scope"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_SCOPE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="file_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file where the scope is.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">The line where the scope is.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_fields" invoker="set_fields" throws="1">
        <doc xml:whitespace="preserve">Sets the fields of Query.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="n_fields" transfer-ownership="none">
            <doc xml:whitespace="preserve">Then number of fields to retrieve.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="fields" transfer-ownership="none">
            <doc xml:whitespace="preserve">The fields to retrieve in the query. The array length must be @n_fields.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_file_scope"
                      invoker="set_file_scope"
                      throws="1">
        <doc xml:whitespace="preserve">Sets the filescope search of Query.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filescope_search" transfer-ownership="none">
            <doc xml:whitespace="preserve">The filescope to search.</doc>
            <type name="SymbolQueryFileScope"
                  c:type="IAnjutaSymbolQueryFileScope"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_filters" invoker="set_filters" throws="1">
        <doc xml:whitespace="preserve">Sets the bit mask of symbol type filters. if @include_types is TRUE,
symbols satisfying the given symbol types are selected, otherwise
they are excluded.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filters" transfer-ownership="none">
            <doc xml:whitespace="preserve">The mode of query.</doc>
            <type name="SymbolType" c:type="IAnjutaSymbolType"/>
          </parameter>
          <parameter name="includes_types" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_group_by" invoker="set_group_by" throws="1">
        <doc xml:whitespace="preserve">Sets the field with which result of query is grouped. As a result
there will be no duplicates of with this field.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to group results.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_limit" invoker="set_limit" throws="1">
        <doc xml:whitespace="preserve">Sets the limit of Query results. No more than @limit results are
returned.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:whitespace="preserve">The limit of query.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_mode" invoker="set_mode" throws="1">
        <doc xml:whitespace="preserve">Sets the mode of Query.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">The mode of query.</doc>
            <type name="SymbolQueryMode" c:type="IAnjutaSymbolQueryMode"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_offset" invoker="set_offset" throws="1">
        <doc xml:whitespace="preserve">Sets the offset index of Query results.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:whitespace="preserve">Offset of the resultset.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_order_by" invoker="set_order_by" throws="1">
        <doc xml:whitespace="preserve">Sets the field with which result of query is ordered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to order the result.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="cancel"
              c:identifier="ianjuta_symbol_query_cancel"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="search"
              c:identifier="ianjuta_symbol_query_search"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_all"
              c:identifier="ianjuta_symbol_query_search_all"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_ALL query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
      </method>
      <method name="search_class_parents"
              c:identifier="ianjuta_symbol_query_search_class_parents"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_CLASS_PARENTS query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The class symbol whose parents to get.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_file"
              c:identifier="ianjuta_symbol_query_search_file"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_FILE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file whose symbols are searched.</doc>
            <type name="Gio.File" c:type="const GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_id"
              c:identifier="ianjuta_symbol_query_search_id"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_ID query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol_id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_in_scope"
              c:identifier="ianjuta_symbol_query_search_in_scope"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_IN_SCOPE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="scope" transfer-ownership="none">
            <doc xml:whitespace="preserve">The scope inside which symbols are searched.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_members"
              c:identifier="ianjuta_symbol_query_search_members"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_MEMBERS query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The symbol whose members to get.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_parent_scope"
              c:identifier="ianjuta_symbol_query_search_parent_scope"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_PARENT_SCOPE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The symbol whose parent scope is to be found.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_parent_scope_file"
              c:identifier="ianjuta_symbol_query_search_parent_scope_file"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_PARENT_SCOPE_FILE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="symbol" transfer-ownership="none">
            <doc xml:whitespace="preserve">The symbol whose parent scope is to be found.</doc>
            <type name="Symbol" c:type="IAnjutaSymbol*"/>
          </parameter>
          <parameter name="file_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file where the parent scope is to be found.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_scope"
              c:identifier="ianjuta_symbol_query_search_scope"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Executes #IANJUTA_SYMBOL_QUERY_SEARCH_SCOPE query.</doc>
        <return-value>
          <type name="Iterable" c:type="IAnjutaIterable*"/>
        </return-value>
        <parameters>
          <parameter name="file_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file where the scope is.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">The line where the scope is.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fields"
              c:identifier="ianjuta_symbol_query_set_fields"
              throws="1">
        <doc xml:whitespace="preserve">Sets the fields of Query.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="n_fields" transfer-ownership="none">
            <doc xml:whitespace="preserve">Then number of fields to retrieve.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="fields" transfer-ownership="none">
            <doc xml:whitespace="preserve">The fields to retrieve in the query. The array length must be @n_fields.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file_scope"
              c:identifier="ianjuta_symbol_query_set_file_scope"
              throws="1">
        <doc xml:whitespace="preserve">Sets the filescope search of Query.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filescope_search" transfer-ownership="none">
            <doc xml:whitespace="preserve">The filescope to search.</doc>
            <type name="SymbolQueryFileScope"
                  c:type="IAnjutaSymbolQueryFileScope"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filters"
              c:identifier="ianjuta_symbol_query_set_filters"
              throws="1">
        <doc xml:whitespace="preserve">Sets the bit mask of symbol type filters. if @include_types is TRUE,
symbols satisfying the given symbol types are selected, otherwise
they are excluded.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filters" transfer-ownership="none">
            <doc xml:whitespace="preserve">The mode of query.</doc>
            <type name="SymbolType" c:type="IAnjutaSymbolType"/>
          </parameter>
          <parameter name="includes_types" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_group_by"
              c:identifier="ianjuta_symbol_query_set_group_by"
              throws="1">
        <doc xml:whitespace="preserve">Sets the field with which result of query is grouped. As a result
there will be no duplicates of with this field.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to group results.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_limit"
              c:identifier="ianjuta_symbol_query_set_limit"
              throws="1">
        <doc xml:whitespace="preserve">Sets the limit of Query results. No more than @limit results are
returned.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:whitespace="preserve">The limit of query.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode"
              c:identifier="ianjuta_symbol_query_set_mode"
              throws="1">
        <doc xml:whitespace="preserve">Sets the mode of Query.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">The mode of query.</doc>
            <type name="SymbolQueryMode" c:type="IAnjutaSymbolQueryMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_offset"
              c:identifier="ianjuta_symbol_query_set_offset"
              throws="1">
        <doc xml:whitespace="preserve">Sets the offset index of Query results.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:whitespace="preserve">Offset of the resultset.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_order_by"
              c:identifier="ianjuta_symbol_query_set_order_by"
              throws="1">
        <doc xml:whitespace="preserve">Sets the field with which result of query is ordered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <doc xml:whitespace="preserve">The field to order the result.</doc>
            <type name="SymbolField" c:type="IAnjutaSymbolField"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="async-result" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <enumeration name="SymbolQueryDb"
                 glib:type-name="IAnjutaSymbolQueryDb"
                 glib:get-type="ianjuta_symbol_query_db_get_type"
                 c:type="IAnjutaSymbolQueryDb">
      <doc xml:whitespace="preserve">Sets the database to use for the query. System database is where
all system library symbols are found. While project database is where
currently open project's symbols are found.</doc>
      <member name="db_project"
              value="0"
              c:identifier="IANJUTA_SYMBOL_QUERY_DB_PROJECT"
              glib:nick="db-project"/>
      <member name="db_system"
              value="1"
              c:identifier="IANJUTA_SYMBOL_QUERY_DB_SYSTEM"
              glib:nick="db-system"/>
    </enumeration>
    <enumeration name="SymbolQueryFileScope"
                 glib:type-name="IAnjutaSymbolQueryFileScope"
                 glib:get-type="ianjuta_symbol_query_file_scope_get_type"
                 c:type="IAnjutaSymbolQueryFileScope">
      <doc xml:whitespace="preserve">Defines file scope of symbols to query.</doc>
      <member name="search_fs_ignore"
              value="0"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_FS_IGNORE"
              glib:nick="search-fs-ignore"/>
      <member name="search_fs_public"
              value="1"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_FS_PUBLIC"
              glib:nick="search-fs-public"/>
      <member name="search_fs_private"
              value="2"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_FS_PRIVATE"
              glib:nick="search-fs-private"/>
    </enumeration>
    <record name="SymbolQueryIface"
            c:type="IAnjutaSymbolQueryIface"
            glib:is-gtype-struct-for="SymbolQuery">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="async_result">
        <callback name="async_result">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="GObject.Object" c:type="GObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancel">
        <callback name="cancel" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search" introspectable="0">
        <callback name="search" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="pattern" transfer-ownership="none">
              <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_all" introspectable="0">
        <callback name="search_all" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_class_parents" introspectable="0">
        <callback name="search_class_parents" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="symbol" transfer-ownership="none">
              <doc xml:whitespace="preserve">The class symbol whose parents to get.</doc>
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_file" introspectable="0">
        <callback name="search_file" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="pattern" transfer-ownership="none">
              <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">The file whose symbols are searched.</doc>
              <type name="Gio.File" c:type="const GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_id" introspectable="0">
        <callback name="search_id" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="symbol_id" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_in_scope" introspectable="0">
        <callback name="search_in_scope" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="pattern" transfer-ownership="none">
              <doc xml:whitespace="preserve">Search pattern in compliance with SQL LIKE syntax</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="scope" transfer-ownership="none">
              <doc xml:whitespace="preserve">The scope inside which symbols are searched.</doc>
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_members" introspectable="0">
        <callback name="search_members" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="symbol" transfer-ownership="none">
              <doc xml:whitespace="preserve">The symbol whose members to get.</doc>
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_parent_scope" introspectable="0">
        <callback name="search_parent_scope" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="symbol" transfer-ownership="none">
              <doc xml:whitespace="preserve">The symbol whose parent scope is to be found.</doc>
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_parent_scope_file" introspectable="0">
        <callback name="search_parent_scope_file"
                  introspectable="0"
                  throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="symbol" transfer-ownership="none">
              <doc xml:whitespace="preserve">The symbol whose parent scope is to be found.</doc>
              <type name="Symbol" c:type="IAnjutaSymbol*"/>
            </parameter>
            <parameter name="file_path" transfer-ownership="none">
              <doc xml:whitespace="preserve">The file where the parent scope is to be found.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search_scope" introspectable="0">
        <callback name="search_scope" introspectable="0" throws="1">
          <return-value>
            <type name="Iterable" c:type="IAnjutaIterable*"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="file_path" transfer-ownership="none">
              <doc xml:whitespace="preserve">The file where the scope is.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <doc xml:whitespace="preserve">The line where the scope is.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_fields">
        <callback name="set_fields" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="n_fields" transfer-ownership="none">
              <doc xml:whitespace="preserve">Then number of fields to retrieve.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="fields" transfer-ownership="none">
              <doc xml:whitespace="preserve">The fields to retrieve in the query. The array length must be @n_fields.</doc>
              <type name="SymbolField" c:type="IAnjutaSymbolField*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_file_scope">
        <callback name="set_file_scope" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="filescope_search" transfer-ownership="none">
              <doc xml:whitespace="preserve">The filescope to search.</doc>
              <type name="SymbolQueryFileScope"
                    c:type="IAnjutaSymbolQueryFileScope"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_filters">
        <callback name="set_filters" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="filters" transfer-ownership="none">
              <doc xml:whitespace="preserve">The mode of query.</doc>
              <type name="SymbolType" c:type="IAnjutaSymbolType"/>
            </parameter>
            <parameter name="includes_types" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_group_by">
        <callback name="set_group_by" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <doc xml:whitespace="preserve">The field to group results.</doc>
              <type name="SymbolField" c:type="IAnjutaSymbolField"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_limit">
        <callback name="set_limit" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="limit" transfer-ownership="none">
              <doc xml:whitespace="preserve">The limit of query.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_mode">
        <callback name="set_mode" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <doc xml:whitespace="preserve">The mode of query.</doc>
              <type name="SymbolQueryMode" c:type="IAnjutaSymbolQueryMode"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_offset">
        <callback name="set_offset" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="offset" transfer-ownership="none">
              <doc xml:whitespace="preserve">Offset of the resultset.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_order_by">
        <callback name="set_order_by" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="SymbolQuery" c:type="IAnjutaSymbolQuery*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <doc xml:whitespace="preserve">The field to order the result.</doc>
              <type name="SymbolField" c:type="IAnjutaSymbolField"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="SymbolQueryMode"
                 glib:type-name="IAnjutaSymbolQueryMode"
                 glib:get-type="ianjuta_symbol_query_mode_get_type"
                 c:type="IAnjutaSymbolQueryMode">
      <doc xml:whitespace="preserve">This parameter determines the mode of query execution. By default,
IANJUTA_SYMBOL_QUERY_MODE_SYNC is selected.</doc>
      <member name="mode_sync"
              value="0"
              c:identifier="IANJUTA_SYMBOL_QUERY_MODE_SYNC"
              glib:nick="mode-sync"/>
      <member name="mode_async"
              value="1"
              c:identifier="IANJUTA_SYMBOL_QUERY_MODE_ASYNC"
              glib:nick="mode-async"/>
      <member name="mode_queued"
              value="2"
              c:identifier="IANJUTA_SYMBOL_QUERY_MODE_QUEUED"
              glib:nick="mode-queued"/>
    </enumeration>
    <enumeration name="SymbolQueryName"
                 glib:type-name="IAnjutaSymbolQueryName"
                 glib:get-type="ianjuta_symbol_query_name_get_type"
                 c:type="IAnjutaSymbolQueryName">
      <doc xml:whitespace="preserve">Names of query that defined what kind of query it is.</doc>
      <member name="search"
              value="0"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH"
              glib:nick="search"/>
      <member name="search_all"
              value="1"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_ALL"
              glib:nick="search-all"/>
      <member name="search_file"
              value="2"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_FILE"
              glib:nick="search-file"/>
      <member name="search_in_scope"
              value="3"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_IN_SCOPE"
              glib:nick="search-in-scope"/>
      <member name="search_id"
              value="4"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_ID"
              glib:nick="search-id"/>
      <member name="search_members"
              value="5"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_MEMBERS"
              glib:nick="search-members"/>
      <member name="search_class_parents"
              value="6"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_CLASS_PARENTS"
              glib:nick="search-class-parents"/>
      <member name="search_scope"
              value="7"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_SCOPE"
              glib:nick="search-scope"/>
      <member name="search_parent_scope"
              value="8"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_PARENT_SCOPE"
              glib:nick="search-parent-scope"/>
      <member name="search_parent_scope_file"
              value="9"
              c:identifier="IANJUTA_SYMBOL_QUERY_SEARCH_PARENT_SCOPE_FILE"
              glib:nick="search-parent-scope-file"/>
    </enumeration>
    <enumeration name="SymbolType"
                 glib:type-name="IAnjutaSymbolType"
                 glib:get-type="ianjuta_symbol_type_get_type"
                 c:type="IAnjutaSymbolType">
      <member name="type_none"
              value="0"
              c:identifier="IANJUTA_SYMBOL_TYPE_NONE"
              glib:nick="type-none"/>
      <member name="type_undef"
              value="1"
              c:identifier="IANJUTA_SYMBOL_TYPE_UNDEF"
              glib:nick="type-undef"/>
      <member name="type_class"
              value="2"
              c:identifier="IANJUTA_SYMBOL_TYPE_CLASS"
              glib:nick="type-class"/>
      <member name="type_enum"
              value="4"
              c:identifier="IANJUTA_SYMBOL_TYPE_ENUM"
              glib:nick="type-enum"/>
      <member name="type_enumerator"
              value="8"
              c:identifier="IANJUTA_SYMBOL_TYPE_ENUMERATOR"
              glib:nick="type-enumerator"/>
      <member name="type_field"
              value="16"
              c:identifier="IANJUTA_SYMBOL_TYPE_FIELD"
              glib:nick="type-field"/>
      <member name="type_function"
              value="32"
              c:identifier="IANJUTA_SYMBOL_TYPE_FUNCTION"
              glib:nick="type-function"/>
      <member name="type_interface"
              value="64"
              c:identifier="IANJUTA_SYMBOL_TYPE_INTERFACE"
              glib:nick="type-interface"/>
      <member name="type_member"
              value="128"
              c:identifier="IANJUTA_SYMBOL_TYPE_MEMBER"
              glib:nick="type-member"/>
      <member name="type_method"
              value="256"
              c:identifier="IANJUTA_SYMBOL_TYPE_METHOD"
              glib:nick="type-method"/>
      <member name="type_namespace"
              value="512"
              c:identifier="IANJUTA_SYMBOL_TYPE_NAMESPACE"
              glib:nick="type-namespace"/>
      <member name="type_package"
              value="1024"
              c:identifier="IANJUTA_SYMBOL_TYPE_PACKAGE"
              glib:nick="type-package"/>
      <member name="type_prototype"
              value="2048"
              c:identifier="IANJUTA_SYMBOL_TYPE_PROTOTYPE"
              glib:nick="type-prototype"/>
      <member name="type_struct"
              value="4096"
              c:identifier="IANJUTA_SYMBOL_TYPE_STRUCT"
              glib:nick="type-struct"/>
      <member name="type_typedef"
              value="8192"
              c:identifier="IANJUTA_SYMBOL_TYPE_TYPEDEF"
              glib:nick="type-typedef"/>
      <member name="type_union"
              value="16384"
              c:identifier="IANJUTA_SYMBOL_TYPE_UNION"
              glib:nick="type-union"/>
      <member name="type_variable"
              value="32768"
              c:identifier="IANJUTA_SYMBOL_TYPE_VARIABLE"
              glib:nick="type-variable"/>
      <member name="type_externvar"
              value="65536"
              c:identifier="IANJUTA_SYMBOL_TYPE_EXTERNVAR"
              glib:nick="type-externvar"/>
      <member name="type_macro"
              value="131072"
              c:identifier="IANJUTA_SYMBOL_TYPE_MACRO"
              glib:nick="type-macro"/>
      <member name="type_macro_with_arg"
              value="262144"
              c:identifier="IANJUTA_SYMBOL_TYPE_MACRO_WITH_ARG"
              glib:nick="type-macro-with-arg"/>
      <member name="type_file"
              value="524288"
              c:identifier="IANJUTA_SYMBOL_TYPE_FILE"
              glib:nick="type-file"/>
      <member name="type_other"
              value="1048576"
              c:identifier="IANJUTA_SYMBOL_TYPE_OTHER"
              glib:nick="type-other"/>
      <member name="type_scope_container"
              value="22086"
              c:identifier="IANJUTA_SYMBOL_TYPE_SCOPE_CONTAINER"
              glib:nick="type-scope-container"/>
      <member name="type_max"
              value="2097151"
              c:identifier="IANJUTA_SYMBOL_TYPE_MAX"
              glib:nick="type-max"/>
    </enumeration>
    <interface name="Terminal"
               c:symbol-prefix="terminal"
               c:type="IAnjutaTerminal"
               glib:type-name="IAnjutaTerminal"
               glib:get-type="ianjuta_terminal_get_type"
               glib:type-struct="TerminalIface">
      <function name="error_quark" c:identifier="ianjuta_terminal_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="child_exited">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pid" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="status" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="execute_command"
                      invoker="execute_command"
                      throws="1">
        <doc xml:whitespace="preserve">Run the command in a terminal, setting the working directory
and environment variables.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Process ID</doc>
          <type name="gint" c:type="pid_t"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:whitespace="preserve">Working directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="command" transfer-ownership="none">
            <doc xml:whitespace="preserve">Command executed followed by arguments</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="environment" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of additional environment variables</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="execute_command"
              c:identifier="ianjuta_terminal_execute_command"
              throws="1">
        <doc xml:whitespace="preserve">Run the command in a terminal, setting the working directory
and environment variables.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Process ID</doc>
          <type name="gint" c:type="pid_t"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:whitespace="preserve">Working directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="command" transfer-ownership="none">
            <doc xml:whitespace="preserve">Command executed followed by arguments</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="environment" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of additional environment variables</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="child-exited" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="TerminalIface"
            c:type="IAnjutaTerminalIface"
            glib:is-gtype-struct-for="Terminal">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="child_exited">
        <callback name="child_exited">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Terminal" c:type="IAnjutaTerminal*"/>
            </parameter>
            <parameter name="pid" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="execute_command">
        <callback name="execute_command" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">Process ID</doc>
            <type name="gint" c:type="pid_t"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Terminal" c:type="IAnjutaTerminal*"/>
            </parameter>
            <parameter name="directory" transfer-ownership="none">
              <doc xml:whitespace="preserve">Working directory</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="command" transfer-ownership="none">
              <doc xml:whitespace="preserve">Command executed followed by arguments</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="environment" transfer-ownership="none">
              <doc xml:whitespace="preserve">List of additional environment variables</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Todo"
               c:symbol-prefix="todo"
               c:type="IAnjutaTodo"
               glib:type-name="IAnjutaTodo"
               glib:get-type="ianjuta_todo_get_type"
               glib:type-struct="TodoIface">
      <function name="error_quark" c:identifier="ianjuta_todo_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="load" invoker="load" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="load" c:identifier="ianjuta_todo_load" throws="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="TodoIface"
            c:type="IAnjutaTodoIface"
            glib:is-gtype-struct-for="Todo">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="load">
        <callback name="load" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Todo" c:type="IAnjutaTodo*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Vcs"
               c:symbol-prefix="vcs"
               c:type="IAnjutaVcs"
               glib:type-name="IAnjutaVcs"
               glib:get-type="ianjuta_vcs_get_type"
               glib:type-struct="VcsIface">
      <virtual-method name="add" invoker="add" throws="1">
        <doc xml:whitespace="preserve">Add files to the VCS repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="files" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of List of files, represented as #Gfile objects, to add</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="checkout" invoker="checkout" throws="1">
        <doc xml:whitespace="preserve">Check out a copy of a code repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repository_location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location of repository to check out</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:whitespace="preserve">Destination of checked out copy</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancel" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="diff" invoker="diff" introspectable="0" throws="1">
        <doc xml:whitespace="preserve">Generates a unified diff of the file represented by @file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to diff</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when diff data becomes available</doc>
            <type name="VcsDiffCallback" c:type="IAnjutaVcsDiffCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="cancel" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_status"
                      invoker="query_status"
                      introspectable="0"
                      throws="1">
        <doc xml:whitespace="preserve">Querys the status of files in the repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File/directory to query</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">callback to call when data for a particular file is available</doc>
            <type name="VcsStatusCallback" c:type="IAnjutaVcsStatusCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">User data passed to callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="cancel" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove" invoker="remove" throws="1">
        <doc xml:whitespace="preserve">Remove files from the VCS repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="files" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of files, represented as #Gfile objects, to remove</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="status_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="add" c:identifier="ianjuta_vcs_add" throws="1">
        <doc xml:whitespace="preserve">Add files to the VCS repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="files" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of List of files, represented as #Gfile objects, to add</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </method>
      <method name="checkout" c:identifier="ianjuta_vcs_checkout" throws="1">
        <doc xml:whitespace="preserve">Check out a copy of a code repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repository_location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location of repository to check out</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:whitespace="preserve">Destination of checked out copy</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancel" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </method>
      <method name="diff"
              c:identifier="ianjuta_vcs_diff"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Generates a unified diff of the file represented by @file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File to diff</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">Callback to call when diff data becomes available</doc>
            <type name="VcsDiffCallback" c:type="IAnjutaVcsDiffCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="cancel" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_status"
              c:identifier="ianjuta_vcs_query_status"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Querys the status of files in the repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">File/directory to query</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">callback to call when data for a particular file is available</doc>
            <type name="VcsStatusCallback" c:type="IAnjutaVcsStatusCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data passed to callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="cancel" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="ianjuta_vcs_remove" throws="1">
        <doc xml:whitespace="preserve">Remove files from the VCS repository.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="files" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of files, represented as #Gfile objects, to remove</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </parameter>
          <parameter name="notify" transfer-ownership="none">
            <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
            <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="status-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <callback name="VcsDiffCallback" c:type="IAnjutaVcsDiffCallback">
      <doc xml:whitespace="preserve">Called when diff data comes from ianjuta_vcs_diff.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:whitespace="preserve">File being diffed</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="diff" transfer-ownership="none">
          <doc xml:whitespace="preserve">Diff data</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <doc xml:whitespace="preserve">User data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="VcsError"
                 glib:type-name="IAnjutaVcsError"
                 glib:get-type="ianjuta_vcs_error_get_type"
                 c:type="IAnjutaVcsError"
                 glib:error-domain="ianjuta-vcs-quark">
      <doc xml:whitespace="preserve">These enumeration is used to specify errors.</doc>
      <member name="unkown_error"
              value="0"
              c:identifier="IANJUTA_VCS_UNKOWN_ERROR"
              glib:nick="unkown-error"/>
      <function name="quark" c:identifier="ianjuta_vcs_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="VcsIface"
            c:type="IAnjutaVcsIface"
            glib:is-gtype-struct-for="Vcs">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="status_changed">
        <callback name="status_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Vcs" c:type="IAnjutaVcs*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add">
        <callback name="add" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Vcs" c:type="IAnjutaVcs*"/>
            </parameter>
            <parameter name="files" transfer-ownership="none">
              <doc xml:whitespace="preserve">List of List of files, represented as #Gfile objects, to add</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="Gio.File"/>
              </type>
            </parameter>
            <parameter name="notify" transfer-ownership="none">
              <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
              <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="checkout">
        <callback name="checkout" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Vcs" c:type="IAnjutaVcs*"/>
            </parameter>
            <parameter name="repository_location" transfer-ownership="none">
              <doc xml:whitespace="preserve">Location of repository to check out</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="dest" transfer-ownership="none">
              <doc xml:whitespace="preserve">Destination of checked out copy</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="cancel" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="notify" transfer-ownership="none">
              <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
              <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="diff" introspectable="0">
        <callback name="diff" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Vcs" c:type="IAnjutaVcs*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File to diff</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">Callback to call when diff data becomes available</doc>
              <type name="VcsDiffCallback" c:type="IAnjutaVcsDiffCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data passed to @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="cancel" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="notify" transfer-ownership="none">
              <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
              <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_status" introspectable="0">
        <callback name="query_status" introspectable="0" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Vcs" c:type="IAnjutaVcs*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <doc xml:whitespace="preserve">File/directory to query</doc>
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">callback to call when data for a particular file is available</doc>
              <type name="VcsStatusCallback"
                    c:type="IAnjutaVcsStatusCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">User data passed to callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="cancel" transfer-ownership="none" allow-none="1">
              <doc xml:whitespace="preserve">An optional #GCancellable object to cancel the operation, or NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="notify" transfer-ownership="none">
              <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
              <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <callback name="remove" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Vcs" c:type="IAnjutaVcs*"/>
            </parameter>
            <parameter name="files" transfer-ownership="none">
              <doc xml:whitespace="preserve">List of files, represented as #Gfile objects, to remove</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="Gio.File"/>
              </type>
            </parameter>
            <parameter name="notify" transfer-ownership="none">
              <doc xml:whitespace="preserve">#AnjutaAsyncNotify object for finish notification and error reporting.</doc>
              <type name="Anjuta.AsyncNotify" c:type="AnjutaAsyncNotify*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="VcsStatusCallback" c:type="IAnjutaVcsStatusCallback">
      <doc xml:whitespace="preserve">Callback called for each status record returned by
ianjuta_vcs_query_status.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:whitespace="preserve">File representing the file for which status is given</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="status" transfer-ownership="none">
          <doc xml:whitespace="preserve">#AnjutaVcsStatus for the file represented by @file.</doc>
          <type name="Anjuta.VcsStatus" c:type="AnjutaVcsStatus"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <doc xml:whitespace="preserve">User data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <interface name="Wizard"
               c:symbol-prefix="wizard"
               c:type="IAnjutaWizard"
               glib:type-name="IAnjutaWizard"
               glib:get-type="ianjuta_wizard_get_type"
               glib:type-struct="WizardIface">
      <function name="error_quark" c:identifier="ianjuta_wizard_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="activate" invoker="activate" throws="1">
        <doc xml:whitespace="preserve">Called when the wizard should start after some user action</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="activate"
              c:identifier="ianjuta_wizard_activate"
              throws="1">
        <doc xml:whitespace="preserve">Called when the wizard should start after some user action</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </interface>
    <record name="WizardIface"
            c:type="IAnjutaWizardIface"
            glib:is-gtype-struct-for="Wizard">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="activate">
        <callback name="activate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="Wizard" c:type="IAnjutaWizard*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function name="buildable_error_quark"
              c:identifier="ianjuta_buildable_error_quark"
              moved-to="Buildable.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="builder_error_quark"
              c:identifier="ianjuta_builder_error_quark"
              moved-to="BuilderError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debug_manager_error_quark"
              c:identifier="ianjuta_debug_manager_error_quark"
              moved-to="DebugManager.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debugger_breakpoint_error_quark"
              c:identifier="ianjuta_debugger_breakpoint_error_quark"
              moved-to="DebuggerBreakpoint.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debugger_error_quark"
              c:identifier="ianjuta_debugger_error_quark"
              moved-to="DebuggerError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debugger_instruction_error_quark"
              c:identifier="ianjuta_debugger_instruction_error_quark"
              moved-to="DebuggerInstruction.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debugger_memory_error_quark"
              c:identifier="ianjuta_debugger_memory_error_quark"
              moved-to="DebuggerMemory.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debugger_register_error_quark"
              c:identifier="ianjuta_debugger_register_error_quark"
              moved-to="DebuggerRegister.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="debugger_variable_error_quark"
              c:identifier="ianjuta_debugger_variable_error_quark"
              moved-to="DebuggerVariable.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="document_error_quark"
              c:identifier="ianjuta_document_error_quark"
              moved-to="Document.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="document_manager_error_quark"
              c:identifier="ianjuta_document_manager_error_quark"
              moved-to="DocumentManagerError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_assist_error_quark"
              c:identifier="ianjuta_editor_assist_error_quark"
              moved-to="EditorAssist.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_cell_error_quark"
              c:identifier="ianjuta_editor_cell_error_quark"
              moved-to="EditorCell.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_cell_style_error_quark"
              c:identifier="ianjuta_editor_cell_style_error_quark"
              moved-to="EditorCellStyle.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_comment_error_quark"
              c:identifier="ianjuta_editor_comment_error_quark"
              moved-to="EditorComment.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_convert_error_quark"
              c:identifier="ianjuta_editor_convert_error_quark"
              moved-to="EditorConvert.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_error_quark"
              c:identifier="ianjuta_editor_error_quark"
              moved-to="EditorError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_factory_error_quark"
              c:identifier="ianjuta_editor_factory_error_quark"
              moved-to="EditorFactory.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_folds_error_quark"
              c:identifier="ianjuta_editor_folds_error_quark"
              moved-to="EditorFolds.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_glade_signal_error_quark"
              c:identifier="ianjuta_editor_glade_signal_error_quark"
              moved-to="EditorGladeSignal.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_goto_error_quark"
              c:identifier="ianjuta_editor_goto_error_quark"
              moved-to="EditorGoto.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_hover_error_quark"
              c:identifier="ianjuta_editor_hover_error_quark"
              moved-to="EditorHover.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_language_error_quark"
              c:identifier="ianjuta_editor_language_error_quark"
              moved-to="EditorLanguage.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_line_mode_error_quark"
              c:identifier="ianjuta_editor_line_mode_error_quark"
              moved-to="EditorLineMode.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_search_error_quark"
              c:identifier="ianjuta_editor_search_error_quark"
              moved-to="EditorSearch.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_selection_error_quark"
              c:identifier="ianjuta_editor_selection_error_quark"
              moved-to="EditorSelection.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_tip_error_quark"
              c:identifier="ianjuta_editor_tip_error_quark"
              moved-to="EditorTip.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_view_error_quark"
              c:identifier="ianjuta_editor_view_error_quark"
              moved-to="EditorView.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="editor_zoom_error_quark"
              c:identifier="ianjuta_editor_zoom_error_quark"
              moved-to="EditorZoom.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="environment_error_quark"
              c:identifier="ianjuta_environment_error_quark"
              moved-to="EnvironmentError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_error_quark"
              c:identifier="ianjuta_file_error_quark"
              moved-to="File.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_loader_error_quark"
              c:identifier="ianjuta_file_loader_error_quark"
              moved-to="FileLoader.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_manager_error_quark"
              c:identifier="ianjuta_file_manager_error_quark"
              moved-to="FileManager.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_savable_error_quark"
              c:identifier="ianjuta_file_savable_error_quark"
              moved-to="FileSavable.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="help_error_quark"
              c:identifier="ianjuta_help_error_quark"
              moved-to="Help.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="indenter_error_quark"
              c:identifier="ianjuta_indenter_error_quark"
              moved-to="Indenter.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="indicable_error_quark"
              c:identifier="ianjuta_indicable_error_quark"
              moved-to="Indicable.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="iterable_error_quark"
              c:identifier="ianjuta_iterable_error_quark"
              moved-to="Iterable.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="iterable_tree_error_quark"
              c:identifier="ianjuta_iterable_tree_error_quark"
              moved-to="IterableTree.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="language_error_quark"
              c:identifier="ianjuta_language_error_quark"
              moved-to="Language.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="language_provider_error_quark"
              c:identifier="ianjuta_language_provider_error_quark"
              moved-to="LanguageProvider.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="loader_error_quark"
              c:identifier="ianjuta_loader_error_quark"
              moved-to="Loader.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="markable_error_quark"
              c:identifier="ianjuta_markable_error_quark"
              moved-to="MarkableError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="message_manager_error_quark"
              c:identifier="ianjuta_message_manager_error_quark"
              moved-to="MessageManagerError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="message_view_error_quark"
              c:identifier="ianjuta_message_view_error_quark"
              moved-to="MessageView.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="plugin_factory_error_quark"
              c:identifier="ianjuta_plugin_factory_error_quark"
              moved-to="PluginFactoryError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="preferences_error_quark"
              c:identifier="ianjuta_preferences_error_quark"
              moved-to="Preferences.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="print_error_quark"
              c:identifier="ianjuta_print_error_quark"
              moved-to="Print.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="project_backend_error_quark"
              c:identifier="ianjuta_project_backend_error_quark"
              moved-to="ProjectBackend.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="project_chooser_error_quark"
              c:identifier="ianjuta_project_chooser_error_quark"
              moved-to="ProjectChooser.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="project_error_quark"
              c:identifier="ianjuta_project_error_quark"
              moved-to="ProjectError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="project_manager_error_quark"
              c:identifier="ianjuta_project_manager_error_quark"
              moved-to="ProjectManager.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="provider_error_quark"
              c:identifier="ianjuta_provider_error_quark"
              moved-to="Provider.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="snippets_manager_error_quark"
              c:identifier="ianjuta_snippets_manager_error_quark"
              moved-to="SnippetsManager.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="stream_error_quark"
              c:identifier="ianjuta_stream_error_quark"
              moved-to="Stream.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="stream_loader_error_quark"
              c:identifier="ianjuta_stream_loader_error_quark"
              moved-to="StreamLoader.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="stream_savable_error_quark"
              c:identifier="ianjuta_stream_savable_error_quark"
              moved-to="StreamSavable.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="symbol_error_quark"
              c:identifier="ianjuta_symbol_error_quark"
              moved-to="Symbol.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="symbol_manager_error_quark"
              c:identifier="ianjuta_symbol_manager_error_quark"
              moved-to="SymbolManager.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="symbol_query_error_quark"
              c:identifier="ianjuta_symbol_query_error_quark"
              moved-to="SymbolQuery.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="terminal_error_quark"
              c:identifier="ianjuta_terminal_error_quark"
              moved-to="Terminal.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="todo_error_quark"
              c:identifier="ianjuta_todo_error_quark"
              moved-to="Todo.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="vcs_error_quark"
              c:identifier="ianjuta_vcs_error_quark"
              moved-to="VcsError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="wizard_error_quark"
              c:identifier="ianjuta_wizard_error_quark"
              moved-to="Wizard.error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
