<?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="Gdk" version="3.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <package name="vte-2.91"/>
  <c:include name="vte/vte.h"/>
  <namespace name="Vte"
             version="2.91"
             shared-library="libvte-2.91.so.0"
             c:identifier-prefixes="Vte"
             c:symbol-prefixes="vte">
    <record name="CharAttributes" c:type="VteCharAttributes">
      <field name="row" readable="0" private="1">
        <type name="glong" c:type="long"/>
      </field>
      <field name="column" readable="0" private="1">
        <type name="glong" c:type="long"/>
      </field>
      <field name="fore" readable="0" private="1">
        <type name="Pango.Color" c:type="PangoColor"/>
      </field>
      <field name="back" readable="0" private="1">
        <type name="Pango.Color" c:type="PangoColor"/>
      </field>
      <field name="underline" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="strikethrough" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <enumeration name="CursorBlinkMode"
                 glib:type-name="VteCursorBlinkMode"
                 glib:get-type="vte_cursor_blink_mode_get_type"
                 c:type="VteCursorBlinkMode">
      <doc xml:space="preserve">An enumerated type which can be used to indicate the cursor blink mode
for the terminal.</doc>
      <member name="system"
              value="0"
              c:identifier="VTE_CURSOR_BLINK_SYSTEM"
              glib:nick="system">
        <doc xml:space="preserve">Follow GTK+ settings for cursor blinking.</doc>
      </member>
      <member name="on"
              value="1"
              c:identifier="VTE_CURSOR_BLINK_ON"
              glib:nick="on">
        <doc xml:space="preserve">Cursor blinks.</doc>
      </member>
      <member name="off"
              value="2"
              c:identifier="VTE_CURSOR_BLINK_OFF"
              glib:nick="off">
        <doc xml:space="preserve">Cursor does not blink.</doc>
      </member>
    </enumeration>
    <enumeration name="CursorShape"
                 glib:type-name="VteCursorShape"
                 glib:get-type="vte_cursor_shape_get_type"
                 c:type="VteCursorShape">
      <doc xml:space="preserve">An enumerated type which can be used to indicate what should the terminal
draw at the cursor position.</doc>
      <member name="block"
              value="0"
              c:identifier="VTE_CURSOR_SHAPE_BLOCK"
              glib:nick="block">
        <doc xml:space="preserve">Draw a block cursor.  This is the default.</doc>
      </member>
      <member name="ibeam"
              value="1"
              c:identifier="VTE_CURSOR_SHAPE_IBEAM"
              glib:nick="ibeam">
        <doc xml:space="preserve">Draw a vertical bar on the left side of character.
This is similar to the default cursor for other GTK+ widgets.</doc>
      </member>
      <member name="underline"
              value="2"
              c:identifier="VTE_CURSOR_SHAPE_UNDERLINE"
              glib:nick="underline">
        <doc xml:space="preserve">Draw a horizontal bar below the character.</doc>
      </member>
    </enumeration>
    <enumeration name="EraseBinding"
                 glib:type-name="VteEraseBinding"
                 glib:get-type="vte_erase_binding_get_type"
                 c:type="VteEraseBinding">
      <doc xml:space="preserve">An enumerated type which can be used to indicate which string the terminal
should send to an application when the user presses the Delete or Backspace
keys.</doc>
      <member name="auto"
              value="0"
              c:identifier="VTE_ERASE_AUTO"
              glib:nick="auto">
        <doc xml:space="preserve">For backspace, attempt to determine the right value from the terminal's IO settings.  For delete, use the control sequence.</doc>
      </member>
      <member name="ascii_backspace"
              value="1"
              c:identifier="VTE_ERASE_ASCII_BACKSPACE"
              glib:nick="ascii-backspace">
        <doc xml:space="preserve">Send an ASCII backspace character (0x08).</doc>
      </member>
      <member name="ascii_delete"
              value="2"
              c:identifier="VTE_ERASE_ASCII_DELETE"
              glib:nick="ascii-delete">
        <doc xml:space="preserve">Send an ASCII delete character (0x7F).</doc>
      </member>
      <member name="delete_sequence"
              value="3"
              c:identifier="VTE_ERASE_DELETE_SEQUENCE"
              glib:nick="delete-sequence">
        <doc xml:space="preserve">Send the "@@7" control sequence.</doc>
      </member>
      <member name="tty"
              value="4"
              c:identifier="VTE_ERASE_TTY"
              glib:nick="tty">
        <doc xml:space="preserve">Send terminal's "erase" setting.</doc>
      </member>
    </enumeration>
    <constant name="MAJOR_VERSION" value="0" c:type="VTE_MAJOR_VERSION">
      <doc xml:space="preserve">The major version number of the VTE library
(e.g. in version 3.1.4 this is 3).</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="3" c:type="VTE_MICRO_VERSION">
      <doc xml:space="preserve">The micro version number of the VTE library
(e.g. in version 3.1.4 this is 4).</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="48" c:type="VTE_MINOR_VERSION">
      <doc xml:space="preserve">The minor version number of the VTE library
(e.g. in version 3.1.4 this is 1).</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Pty"
           c:symbol-prefix="pty"
           c:type="VtePty"
           parent="GObject.Object"
           glib:type-name="VtePty"
           glib:get-type="vte_pty_get_type"
           glib:type-struct="PtyClass">
      <implements name="Gio.Initable"/>
      <constructor name="new_foreign_sync"
                   c:identifier="vte_pty_new_foreign_sync"
                   throws="1">
        <doc xml:space="preserve">Creates a new #VtePty for the PTY master @fd.

No entry will be made in the lastlog, utmp or wtmp system files.

Note that the newly created #VtePty will take ownership of @fd
and close it on finalize.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #VtePty for @fd, or %NULL on error with @error filled in</doc>
          <type name="Pty" c:type="VtePty*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve">a file descriptor to the PTY</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_sync" c:identifier="vte_pty_new_sync" throws="1">
        <doc xml:space="preserve">Allocates a new pseudo-terminal.

You can later use fork() or the g_spawn_async() family of functions
to start a process on the PTY.

If using fork(), you MUST call vte_pty_child_setup() in the child.

If using g_spawn_async() and friends, you MUST either use
vte_pty_child_setup() directly as the child setup function, or call
vte_pty_child_setup() from your own child setup function supplied.

When using vte_terminal_spawn_sync() with a custom child setup
function, vte_pty_child_setup() will be called before the supplied
function; you must not call it again.

Also, you MUST pass the %G_SPAWN_DO_NOT_REAP_CHILD flag.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #VtePty, or %NULL on error with @error filled in</doc>
          <type name="Pty" c:type="VtePty*"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #VtePtyFlags</doc>
            <type name="PtyFlags" c:type="VtePtyFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="child_setup" c:identifier="vte_pty_child_setup">
        <doc xml:space="preserve">FIXMEchpe</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="close"
              c:identifier="vte_pty_close"
              deprecated="1"
              deprecated-version="0.42">
        <doc xml:space="preserve">Since 0.42 this is a no-op.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fd" c:identifier="vte_pty_get_fd">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the file descriptor of the PTY master in @pty. The
  file descriptor belongs to @pty and must not be closed</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="vte_pty_get_size" throws="1">
        <doc xml:space="preserve">Reads the pseudo terminal's window size.

If getting the window size failed, @error will be set to a #GIOError.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE on failure with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
          <parameter name="rows"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the number of rows, or %NULL</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="columns"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the number of columns, or %NULL</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="vte_pty_set_size" throws="1">
        <doc xml:space="preserve">Attempts to resize the pseudo terminal's window size.  If successful, the
OS kernel will send #SIGWINCH to the child process group.

If setting the window size failed, @error will be set to a #GIOError.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE on failure with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
          <parameter name="rows" transfer-ownership="none">
            <doc xml:space="preserve">the desired number of rows</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve">the desired number of columns</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_utf8" c:identifier="vte_pty_set_utf8" throws="1">
        <doc xml:space="preserve">Tells the kernel whether the terminal is UTF-8 or not, in case it can make
use of the info.  Linux 2.6.5 or so defines IUTF8 to make the line
discipline do multibyte backspace correctly.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE on failure with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
          <parameter name="utf8" transfer-ownership="none">
            <doc xml:space="preserve">whether or not the pty is in UTF-8 mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="spawn_async"
              c:identifier="vte_pty_spawn_async"
              version="0.48">
        <doc xml:space="preserve">Starts the specified command under the pseudo-terminal @pty.
The @argv and @envv lists should be %NULL-terminated.
The "TERM" environment variable is automatically set to a default value,
but can be overridden from @envv.
@pty_flags controls logging the session to the specified system log files.

Note that %G_SPAWN_DO_NOT_REAP_CHILD will always be added to @spawn_flags.

Note that all open file descriptors will be closed in the child. If you want
to keep some file descriptor open for use in the child process, you need to
use a child setup function that unsets the FD_CLOEXEC flag on that file
descriptor.

See vte_pty_new(), g_spawn_async() and vte_terminal_watch_child() for more information.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
          <parameter name="working_directory"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the name of a directory the command should start
  in, or %NULL to use the current working directory</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="argv" transfer-ownership="none">
            <doc xml:space="preserve">child's argument vector</doc>
            <array c:type="char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="envv"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a list of environment
  variables to be added to the environment before starting the process, or %NULL</doc>
            <array c:type="char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="spawn_flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #GSpawnFlags</doc>
            <type name="GLib.SpawnFlags" c:type="GSpawnFlags"/>
          </parameter>
          <parameter name="child_setup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="5"
                     destroy="6">
            <doc xml:space="preserve">an extra child setup function to run in the child just before exec(), or %NULL</doc>
            <type name="GLib.SpawnChildSetupFunc"
                  c:type="GSpawnChildSetupFunc"/>
          </parameter>
          <parameter name="child_setup_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve">user data for @child_setup, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="child_setup_data_destroy"
                     transfer-ownership="none"
                     scope="async"
                     destroy="5">
            <doc xml:space="preserve">a #GDestroyNotify for @child_setup_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value in ms, or -1 to wait indefinitely</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="10">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="spawn_finish"
              c:identifier="vte_pty_spawn_finish"
              version="0.48"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, or %FALSE on error with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pty" transfer-ownership="none">
            <doc xml:space="preserve">a #VtePty</doc>
            <type name="Pty" c:type="VtePty*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="child_pid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the child PID, or %NULL</doc>
            <type name="GLib.Pid" c:type="GPid*"/>
          </parameter>
        </parameters>
      </method>
      <property name="fd"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The file descriptor of the PTY master.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="flags"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Flags.</doc>
        <type name="PtyFlags"/>
      </property>
    </class>
    <record name="PtyClass"
            c:type="VtePtyClass"
            disguised="1"
            glib:is-gtype-struct-for="Pty">
    </record>
    <enumeration name="PtyError"
                 glib:type-name="VtePtyError"
                 glib:get-type="vte_pty_error_get_type"
                 c:type="VtePtyError"
                 glib:error-domain="vte-pty-error">
      <member name="pty_helper_failed"
              value="0"
              c:identifier="VTE_PTY_ERROR_PTY_HELPER_FAILED"
              glib:nick="pty-helper-failed">
        <doc xml:space="preserve">Obsolete. Deprecated: 0.42</doc>
      </member>
      <member name="pty98_failed"
              value="1"
              c:identifier="VTE_PTY_ERROR_PTY98_FAILED"
              glib:nick="pty98-failed">
        <doc xml:space="preserve">failure when using PTY98 to allocate the PTY</doc>
      </member>
      <function name="quark" c:identifier="vte_pty_error_quark">
        <doc xml:space="preserve">Error domain for VTE PTY errors. Errors in this domain will be from the #VtePtyError
enumeration. See #GError for more information on error domains.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the error domain for VTE PTY errors</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="PtyFlags"
              glib:type-name="VtePtyFlags"
              glib:get-type="vte_pty_flags_get_type"
              c:type="VtePtyFlags">
      <member name="no_lastlog"
              value="1"
              c:identifier="VTE_PTY_NO_LASTLOG"
              glib:nick="no-lastlog">
        <doc xml:space="preserve">Unused. Deprecated: 0.38</doc>
      </member>
      <member name="no_utmp"
              value="2"
              c:identifier="VTE_PTY_NO_UTMP"
              glib:nick="no-utmp">
        <doc xml:space="preserve">Unused. Deprecated: 0.38</doc>
      </member>
      <member name="no_wtmp"
              value="4"
              c:identifier="VTE_PTY_NO_WTMP"
              glib:nick="no-wtmp">
        <doc xml:space="preserve">Unused. Deprecated: 0.38</doc>
      </member>
      <member name="no_helper"
              value="8"
              c:identifier="VTE_PTY_NO_HELPER"
              glib:nick="no-helper">
        <doc xml:space="preserve">Unused. Deprecated: 0.38</doc>
      </member>
      <member name="no_fallback"
              value="16"
              c:identifier="VTE_PTY_NO_FALLBACK"
              glib:nick="no-fallback">
        <doc xml:space="preserve">Unused. Deprecated: 0.38</doc>
      </member>
      <member name="default"
              value="0"
              c:identifier="VTE_PTY_DEFAULT"
              glib:nick="default">
        <doc xml:space="preserve">the default flags</doc>
      </member>
    </bitfield>
    <constant name="REGEX_FLAGS_DEFAULT"
              value="1075314688"
              c:type="VTE_REGEX_FLAGS_DEFAULT">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Regex"
            c:type="VteRegex"
            glib:type-name="VteRegex"
            glib:get-type="vte_regex_get_type"
            c:symbol-prefix="regex">
      <constructor name="new_for_match"
                   c:identifier="vte_regex_new_for_match"
                   throws="1">
        <return-value transfer-ownership="full">
          <type name="Regex" c:type="VteRegex*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="pattern_length" transfer-ownership="none">
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_search"
                   c:identifier="vte_regex_new_for_search"
                   throws="1">
        <return-value transfer-ownership="full">
          <type name="Regex" c:type="VteRegex*"/>
        </return-value>
        <parameters>
          <parameter name="pattern" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="pattern_length" transfer-ownership="none">
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="jit" c:identifier="vte_regex_jit" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="regex" transfer-ownership="none">
            <type name="Regex" c:type="VteRegex*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="vte_regex_ref">
        <return-value transfer-ownership="full">
          <type name="Regex" c:type="VteRegex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="regex" transfer-ownership="none">
            <type name="Regex" c:type="VteRegex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="vte_regex_unref">
        <return-value transfer-ownership="full">
          <type name="Regex" c:type="VteRegex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="regex" transfer-ownership="none">
            <type name="Regex" c:type="VteRegex*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RegexError"
                 version="0.46"
                 glib:type-name="VteRegexError"
                 glib:get-type="vte_regex_error_get_type"
                 c:type="VteRegexError"
                 glib:error-domain="vte-regex-error">
      <doc xml:space="preserve">An enum type for regex errors. In addition to the values listed above,
any PCRE2 error values may occur.</doc>
      <member name="incompatible"
              value="2147483646"
              c:identifier="VTE_REGEX_ERROR_INCOMPATIBLE"
              glib:nick="incompatible">
        <doc xml:space="preserve">The PCRE2 library was built without
  Unicode support which is required for VTE</doc>
      </member>
      <member name="not_supported"
              value="2147483647"
              c:identifier="VTE_REGEX_ERROR_NOT_SUPPORTED"
              glib:nick="not-supported">
        <doc xml:space="preserve">Regexes are not supported because VTE was
  built without PCRE2 support</doc>
      </member>
      <function name="quark" c:identifier="vte_regex_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <constant name="SPAWN_NO_PARENT_ENVV"
              value="33554432"
              c:type="VTE_SPAWN_NO_PARENT_ENVV">
      <type name="gint" c:type="gint"/>
    </constant>
    <callback name="SelectionFunc" c:type="VteSelectionFunc">
      <doc xml:space="preserve">Specifies the type of a selection function used to check whether
a cell has to be selected or not.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if cell has to be selected; %FALSE if otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="terminal" transfer-ownership="none">
          <doc xml:space="preserve">terminal in which the cell is.</doc>
          <type name="Terminal" c:type="VteTerminal*"/>
        </parameter>
        <parameter name="column" transfer-ownership="none">
          <doc xml:space="preserve">column in which the cell is.</doc>
          <type name="glong" c:type="glong"/>
        </parameter>
        <parameter name="row" transfer-ownership="none">
          <doc xml:space="preserve">row in which the cell is.</doc>
          <type name="glong" c:type="glong"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve">user data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Terminal"
           c:symbol-prefix="terminal"
           c:type="VteTerminal"
           parent="Gtk.Widget"
           glib:type-name="VteTerminal"
           glib:get-type="vte_terminal_get_type"
           glib:type-struct="TerminalClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="vte_terminal_new">
        <doc xml:space="preserve">Creates a new terminal widget.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #VteTerminal object</doc>
          <type name="Terminal" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="bell">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="char_size_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="char_width" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="char_height" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="child_exited">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="status" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="commit">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="contents_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="copy_clipboard" invoker="copy_clipboard">
        <doc xml:space="preserve">Places the selected text in the terminal in the #GDK_SELECTION_CLIPBOARD
selection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cursor_moved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="decrease_font_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="deiconify_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="encoding_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="eof">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="icon_title_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iconify_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="increase_font_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lower_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="maximize_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="paste_clipboard" invoker="paste_clipboard">
        <doc xml:space="preserve">Sends the contents of the #GDK_SELECTION_CLIPBOARD selection to the
terminal's child.  If necessary, the data is converted from UTF-8 to the
terminal's current encoding. It's called on paste menu item, or when
user presses Shift+Insert.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="raise_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="refresh_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="resize_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="restore_window">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="text_deleted">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="text_inserted">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="text_modified">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="text_scrolled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="delta" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="window_title_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="copy_clipboard" c:identifier="vte_terminal_copy_clipboard">
        <doc xml:space="preserve">Places the selected text in the terminal in the #GDK_SELECTION_CLIPBOARD
selection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy_primary" c:identifier="vte_terminal_copy_primary">
        <doc xml:space="preserve">Places the selected text in the terminal in the #GDK_SELECTION_PRIMARY
selection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="event_check_gregex_simple"
              c:identifier="vte_terminal_event_check_gregex_simple"
              version="0.44"
              deprecated="1"
              deprecated-version="0.46">
        <doc xml:space="preserve">Checks each regex in @regexes if the text in and around the position of
the event matches the regular expressions.  If a match exists, the matched
text is stored in @matches at the position of the regex in @regexes; otherwise
%NULL is stored there.</doc>
        <doc-deprecated xml:space="preserve">Use vte_terminal_event_check_regex_simple() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE iff any of the regexes produced a match</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkEvent</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
          <parameter name="regexes" transfer-ownership="none">
            <doc xml:space="preserve">an array of #GRegex</doc>
            <array length="2" zero-terminated="0" c:type="GRegex**">
              <type name="GLib.Regex" c:type="GRegex*"/>
            </array>
          </parameter>
          <parameter name="n_regexes"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">number of items in @regexes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="match_flags" transfer-ownership="none">
            <doc xml:space="preserve">the #GRegexMatchFlags to use when matching the regexes</doc>
            <type name="GLib.RegexMatchFlags" c:type="GRegexMatchFlags"/>
          </parameter>
          <parameter name="matches"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">a location to store the matches</doc>
            <array length="2" zero-terminated="0" c:type="char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="event_check_regex_simple"
              c:identifier="vte_terminal_event_check_regex_simple"
              version="0.46">
        <doc xml:space="preserve">Checks each regex in @regexes if the text in and around the position of
the event matches the regular expressions.  If a match exists, the matched
text is stored in @matches at the position of the regex in @regexes; otherwise
%NULL is stored there.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE iff any of the regexes produced a match</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkEvent</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
          <parameter name="regexes" transfer-ownership="none">
            <doc xml:space="preserve">an array of #VteRegex</doc>
            <array length="2" zero-terminated="0" c:type="VteRegex**">
              <type name="Regex" c:type="VteRegex*"/>
            </array>
          </parameter>
          <parameter name="n_regexes"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">number of items in @regexes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="match_flags" transfer-ownership="none">
            <doc xml:space="preserve">PCRE2 match flags, or 0</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="matches"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">a location to store the matches</doc>
            <array length="2" zero-terminated="0" c:type="char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="feed" c:identifier="vte_terminal_feed">
        <doc xml:space="preserve">Interprets @data as if it were data received from a child process.  This
can either be used to drive the terminal without a child process, or just
to mess with your users.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">a string in the terminal's current encoding</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">the length of the string, or -1 to use the full length or a nul-terminated string</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="feed_child" c:identifier="vte_terminal_feed_child">
        <doc xml:space="preserve">Sends a block of UTF-8 text to the child as if it were entered by the user
at the keyboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">data to send to the child</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">length of @text in bytes, or -1 if @text is NUL-terminated</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="feed_child_binary"
              c:identifier="vte_terminal_feed_child_binary">
        <doc xml:space="preserve">Sends a block of binary data to the child.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">data to send to the child</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">length of @data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_allow_bold" c:identifier="vte_terminal_get_allow_bold">
        <doc xml:space="preserve">Checks whether or not the terminal will attempt to draw bold text by
repainting text with a one-pixel offset.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if bolding is enabled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_audible_bell"
              c:identifier="vte_terminal_get_audible_bell">
        <doc xml:space="preserve">Checks whether or not the terminal will beep when the child outputs the
"bl" sequence.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if audible bell is enabled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_char_height"
              c:identifier="vte_terminal_get_char_height">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the height of a character cell</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_char_width" c:identifier="vte_terminal_get_char_width">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the width of a character cell</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cjk_ambiguous_width"
              c:identifier="vte_terminal_get_cjk_ambiguous_width">
        <doc xml:space="preserve">Returns whether ambiguous-width characters are narrow or wide when using
the UTF-8 encoding (vte_terminal_set_encoding()).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">1 if ambiguous-width characters are narrow, or 2 if they are wide</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_column_count"
              c:identifier="vte_terminal_get_column_count">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of columns</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_directory_uri"
              c:identifier="vte_terminal_get_current_directory_uri">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URI of the current directory of the
  process running in the terminal, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_file_uri"
              c:identifier="vte_terminal_get_current_file_uri">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URI of the current file the
  process running in the terminal is operating on, or %NULL if
  not set</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cursor_blink_mode"
              c:identifier="vte_terminal_get_cursor_blink_mode">
        <doc xml:space="preserve">Returns the currently set cursor blink mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">cursor blink mode.</doc>
          <type name="CursorBlinkMode" c:type="VteCursorBlinkMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cursor_position"
              c:identifier="vte_terminal_get_cursor_position">
        <doc xml:space="preserve">Reads the location of the insertion cursor and returns it.  The row
coordinate is absolute.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="column"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the column, or %NULL</doc>
            <type name="glong" c:type="glong*"/>
          </parameter>
          <parameter name="row"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the row, or %NULL</doc>
            <type name="glong" c:type="glong*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_cursor_shape"
              c:identifier="vte_terminal_get_cursor_shape">
        <doc xml:space="preserve">Returns the currently set cursor shape.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">cursor shape.</doc>
          <type name="CursorShape" c:type="VteCursorShape"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding" c:identifier="vte_terminal_get_encoding">
        <doc xml:space="preserve">Determines the name of the encoding in which the terminal expects data to be
encoded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the current encoding for the terminal</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font" c:identifier="vte_terminal_get_font">
        <doc xml:space="preserve">Queries the terminal for information about the fonts which will be
used to draw text in the terminal.  The actual font takes the font scale
into account, this is not reflected in the return value, the unscaled
font is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #PangoFontDescription describing the font the
terminal uses to render text at the default font scale of 1.0.</doc>
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font_scale" c:identifier="vte_terminal_get_font_scale">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the terminal's font scale</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_geometry_hints"
              c:identifier="vte_terminal_get_geometry_hints">
        <doc xml:space="preserve">Fills in some @hints from @terminal's geometry. The hints
filled are those covered by the %GDK_HINT_RESIZE_INC,
%GDK_HINT_MIN_SIZE and %GDK_HINT_BASE_SIZE flags.

See gtk_window_set_geometry_hints() for more information.

@terminal must be realized (see gtk_widget_get_realized()).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="hints"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">a #GdkGeometry to fill in</doc>
            <type name="Gdk.Geometry" c:type="GdkGeometry*"/>
          </parameter>
          <parameter name="min_rows" transfer-ownership="none">
            <doc xml:space="preserve">the minimum number of rows to request</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="min_columns" transfer-ownership="none">
            <doc xml:space="preserve">the minimum number of columns to request</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_has_selection"
              c:identifier="vte_terminal_get_has_selection">
        <doc xml:space="preserve">Checks if the terminal currently contains selected text.  Note that this
is different from determining if the terminal is the owner of any
#GtkClipboard items.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if part of the text in the terminal is selected.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_title" c:identifier="vte_terminal_get_icon_title">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the icon title</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_input_enabled"
              c:identifier="vte_terminal_get_input_enabled">
        <doc xml:space="preserve">Returns whether the terminal allow user input.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mouse_autohide"
              c:identifier="vte_terminal_get_mouse_autohide">
        <doc xml:space="preserve">Determines the value of the terminal's mouse autohide setting.  When
autohiding is enabled, the mouse cursor will be hidden when the user presses
a key and shown when the user moves the mouse.  This setting can be changed
using vte_terminal_set_mouse_autohide().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if autohiding is enabled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pty" c:identifier="vte_terminal_get_pty">
        <doc xml:space="preserve">Returns the #VtePty of @terminal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #VtePty, or %NULL</doc>
          <type name="Pty" c:type="VtePty*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rewrap_on_resize"
              c:identifier="vte_terminal_get_rewrap_on_resize">
        <doc xml:space="preserve">Checks whether or not the terminal will rewrap its contents upon resize.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if rewrapping is enabled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_count" c:identifier="vte_terminal_get_row_count">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of rows</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="vte_terminal_get_text">
        <doc xml:space="preserve">Extracts a view of the visible part of the terminal.  If @is_selected is not
%NULL, characters will only be read if @is_selected returns %TRUE after being
passed the column and row, respectively.  A #VteCharAttributes structure
is added to @attributes for each byte added to the returned string detailing
the character's position, colors, and other characteristics.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated text string, or %NULL.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="is_selected"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">a #VteSelectionFunc callback</doc>
            <type name="SelectionFunc" c:type="VteSelectionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="attributes"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="full">
            <doc xml:space="preserve">location for storing text attributes</doc>
            <array zero-terminated="0" name="GLib.Array" c:type="GArray*">
              <type name="CharAttributes"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_include_trailing_spaces"
              c:identifier="vte_terminal_get_text_include_trailing_spaces">
        <doc xml:space="preserve">Extracts a view of the visible part of the terminal.  If @is_selected is not
%NULL, characters will only be read if @is_selected returns %TRUE after being
passed the column and row, respectively.  A #VteCharAttributes structure
is added to @attributes for each byte added to the returned string detailing
the character's position, colors, and other characteristics. This function
differs from vte_terminal_get_text() in that trailing spaces at the end of
lines are included.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated text string, or %NULL.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="is_selected"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">a #VteSelectionFunc callback</doc>
            <type name="SelectionFunc" c:type="VteSelectionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="attributes"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="full">
            <doc xml:space="preserve">location for storing text attributes</doc>
            <array zero-terminated="0" name="GLib.Array" c:type="GArray*">
              <type name="CharAttributes"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_range" c:identifier="vte_terminal_get_text_range">
        <doc xml:space="preserve">Extracts a view of the visible part of the terminal.  If @is_selected is not
%NULL, characters will only be read if @is_selected returns %TRUE after being
passed the column and row, respectively.  A #VteCharAttributes structure
is added to @attributes for each byte added to the returned string detailing
the character's position, colors, and other characteristics.  The
entire scrollback buffer is scanned, so it is possible to read the entire
contents of the buffer using this function.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated text string, or %NULL.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="start_row" transfer-ownership="none">
            <doc xml:space="preserve">first row to search for data</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="start_col" transfer-ownership="none">
            <doc xml:space="preserve">first column to search for data</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="end_row" transfer-ownership="none">
            <doc xml:space="preserve">last row to search for data</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="end_col" transfer-ownership="none">
            <doc xml:space="preserve">last column to search for data</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="is_selected"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="5">
            <doc xml:space="preserve">a #VteSelectionFunc callback</doc>
            <type name="SelectionFunc" c:type="VteSelectionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="attributes"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="full">
            <doc xml:space="preserve">location for storing text attributes</doc>
            <array zero-terminated="0" name="GLib.Array" c:type="GArray*">
              <type name="CharAttributes"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="get_window_title"
              c:identifier="vte_terminal_get_window_title">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the window title</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_word_char_exceptions"
              c:identifier="vte_terminal_get_word_char_exceptions"
              version="0.40">
        <doc xml:space="preserve">Returns the set of characters which will be considered parts of a word
when doing word-wise selection, in addition to the default which only
considers alphanumeric characters part of a word.

If %NULL, a built-in set is used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="match_add_gregex"
              c:identifier="vte_terminal_match_add_gregex"
              deprecated="1"
              deprecated-version="0.46">
        <doc xml:space="preserve">Adds the regular expression @regex to the list of matching expressions.  When the
user moves the mouse cursor over a section of displayed text which matches
this expression, the text will be highlighted.</doc>
        <doc-deprecated xml:space="preserve">Use vte_terminal_match_add_regex() or vte_terminal_match_add_regex_full() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an integer associated with this expression, or -1 if @gregex could not be
  transformed into a #VteRegex or @flags were incompatible</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="gregex" transfer-ownership="none">
            <doc xml:space="preserve">a #GRegex</doc>
            <type name="GLib.Regex" c:type="GRegex*"/>
          </parameter>
          <parameter name="gflags" transfer-ownership="none">
            <doc xml:space="preserve">the #GRegexMatchFlags to use when matching the regex</doc>
            <type name="GLib.RegexMatchFlags" c:type="GRegexMatchFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_add_regex"
              c:identifier="vte_terminal_match_add_regex"
              version="0.46">
        <doc xml:space="preserve">Adds the regular expression @regex to the list of matching expressions.  When the
user moves the mouse cursor over a section of displayed text which matches
this expression, the text will be highlighted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an integer associated with this expression</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="regex" transfer-ownership="none">
            <doc xml:space="preserve">a #VteRegex</doc>
            <type name="Regex" c:type="VteRegex*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">PCRE2 match flags, or 0</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_check"
              c:identifier="vte_terminal_match_check"
              deprecated="1"
              deprecated-version="0.46">
        <doc xml:space="preserve">Checks if the text in and around the specified position matches any of the
regular expressions previously set using vte_terminal_match_add().  If a
match exists, the text string is returned and if @tag is not %NULL, the number
associated with the matched regular expression will be stored in @tag.

If more than one regular expression has been set with
vte_terminal_match_add(), then expressions are checked in the order in
which they were added.</doc>
        <doc-deprecated xml:space="preserve">Use vte_terminal_match_check_event() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated string which matches one of the previously
  set regular expressions</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve">the text column</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="row" transfer-ownership="none">
            <doc xml:space="preserve">the text row</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="tag"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the tag, or %NULL</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_check_event"
              c:identifier="vte_terminal_match_check_event">
        <doc xml:space="preserve">Checks if the text in and around the position of the event matches any of the
regular expressions previously set using vte_terminal_match_add().  If a
match exists, the text string is returned and if @tag is not %NULL, the number
associated with the matched regular expression will be stored in @tag.

If more than one regular expression has been set with
vte_terminal_match_add(), then expressions are checked in the order in
which they were added.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated string which matches one of the previously
  set regular expressions</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkEvent</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
          <parameter name="tag"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the tag, or %NULL</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_remove" c:identifier="vte_terminal_match_remove">
        <doc xml:space="preserve">Removes the regular expression which is associated with the given @tag from
the list of expressions which the terminal will highlight when the user
moves the mouse cursor over matching text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve">the tag of the regex to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_remove_all"
              c:identifier="vte_terminal_match_remove_all">
        <doc xml:space="preserve">Clears the list of regular expressions the terminal uses to highlight text
when the user moves the mouse cursor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="match_set_cursor"
              c:identifier="vte_terminal_match_set_cursor"
              deprecated="1"
              deprecated-version="0.40">
        <doc xml:space="preserve">Sets which cursor the terminal will use if the pointer is over the pattern
specified by @tag.  The terminal keeps a reference to @cursor.</doc>
        <doc-deprecated xml:space="preserve">Use vte_terminal_match_set_cursor_type() or vte_terminal_match_set_cursor_named() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve">the tag of the regex which should use the specified cursor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cursor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the #GdkCursor which the terminal should use when the pattern is
  highlighted, or %NULL to use the standard cursor</doc>
            <type name="Gdk.Cursor" c:type="GdkCursor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_set_cursor_name"
              c:identifier="vte_terminal_match_set_cursor_name">
        <doc xml:space="preserve">Sets which cursor the terminal will use if the pointer is over the pattern
specified by @tag.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve">the tag of the regex which should use the specified cursor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cursor_name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the cursor</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_set_cursor_type"
              c:identifier="vte_terminal_match_set_cursor_type">
        <doc xml:space="preserve">Sets which cursor the terminal will use if the pointer is over the pattern
specified by @tag.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve">the tag of the regex which should use the specified cursor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cursor_type" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkCursorType</doc>
            <type name="Gdk.CursorType" c:type="GdkCursorType"/>
          </parameter>
        </parameters>
      </method>
      <method name="paste_clipboard"
              c:identifier="vte_terminal_paste_clipboard">
        <doc xml:space="preserve">Sends the contents of the #GDK_SELECTION_CLIPBOARD selection to the
terminal's child.  If necessary, the data is converted from UTF-8 to the
terminal's current encoding. It's called on paste menu item, or when
user presses Shift+Insert.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="paste_primary" c:identifier="vte_terminal_paste_primary">
        <doc xml:space="preserve">Sends the contents of the #GDK_SELECTION_PRIMARY selection to the terminal's
child.  If necessary, the data is converted from UTF-8 to the terminal's
current encoding.  The terminal will call also paste the
#GDK_SELECTION_PRIMARY selection when the user clicks with the the second
mouse button.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pty_new_sync"
              c:identifier="vte_terminal_pty_new_sync"
              throws="1">
        <doc xml:space="preserve">Creates a new #VtePty, and sets the emulation property
from #VteTerminal:emulation.

See vte_pty_new() for more information.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #VtePty</doc>
          <type name="Pty" c:type="VtePty*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #VtePtyFlags</doc>
            <type name="PtyFlags" c:type="VtePtyFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="vte_terminal_reset">
        <doc xml:space="preserve">Resets as much of the terminal's internal state as possible, discarding any
unprocessed input data, resetting character attributes, cursor state,
national character set state, status line, terminal modes (insert/delete),
selection state, and encoding.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="clear_tabstops" transfer-ownership="none">
            <doc xml:space="preserve">whether to reset tabstops</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="clear_history" transfer-ownership="none">
            <doc xml:space="preserve">whether to empty the terminal's scrollback buffer</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_find_next"
              c:identifier="vte_terminal_search_find_next">
        <doc xml:space="preserve">Searches the next string matching the search regex set with
vte_terminal_search_set_gregex().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a match was found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="search_find_previous"
              c:identifier="vte_terminal_search_find_previous">
        <doc xml:space="preserve">Searches the previous string matching the search regex set with
vte_terminal_search_set_gregex().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a match was found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="search_get_gregex"
              c:identifier="vte_terminal_search_get_gregex"
              deprecated="1"
              deprecated-version="0.46">
        <doc-deprecated xml:space="preserve">use vte_terminal_search_get_regex() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the search #GRegex regex set in @terminal, or %NULL</doc>
          <type name="GLib.Regex" c:type="GRegex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="search_get_regex"
              c:identifier="vte_terminal_search_get_regex"
              version="0.46">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the search #VteRegex regex set in @terminal, or %NULL</doc>
          <type name="Regex" c:type="VteRegex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="search_get_wrap_around"
              c:identifier="vte_terminal_search_get_wrap_around">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether searching will wrap around</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="search_set_gregex"
              c:identifier="vte_terminal_search_set_gregex"
              deprecated="1"
              deprecated-version="0.46">
        <doc xml:space="preserve">Sets the #GRegex regex to search for. Unsets the search regex when passed %NULL.</doc>
        <doc-deprecated xml:space="preserve">use vte_terminal_search_set_regex() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="gregex"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GRegex, or %NULL</doc>
            <type name="GLib.Regex" c:type="GRegex*"/>
          </parameter>
          <parameter name="gflags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #GRegexMatchFlags</doc>
            <type name="GLib.RegexMatchFlags" c:type="GRegexMatchFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_set_regex"
              c:identifier="vte_terminal_search_set_regex"
              version="0.46">
        <doc xml:space="preserve">Sets the regex to search for. Unsets the search regex when passed %NULL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="regex"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #VteRegex, or %NULL</doc>
            <type name="Regex" c:type="VteRegex*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">PCRE2 match flags, or 0</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_set_wrap_around"
              c:identifier="vte_terminal_search_set_wrap_around">
        <doc xml:space="preserve">Sets whether search should wrap around to the beginning of the
terminal content when reaching its end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="wrap_around" transfer-ownership="none">
            <doc xml:space="preserve">whether search should wrap</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_all" c:identifier="vte_terminal_select_all">
        <doc xml:space="preserve">Selects all text within the terminal (including the scrollback buffer).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_allow_bold" c:identifier="vte_terminal_set_allow_bold">
        <doc xml:space="preserve">Controls whether or not the terminal will attempt to draw bold text,
either by using a bold font variant or by repainting text with a different
offset.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="allow_bold" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the terminal should attempt to draw bold text</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_audible_bell"
              c:identifier="vte_terminal_set_audible_bell">
        <doc xml:space="preserve">Controls whether or not the terminal will beep when the child outputs the
"bl" sequence.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="is_audible" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the terminal should beep</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_backspace_binding"
              c:identifier="vte_terminal_set_backspace_binding">
        <doc xml:space="preserve">Modifies the terminal's backspace key binding, which controls what
string or control sequence the terminal sends to its child when the user
presses the backspace key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="binding" transfer-ownership="none">
            <doc xml:space="preserve">a #VteEraseBinding for the backspace key</doc>
            <type name="EraseBinding" c:type="VteEraseBinding"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cjk_ambiguous_width"
              c:identifier="vte_terminal_set_cjk_ambiguous_width">
        <doc xml:space="preserve">This setting controls whether ambiguous-width characters are narrow or wide
when using the UTF-8 encoding (vte_terminal_set_encoding()). In all other encodings,
the width of ambiguous-width characters is fixed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">either 1 (narrow) or 2 (wide)</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_background"
              c:identifier="vte_terminal_set_color_background">
        <doc xml:space="preserve">Sets the background color for text which does not have a specific background
color assigned.  Only has effect when no background image is set and when
the terminal is not transparent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="background" transfer-ownership="none">
            <doc xml:space="preserve">the new background color</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_bold" c:identifier="vte_terminal_set_color_bold">
        <doc xml:space="preserve">Sets the color used to draw bold text in the default foreground color.
If @bold is %NULL then the default color is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="bold"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new bold color or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_cursor"
              c:identifier="vte_terminal_set_color_cursor">
        <doc xml:space="preserve">Sets the background color for text which is under the cursor.  If %NULL, text
under the cursor will be drawn with foreground and background colors
reversed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="cursor_background"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new color to use for the text cursor, or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_cursor_foreground"
              c:identifier="vte_terminal_set_color_cursor_foreground"
              version="0.44">
        <doc xml:space="preserve">Sets the foreground color for text which is under the cursor.  If %NULL, text
under the cursor will be drawn with foreground and background colors
reversed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="cursor_foreground"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new color to use for the text cursor, or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_foreground"
              c:identifier="vte_terminal_set_color_foreground">
        <doc xml:space="preserve">Sets the foreground color used to draw normal text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="foreground" transfer-ownership="none">
            <doc xml:space="preserve">the new foreground color</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_highlight"
              c:identifier="vte_terminal_set_color_highlight">
        <doc xml:space="preserve">Sets the background color for text which is highlighted.  If %NULL,
it is unset.  If neither highlight background nor highlight foreground are set,
highlighted text (which is usually highlighted because it is selected) will
be drawn with foreground and background colors reversed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="highlight_background"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new color to use for highlighted text, or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_highlight_foreground"
              c:identifier="vte_terminal_set_color_highlight_foreground">
        <doc xml:space="preserve">Sets the foreground color for text which is highlighted.  If %NULL,
it is unset.  If neither highlight background nor highlight foreground are set,
highlighted text (which is usually highlighted because it is selected) will
be drawn with foreground and background colors reversed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="highlight_foreground"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new color to use for highlighted text, or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_colors" c:identifier="vte_terminal_set_colors">
        <doc xml:space="preserve">@palette specifies the new values for the 256 palette colors: 8 standard colors,
their 8 bright counterparts, 6x6x6 color cube, and 24 grayscale colors.
Omitted entries will default to a hardcoded value.

@palette_size must be 0, 8, 16, 232 or 256.

If @foreground is %NULL and @palette_size is greater than 0, the new foreground
color is taken from @palette[7].  If @background is %NULL and @palette_size is
greater than 0, the new background color is taken from @palette[0].</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="foreground"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new foreground color, or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
          <parameter name="background"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the new background color, or %NULL</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
          <parameter name="palette"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the color palette</doc>
            <array length="3" zero-terminated="0" c:type="GdkRGBA*">
              <type name="Gdk.RGBA"/>
            </array>
          </parameter>
          <parameter name="palette_size" transfer-ownership="none">
            <doc xml:space="preserve">the number of entries in @palette</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_blink_mode"
              c:identifier="vte_terminal_set_cursor_blink_mode">
        <doc xml:space="preserve">Sets whether or not the cursor will blink. Using %VTE_CURSOR_BLINK_SYSTEM
will use the #GtkSettings::gtk-cursor-blink setting.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">the #VteCursorBlinkMode to use</doc>
            <type name="CursorBlinkMode" c:type="VteCursorBlinkMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_shape"
              c:identifier="vte_terminal_set_cursor_shape">
        <doc xml:space="preserve">Sets the shape of the cursor drawn.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="shape" transfer-ownership="none">
            <doc xml:space="preserve">the #VteCursorShape to use</doc>
            <type name="CursorShape" c:type="VteCursorShape"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_colors"
              c:identifier="vte_terminal_set_default_colors">
        <doc xml:space="preserve">Reset the terminal palette to reasonable compiled-in default color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_delete_binding"
              c:identifier="vte_terminal_set_delete_binding">
        <doc xml:space="preserve">Modifies the terminal's delete key binding, which controls what
string or control sequence the terminal sends to its child when the user
presses the delete key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="binding" transfer-ownership="none">
            <doc xml:space="preserve">a #VteEraseBinding for the delete key</doc>
            <type name="EraseBinding" c:type="VteEraseBinding"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_encoding"
              c:identifier="vte_terminal_set_encoding"
              throws="1">
        <doc xml:space="preserve">Changes the encoding the terminal will expect data from the child to
be encoded with.  For certain terminal types, applications executing in the
terminal can change the encoding. If @codeset is %NULL, it uses "UTF-8".</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the encoding could be changed to the specified one,
 or %FALSE with @error set to %G_CONVERT_ERROR_NO_CONVERSION.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="codeset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a valid #GIConv target, or %NULL to use UTF-8</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font" c:identifier="vte_terminal_set_font">
        <doc xml:space="preserve">Sets the font used for rendering all text displayed by the terminal,
overriding any fonts set using gtk_widget_modify_font().  The terminal
will immediately attempt to load the desired font, retrieve its
metrics, and attempt to resize itself to keep the same number of rows
and columns.  The font scale is applied to the specified font.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="font_desc"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #PangoFontDescription for the desired font, or %NULL</doc>
            <type name="Pango.FontDescription"
                  c:type="const PangoFontDescription*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_scale" c:identifier="vte_terminal_set_font_scale">
        <doc xml:space="preserve">Sets the terminal's font scale to @scale.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve">the font scale</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_geometry_hints_for_window"
              c:identifier="vte_terminal_set_geometry_hints_for_window">
        <doc xml:space="preserve">Sets @terminal as @window's geometry widget. See
gtk_window_set_geometry_hints() for more information.

@terminal must be realized (see gtk_widget_get_realized()).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #GtkWindow</doc>
            <type name="Gtk.Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_input_enabled"
              c:identifier="vte_terminal_set_input_enabled">
        <doc xml:space="preserve">Enables or disables user input. When user input is disabled,
the terminal's child will not receive any key press, or mouse button
press or motion events sent to it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">whether to enable user input</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mouse_autohide"
              c:identifier="vte_terminal_set_mouse_autohide">
        <doc xml:space="preserve">Changes the value of the terminal's mouse autohide setting.  When autohiding
is enabled, the mouse cursor will be hidden when the user presses a key and
shown when the user moves the mouse.  This setting can be read using
vte_terminal_get_mouse_autohide().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">whether the mouse pointer should autohide</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pty" c:identifier="vte_terminal_set_pty">
        <doc xml:space="preserve">Sets @pty as the PTY to use in @terminal.
Use %NULL to unset the PTY.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="pty"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #VtePty, or %NULL</doc>
            <type name="Pty" c:type="VtePty*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rewrap_on_resize"
              c:identifier="vte_terminal_set_rewrap_on_resize">
        <doc xml:space="preserve">Controls whether or not the terminal will rewrap its contents, including
the scrollback history, whenever the terminal's width changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="rewrap" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the terminal should rewrap on resize</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scroll_on_keystroke"
              c:identifier="vte_terminal_set_scroll_on_keystroke">
        <doc xml:space="preserve">Controls whether or not the terminal will forcibly scroll to the bottom of
the viewable history when the user presses a key.  Modifier keys do not
trigger this behavior.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve">whether the terminal should scroll on keystrokes</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scroll_on_output"
              c:identifier="vte_terminal_set_scroll_on_output">
        <doc xml:space="preserve">Controls whether or not the terminal will forcibly scroll to the bottom of
the viewable history when the new data is received from the child.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve">whether the terminal should scroll on output</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scrollback_lines"
              c:identifier="vte_terminal_set_scrollback_lines">
        <doc xml:space="preserve">Sets the length of the scrollback buffer used by the terminal.  The size of
the scrollback buffer will be set to the larger of this value and the number
of visible rows the widget can display, so 0 can safely be used to disable
scrollback.

A negative value means "infinite scrollback".

Note that this setting only affects the normal screen buffer.
No scrollback is allowed on the alternate screen buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve">the length of the history buffer</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="vte_terminal_set_size">
        <doc xml:space="preserve">Attempts to change the terminal's size in terms of rows and columns.  If
the attempt succeeds, the widget will resize itself to the proper size.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve">the desired number of columns</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
          <parameter name="rows" transfer-ownership="none">
            <doc xml:space="preserve">the desired number of rows</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_word_char_exceptions"
              c:identifier="vte_terminal_set_word_char_exceptions"
              version="0.40">
        <doc xml:space="preserve">With this function you can provide a set of characters which will
be considered parts of a word when doing word-wise selection, in
addition to the default which only considers alphanumeric characters
part of a word.

The characters in @exceptions must be non-alphanumeric, each character
must occur only once, and if @exceptions contains the character
U+002D HYPHEN-MINUS, it must be at the start of the string.

Use %NULL to reset the set of exception characters to the default.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="exceptions" transfer-ownership="none">
            <doc xml:space="preserve">a string of ASCII punctuation characters, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="spawn_async"
              c:identifier="vte_terminal_spawn_async"
              version="0.48"
              introspectable="0">
        <doc xml:space="preserve">A convenience function that wraps creating the #VtePty and spawning
the child process on it. See vte_pty_new_sync(), vte_pty_spawn_async(),
and vte_pty_spawn_finish() for more information.

When the operation is finished successfully, @callback will be called
with the child #GPid, and a %NULL #GError. The child PID will already be
watched via vte_terminal_watch_child().

When the operation fails, @callback will be called with a -1 #GPid,
and a non-%NULL #GError containing the error information.

Note that if @terminal has been destroyed before the operation is called,
@callback will be called with a %NULL @terminal; you must not do anything
in the callback besides freeing any resources associated with @user_data,
but taking care not to access the now-destroyed #VteTerminal. Note that
in this case, if spawning was successful, the child process will be aborted
automatically.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="pty_flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #VtePtyFlags</doc>
            <type name="PtyFlags" c:type="VtePtyFlags"/>
          </parameter>
          <parameter name="working_directory"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the name of a directory the command should start
  in, or %NULL to use the current working directory</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="argv" transfer-ownership="none">
            <doc xml:space="preserve">child's argument vector</doc>
            <array c:type="char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="envv"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a list of environment
  variables to be added to the environment before starting the process, or %NULL</doc>
            <array c:type="char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="spawn_flags_" transfer-ownership="none">
            <doc xml:space="preserve">flags from #GSpawnFlags</doc>
            <type name="GLib.SpawnFlags" c:type="GSpawnFlags"/>
          </parameter>
          <parameter name="child_setup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="6"
                     destroy="7">
            <doc xml:space="preserve">an extra child setup function to run in the child just before exec(), or %NULL</doc>
            <type name="GLib.SpawnChildSetupFunc"
                  c:type="GSpawnChildSetupFunc"/>
          </parameter>
          <parameter name="child_setup_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="5">
            <doc xml:space="preserve">user data for @child_setup, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="child_setup_data_destroy"
                     transfer-ownership="none"
                     scope="async"
                     destroy="6">
            <doc xml:space="preserve">a #GDestroyNotify for @child_setup_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="timeout" transfer-ownership="none">
            <doc xml:space="preserve">a timeout value in ms, or -1 to wait indefinitely</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="11">
            <doc xml:space="preserve">a #VteTerminalSpawnAsyncCallback, or %NULL</doc>
            <type name="TerminalSpawnAsyncCallback"
                  c:type="VteTerminalSpawnAsyncCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @callback, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="spawn_sync"
              c:identifier="vte_terminal_spawn_sync"
              deprecated="1"
              deprecated-version="0.48"
              throws="1">
        <doc xml:space="preserve">Starts the specified command under a newly-allocated controlling
pseudo-terminal.  The @argv and @envv lists should be %NULL-terminated.
The "TERM" environment variable is automatically set to a default value,
but can be overridden from @envv.
@pty_flags controls logging the session to the specified system log files.

Note that %G_SPAWN_DO_NOT_REAP_CHILD will always be added to @spawn_flags.

Note that all open file descriptors will be closed in the child. If you want
to keep some file descriptor open for use in the child process, you need to
use a child setup function that unsets the FD_CLOEXEC flag on that file
descriptor.

See vte_pty_new(), g_spawn_async() and vte_terminal_watch_child() for more information.</doc>
        <doc-deprecated xml:space="preserve">Use vte_terminal_spawn_async() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, or %FALSE on error with @error filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="pty_flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #VtePtyFlags</doc>
            <type name="PtyFlags" c:type="VtePtyFlags"/>
          </parameter>
          <parameter name="working_directory"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the name of a directory the command should start
  in, or %NULL to use the current working directory</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="argv" transfer-ownership="none">
            <doc xml:space="preserve">child's argument vector</doc>
            <array c:type="char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="envv"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a list of environment
  variables to be added to the environment before starting the process, or %NULL</doc>
            <array c:type="char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="spawn_flags" transfer-ownership="none">
            <doc xml:space="preserve">flags from #GSpawnFlags</doc>
            <type name="GLib.SpawnFlags" c:type="GSpawnFlags"/>
          </parameter>
          <parameter name="child_setup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="6">
            <doc xml:space="preserve">an extra child setup function to run in the child just before exec(), or %NULL</doc>
            <type name="GLib.SpawnChildSetupFunc"
                  c:type="GSpawnChildSetupFunc"/>
          </parameter>
          <parameter name="child_setup_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @child_setup</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="child_pid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">a location to store the child PID, or %NULL</doc>
            <type name="GLib.Pid" c:type="GPid*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_all" c:identifier="vte_terminal_unselect_all">
        <doc xml:space="preserve">Clears the current selection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="watch_child" c:identifier="vte_terminal_watch_child">
        <doc xml:space="preserve">Watches @child_pid. When the process exists, the #VteTerminal::child-exited
signal will be called with the child's exit status.

Prior to calling this function, a #VtePty must have been set in @terminal
using vte_terminal_set_pty().
When the child exits, the terminal's #VtePty will be set to %NULL.

Note: g_child_watch_add() or g_child_watch_add_full() must not have
been called for @child_pid, nor a #GSource for it been created with
g_child_watch_source_new().

Note: when using the g_spawn_async() family of functions,
the %G_SPAWN_DO_NOT_REAP_CHILD flag MUST have been passed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="child_pid" transfer-ownership="none">
            <doc xml:space="preserve">a #GPid</doc>
            <type name="GLib.Pid" c:type="GPid"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_contents_sync"
              c:identifier="vte_terminal_write_contents_sync"
              throws="1">
        <doc xml:space="preserve">Write contents of the current contents of @terminal (including any
scrollback history) to @stream according to @flags.

If @cancellable is not %NULL, then the operation can be cancelled by triggering
the cancellable object from another thread. If the operation was cancelled,
the error %G_IO_ERROR_CANCELLED will be returned in @error.

This is a synchronous operation and will make the widget (and input
processing) during the write operation, which may take a long time
depending on scrollback history and @stream availability for writing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE if there was an error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="terminal" transfer-ownership="none">
            <doc xml:space="preserve">a #VteTerminal</doc>
            <type name="Terminal" c:type="VteTerminal*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">a #GOutputStream to write to</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">a set of #VteWriteFlags</doc>
            <type name="WriteFlags" c:type="VteWriteFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable object, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="allow-bold" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls whether or not the terminal will attempt to draw bold text.
This may happen either by using a bold font variant, or by
repainting text with a different offset.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="audible-bell" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls whether or not the terminal will beep when the child outputs the
"bl" sequence.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="backspace-binding"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Controls what string or control sequence the terminal sends to its child
when the user presses the backspace key.</doc>
        <type name="EraseBinding"/>
      </property>
      <property name="cjk-ambiguous-width"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">This setting controls whether ambiguous-width characters are narrow or wide
when using the UTF-8 encoding (vte_terminal_set_encoding()). In all other encodings,
the width of ambiguous-width characters is fixed.

This setting only takes effect the next time the terminal is reset, either
via escape sequence or with vte_terminal_reset().</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="current-directory-uri" transfer-ownership="none">
        <doc xml:space="preserve">The current directory URI, or %NULL if unset.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="current-file-uri" transfer-ownership="none">
        <doc xml:space="preserve">The current file URI, or %NULL if unset.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="cursor-blink-mode"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Sets whether or not the cursor will blink. Using %VTE_CURSOR_BLINK_SYSTEM
will use the #GtkSettings::gtk-cursor-blink setting.</doc>
        <type name="CursorBlinkMode"/>
      </property>
      <property name="cursor-shape" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls the shape of the cursor.</doc>
        <type name="CursorShape"/>
      </property>
      <property name="delete-binding" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls what string or control sequence the terminal sends to its child
when the user presses the delete key.</doc>
        <type name="EraseBinding"/>
      </property>
      <property name="encoding" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls the encoding the terminal will expect data from the child to
be encoded with.  For certain terminal types, applications executing in the
terminal can change the encoding.  The default is defined by the
application's locale settings.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="font-desc" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Specifies the font used for rendering all text displayed by the terminal,
overriding any fonts set using gtk_widget_modify_font().  The terminal
will immediately attempt to load the desired font, retrieve its
metrics, and attempt to resize itself to keep the same number of rows
and columns.</doc>
        <type name="Pango.FontDescription"/>
      </property>
      <property name="font-scale" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The terminal's font scale.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="icon-title" transfer-ownership="none">
        <doc xml:space="preserve">The terminal's so-called icon title, or %NULL if no icon title has been set.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="input-enabled" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls whether the terminal allows user input. When user input is disabled,
key press and mouse button press and motion events are not sent to the
terminal's child.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pointer-autohide" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls the value of the terminal's mouse autohide setting.  When autohiding
is enabled, the mouse cursor will be hidden when the user presses a key and
shown when the user moves the mouse.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pty" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The PTY object for the terminal.</doc>
        <type name="Pty"/>
      </property>
      <property name="rewrap-on-resize" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls whether or not the terminal will rewrap its contents, including
the scrollback buffer, whenever the terminal's width changes.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scroll-on-keystroke"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Controls whether or not the terminal will forcibly scroll to the bottom of
the viewable history when the user presses a key.  Modifier keys do not
trigger this behavior.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scroll-on-output" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Controls whether or not the terminal will forcibly scroll to the bottom of
the viewable history when the new data is received from the child.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scrollback-lines" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The length of the scrollback buffer used by the terminal.  The size of
the scrollback buffer will be set to the larger of this value and the number
of visible rows the widget can display, so 0 can safely be used to disable
scrollback.  Note that this setting only affects the normal screen buffer.
For terminal types which have an alternate screen buffer, no scrollback is
allowed on the alternate screen buffer.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="window-title" transfer-ownership="none">
        <doc xml:space="preserve">The terminal's title.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="word-char-exceptions"
                version="0.40"
                transfer-ownership="none">
        <doc xml:space="preserve">The set of characters which will be considered parts of a word
when doing word-wise selection, in addition to the default which only
considers alphanumeric characters part of a word.

If %NULL, a built-in set is used.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="widget">
        <type name="Gtk.Widget" c:type="GtkWidget"/>
      </field>
      <field name="_unused_padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
          <type name="gpointer" c:type="gpointer*"/>
        </array>
      </field>
      <glib:signal name="bell" when="last">
        <doc xml:space="preserve">This signal is emitted when the a child sends a bell request to the
terminal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="char-size-changed" when="last">
        <doc xml:space="preserve">Emitted whenever selection of a new font causes the values of the
%char_width or %char_height fields to change.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the new character cell width</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the new character cell height</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="child-exited" when="last">
        <doc xml:space="preserve">This signal is emitted when the terminal detects that a child
watched using vte_terminal_watch_child() has exited.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:space="preserve">the child's exit status</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="commit" when="last">
        <doc xml:space="preserve">Emitted whenever the terminal receives input from the user and
prepares to send it to the child process.  The signal is emitted even
when there is no child process.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">a string of text</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the length of that string of text</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="contents-changed" when="last">
        <doc xml:space="preserve">Emitted whenever the visible appearance of the terminal has changed.
Used primarily by #VteTerminalAccessible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="copy-clipboard" when="last" action="1">
        <doc xml:space="preserve">Emitted whenever vte_terminal_copy_clipboard() is called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="current-directory-uri-changed" when="last">
        <doc xml:space="preserve">Emitted when the current directory URI is modified.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="current-file-uri-changed" when="last">
        <doc xml:space="preserve">Emitted when the current file URI is modified.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-moved" when="last">
        <doc xml:space="preserve">Emitted whenever the cursor moves to a new character cell.  Used
primarily by #VteTerminalAccessible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="decrease-font-size" when="last">
        <doc xml:space="preserve">Emitted when the user hits the '-' key while holding the Control key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="deiconify-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="encoding-changed" when="last">
        <doc xml:space="preserve">Emitted whenever the terminal's current encoding has changed, either
as a result of receiving a control sequence which toggled between the
local and UTF-8 encodings, or at the parent application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="eof" when="last">
        <doc xml:space="preserve">Emitted when the terminal receives an end-of-file from a child which
is running in the terminal.  This signal is frequently (but not
always) emitted with a #VteTerminal::child-exited signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="icon-title-changed" when="last">
        <doc xml:space="preserve">Emitted when the terminal's %icon_title field is modified.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="iconify-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="increase-font-size" when="last">
        <doc xml:space="preserve">Emitted when the user hits the '+' key while holding the Control key.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="lower-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="maximize-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="move-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">the terminal's desired location, X coordinate</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">the terminal's desired location, Y coordinate</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="paste-clipboard" when="last" action="1">
        <doc xml:space="preserve">Emitted whenever vte_terminal_paste_clipboard() is called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="raise-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="refresh-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="resize-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the desired number of columns</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the desired number of rows</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="restore-window" when="last">
        <doc xml:space="preserve">Emitted at the child application's request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="selection-changed" when="last">
        <doc xml:space="preserve">Emitted whenever the contents of terminal's selection changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="text-deleted" when="last">
        <doc xml:space="preserve">An internal signal used for communication between the terminal and
its accessibility peer. May not be emitted under certain
circumstances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="text-inserted" when="last">
        <doc xml:space="preserve">An internal signal used for communication between the terminal and
its accessibility peer. May not be emitted under certain
circumstances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="text-modified" when="last">
        <doc xml:space="preserve">An internal signal used for communication between the terminal and
its accessibility peer. May not be emitted under certain
circumstances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="text-scrolled" when="last">
        <doc xml:space="preserve">An internal signal used for communication between the terminal and
its accessibility peer. May not be emitted under certain
circumstances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve">the number of lines scrolled</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-title-changed" when="last">
        <doc xml:space="preserve">Emitted when the terminal's %window_title field is modified.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TerminalClass"
            c:type="VteTerminalClass"
            glib:is-gtype-struct-for="Terminal">
      <doc xml:space="preserve">All of these fields should be considered read-only, except for derived classes.</doc>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="eof">
        <callback name="eof">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </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="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="encoding_changed">
        <callback name="encoding_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="char_size_changed">
        <callback name="char_size_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
            <parameter name="char_width" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="char_height" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="window_title_changed">
        <callback name="window_title_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="icon_title_changed">
        <callback name="icon_title_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_changed">
        <callback name="selection_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="contents_changed">
        <callback name="contents_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </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="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="commit">
        <callback name="commit">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deiconify_window">
        <callback name="deiconify_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iconify_window">
        <callback name="iconify_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="raise_window">
        <callback name="raise_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="lower_window">
        <callback name="lower_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="refresh_window">
        <callback name="refresh_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="restore_window">
        <callback name="restore_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="maximize_window">
        <callback name="maximize_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="resize_window">
        <callback name="resize_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_window">
        <callback name="move_window">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="increase_font_size">
        <callback name="increase_font_size">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="decrease_font_size">
        <callback name="decrease_font_size">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="text_modified">
        <callback name="text_modified">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="text_inserted">
        <callback name="text_inserted">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="text_deleted">
        <callback name="text_deleted">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="text_scrolled">
        <callback name="text_scrolled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
            <parameter name="delta" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="copy_clipboard">
        <callback name="copy_clipboard">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <doc xml:space="preserve">a #VteTerminal</doc>
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="paste_clipboard">
        <callback name="paste_clipboard">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <doc xml:space="preserve">a #VteTerminal</doc>
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="bell">
        <callback name="bell">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="terminal" transfer-ownership="none">
              <type name="Terminal" c:type="VteTerminal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="priv">
        <type name="TerminalClassPrivate" c:type="VteTerminalClassPrivate*"/>
      </field>
    </record>
    <record name="TerminalClassPrivate"
            c:type="VteTerminalClassPrivate"
            disguised="1">
    </record>
    <callback name="TerminalSpawnAsyncCallback"
              c:type="VteTerminalSpawnAsyncCallback"
              version="0.48">
      <doc xml:space="preserve">Callback for vte_terminal_spawn_async().

On success, @pid contains the PID of the spawned process, and @error
is %NULL.
On failure, @pid is -1 and @error contains the error information.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="terminal" transfer-ownership="none">
          <doc xml:space="preserve">the #VteTerminal</doc>
          <type name="Terminal" c:type="VteTerminal*"/>
        </parameter>
        <parameter name="pid" transfer-ownership="none">
          <doc xml:space="preserve">a #GPid</doc>
          <type name="GLib.Pid" c:type="GPid"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">a #GError, or %NULL</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve">user data that was passed to vte_terminal_spawn_async</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="WriteFlags"
                 glib:type-name="VteWriteFlags"
                 glib:get-type="vte_write_flags_get_type"
                 c:type="VteWriteFlags">
      <doc xml:space="preserve">A flag type to determine how terminal contents should be written
to an output stream.</doc>
      <member name="default"
              value="0"
              c:identifier="VTE_WRITE_DEFAULT"
              glib:nick="default">
        <doc xml:space="preserve">Write contents as UTF-8 text.  This is the default.</doc>
      </member>
    </enumeration>
    <function name="get_features"
              c:identifier="vte_get_features"
              version="0.40">
      <doc xml:space="preserve">Gets a list of features vte was compiled with.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string with features</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="get_major_version"
              c:identifier="vte_get_major_version"
              version="0.40">
      <doc xml:space="preserve">Returns the major version of the VTE library at runtime.
Contrast this with %VTE_MAJOR_VERSION which represents
the version of the VTE library that the code was compiled
with.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the major version</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_micro_version"
              c:identifier="vte_get_micro_version"
              version="0.40">
      <doc xml:space="preserve">Returns the micro version of the VTE library at runtime.
Contrast this with %VTE_MICRO_VERSION which represents
the version of the VTE library that the code was compiled
with.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the micro version</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_minor_version"
              c:identifier="vte_get_minor_version"
              version="0.40">
      <doc xml:space="preserve">Returns the minor version of the VTE library at runtime.
Contrast this with %VTE_MINOR_VERSION which represents
the version of the VTE library that the code was compiled
with.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the minor version</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_user_shell" c:identifier="vte_get_user_shell">
      <doc xml:space="preserve">Gets the user's shell, or %NULL. In the latter case, the
system default (usually "/bin/sh") should be used.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated string with the
  user's shell, or %NULL</doc>
        <type name="filename" c:type="char*"/>
      </return-value>
    </function>
    <function name="pty_error_quark"
              c:identifier="vte_pty_error_quark"
              moved-to="PtyError.quark">
      <doc xml:space="preserve">Error domain for VTE PTY errors. Errors in this domain will be from the #VtePtyError
enumeration. See #GError for more information on error domains.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the error domain for VTE PTY errors</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="regex_error_quark"
              c:identifier="vte_regex_error_quark"
              moved-to="RegexError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
