<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gtk" version="3.0"/>
  <include name="InfGtk" version="0.7"/>
  <include name="InfText" version="0.7"/>
  <package name="libinftextgtk-0.7"/>
  <namespace name="InfTextGtk"
             version="0.7"
             shared-library="libinftextgtk-0.7.so.0"
             c:identifier-prefixes="InfTextGtk"
             c:symbol-prefixes="inf_text_gtk">
    <class name="Buffer"
           c:symbol-prefix="buffer"
           c:type="InfTextGtkBuffer"
           parent="GObject.Object"
           glib:type-name="InfTextGtkBuffer"
           glib:get-type="inf_text_gtk_buffer_get_type"
           glib:type-struct="BufferClass">
      <doc xml:space="preserve">#InfTextGtkBuffer is an opaque data type. You should only access it via the
public API functions.</doc>
      <implements name="InfText.Buffer"/>
      <implements name="Infinity.Buffer"/>
      <constructor name="new" c:identifier="inf_text_gtk_buffer_new">
        <doc xml:space="preserve">Creates a new #InfTextGtkBuffer wrapping @buffer. It implements the
#InfTextBuffer interface by using @buffer to store the text. User colors
are read from the users from @user_table.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
          <type name="Buffer" c:type="InfTextGtkBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">The underlaying #GtkTextBuffer.</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
          <parameter name="user_table" transfer-ownership="none">
            <doc xml:space="preserve">The #InfUserTable containing the participating users.</doc>
            <type name="Infinity.UserTable" c:type="InfUserTable*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="backward_to_author_toggle"
              c:identifier="inf_text_gtk_buffer_backward_to_author_toggle">
        <doc xml:space="preserve">Moves @iter to the previous point in @buffer's underlying #GtkTextBuffer
where the text has been written by another user. If @iter points to the
beginning of the buffer, then the function does nothing and returns %FALSE.
Otherwise it returns %TRUE and sets @user_on to the user which has written
the text on the right hand side of the location @iter has been moved to (if
non-%NULL) and @user_off to the user which has written the left hand side
of the location @iter has been moved to.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @iter was moved, or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter pointing into @buffer's underlying #GtkTextBuffer.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="user_on"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">A location to store a #InfTextUser, or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser**"/>
          </parameter>
          <parameter name="user_off"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">Another location to store a #InfTextUser,
or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser**"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_author_tags_priority"
              c:identifier="inf_text_gtk_buffer_ensure_author_tags_priority">
        <doc xml:space="preserve">Ensures that all author tags have the lowest priority of all tags in the
underlying #GtkTextBuffer's tag table. Normally you do not need to use
this function if you do not set the priority for your tags explicitely.
However, if you do (or are forced to do, because you are using a library
that does this, such as GtkSourceView), then you can call this function
afterwards to make sure all the user tags have the lowest priority.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_to_author_toggle"
              c:identifier="inf_text_gtk_buffer_forward_to_author_toggle">
        <doc xml:space="preserve">Moves @iter to the next point in @buffer's underlying #GtkTextBuffer where
the text has been written by another user. If @iter points to the end of
the buffer, then the function does nothing and returns %FALSE. Otherwise
it returns %TRUE and sets @user_on to the user which has written the text
on the right hand side of the location @iter has been moved to (if
non-%NULL) and @user_off to the user which has written the left hand side
of the location @iter has been moved to.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @iter was moved, or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter pointing into @buffer's underlying #GtkTextBuffer.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="user_on"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">A location to store a #InfTextUser, or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser**"/>
          </parameter>
          <parameter name="user_off"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">Another location to store a #InfTextUser,
or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_active_user"
              c:identifier="inf_text_gtk_buffer_get_active_user">
        <doc xml:space="preserve">Returns the current active user for @buffer.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #InfTextUser.</doc>
          <type name="InfText.User" c:type="InfTextUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_author" c:identifier="inf_text_gtk_buffer_get_author">
        <doc xml:space="preserve">Returns the #InfTextUser which wrote the character at @location. If there
is no such user, then %NULL is returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #InfTextUser, or %NULL.</doc>
          <type name="InfText.User" c:type="InfTextUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter which is not the end iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_saturation"
              c:identifier="inf_text_gtk_buffer_get_saturation">
        <doc xml:space="preserve">Returns the saturation part of the HSV user color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The saturation used for user colors.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_user_colors"
              c:identifier="inf_text_gtk_buffer_get_show_user_colors">
        <doc xml:space="preserve">Returns whether newly written text is attributed with the author's user
color or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if user color is applied to newly written text, or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_buffer"
              c:identifier="inf_text_gtk_buffer_get_text_buffer">
        <doc xml:space="preserve">Returns the underlaying #GtkTextBuffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkTextBuffer.</doc>
          <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_for_tag"
              c:identifier="inf_text_gtk_buffer_get_user_for_tag">
        <doc xml:space="preserve">If @tag is an author tag, i.e. used by @buffer to mark text that a certain
user has written, then this function returns the #InfTextUser whose text is
marked by @tag. If @tag is not an author tag then the function returns
%NULL.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #InfTextUser, or %NULL.</doc>
          <type name="InfText.User" c:type="InfTextUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextTag from @buffer's underlying #GtkTextBuffer's tag table.</doc>
            <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="inf_text_gtk_buffer_get_value">
        <doc xml:space="preserve">Returns the value part of the HSV user color.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value used for user colors.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wake_on_cursor_movement"
              c:identifier="inf_text_gtk_buffer_get_wake_on_cursor_movement">
        <doc xml:space="preserve">Returns whether movement of the insertion point or selection bound of the
underlying text buffer causes whether the active user (see
inf_text_gtk_buffer_set_active_user()) to become active when its status
is %INF_USER_INACTIVE. See also
inf_text_gtk_buffer_set_wake_on_cursor_movement().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether to make inactive users active when the insertion mark
is moved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_author_toggle"
              c:identifier="inf_text_gtk_buffer_is_author_toggle">
        <doc xml:space="preserve">This function returns %TRUE if the author of the text in @buffer changes
at @iter, or %FALSE otherwise. If it returns %TRUE, then the user who
authored the text to the right hand side of @iter is stored in @user_on (if
non-%NULL) and the author of the text to the left hand side of @iter is
stored in @user_off (if non-%NULL). Both can also be set to %NULL if there
is unowned text in the buffer or if @iter is at the start or end of the
buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether text attribution changes at @iter.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter pointing into @buffer's underlying #GtkTextBuffer.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="user_on"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">A location to store a #InfTextUser, or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser**"/>
          </parameter>
          <parameter name="user_off"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">Another location to store a #InfTextUser,
or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_active_user"
              c:identifier="inf_text_gtk_buffer_set_active_user">
        <doc xml:space="preserve">Sets the active user for @buffer. The active user is the user by which
edits not issued through the #InfTextBuffer interface are performed (for
example, edits by the user when the underlaying buffer is displayed in
a #GtkTextView).

Note that such modifications should not be performed when no active user is
set. Note also the active user must be available and have the
%INF_USER_LOCAL flag set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="user"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #InfTextUser, or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fade" c:identifier="inf_text_gtk_buffer_set_fade">
        <doc xml:space="preserve">This functions can be used to show the user background color with limited
intensity, such that the background of the #GtkTextView showing the buffer
partly shines through.

An @alpha value of 1.0 means to fully show the user background color, a
value of 0.0 means to show the given background color. Values inbetween
interpolate linearly between the two colors in RGB color space.

The default value for @alpha is 1.0.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="alpha" transfer-ownership="none">
            <doc xml:space="preserve">An alpha value between 0.0 and 1.0.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_saturation_value"
              c:identifier="inf_text_gtk_buffer_set_saturation_value">
        <doc xml:space="preserve">Sets the saturation and value to use for user colors in a HSV color model.
The hue is defined by each user's individual color. The reason why S and V
are set locally the same for all users is that they can be adjusted
depending on one's theme: Dark themes want dark user colors, bright themes
want bright ones.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="saturation" transfer-ownership="none">
            <doc xml:space="preserve">Saturation to use for user colors.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">Value to use for user colors.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_user_colors"
              c:identifier="inf_text_gtk_buffer_set_show_user_colors">
        <doc xml:space="preserve">If @show is %TRUE (the default), then the user color is used as background
for newly written text by that user. Otherwise, newly written text has no
background color.

Note that this setting is for newly written text only. If you want to show
or hide user colors for existing text use
inf_text_gtk_buffer_show_user_colors().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">Whether to show user colors or not.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wake_on_cursor_movement"
              c:identifier="inf_text_gtk_buffer_set_wake_on_cursor_movement">
        <doc xml:space="preserve">This function spcecifies whether movement of the insertion point or
selection bound of the underlying text buffer causes the active user
(see inf_text_gtk_buffer_set_active_user()) to become active when its
status is %INF_USER_INACTIVE.

If @wake is %TRUE, then the user status changes to %INF_USER_ACTIVE
in that case. If @wake is %FALSE, then the user status stays
%INF_USER_INACTIVE, and its caret-position and selection-length
properties will be no longer be synchronized to the buffer marks until
the user is set active again.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="wake" transfer-ownership="none">
            <doc xml:space="preserve">Whether to make inactive users active on cursor movement.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_user_colors"
              c:identifier="inf_text_gtk_buffer_show_user_colors">
        <doc xml:space="preserve">If @show is %FALSE, then don't show user colors (which user wrote what
text) as the background of the text, in the range from @start to @end.
If @show is %TRUE, show user colors if they have previously been hidden
via a call to this function with @show being %FALSE.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">Whether to show or hide user colors.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve">Beginning of the range for which to show
or hide user colors.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve">End of the range for which to show or hide
user colors.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="active-user" writable="1" transfer-ownership="none">
        <type name="InfText.User"/>
      </property>
      <property name="alpha" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.TextBuffer"/>
      </property>
      <property name="saturation" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="show-user-colors" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-table"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Infinity.UserTable"/>
      </property>
      <property name="value" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="wake-on-cursor-movement"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BufferClass"
            c:type="InfTextGtkBufferClass"
            glib:is-gtype-struct-for="Buffer">
      <doc xml:space="preserve">This structure does not contain any public fields.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="HueChooser"
           c:symbol-prefix="hue_chooser"
           c:type="InfTextGtkHueChooser"
           parent="Gtk.Widget"
           glib:type-name="InfTextGtkHueChooser"
           glib:get-type="inf_text_gtk_hue_chooser_get_type"
           glib:type-struct="HueChooserClass">
      <doc xml:space="preserve">#InfTextGtkHueChooser is an opaque data type. You should only access it
via the public API functions.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="inf_text_gtk_hue_chooser_new">
        <doc xml:space="preserve">Creates a new #InfTextGtkHueChooser widget with the initial hue set to 0.0
(red).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A newly created #InfTextGtkHueChooser.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_hue"
                   c:identifier="inf_text_gtk_hue_chooser_new_with_hue">
        <doc xml:space="preserve">Creates a new #InfTextGtkHueChooser widget with the given hue as initial
value. @hue must be between 0.0 and 1.0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A newly created #InfTextGtkHueChooser.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="hue" transfer-ownership="none">
            <doc xml:space="preserve">Initial hue value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="hue_change">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
          </instance-parameter>
          <parameter name="hue" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_hue" c:identifier="inf_text_gtk_hue_chooser_get_hue">
        <doc xml:space="preserve">Returns the currently selected hue value of @chooser.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current hue value, a number between 0.0 and 1.0.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkHueChooser.</doc>
            <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_hue" c:identifier="inf_text_gtk_hue_chooser_set_hue">
        <doc xml:space="preserve">Sets the current hue value of @chooser to @hue. @hue must be between 0.0
and 1.0.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkHueChooser.</doc>
            <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
          </instance-parameter>
          <parameter name="hue" transfer-ownership="none">
            <doc xml:space="preserve">New hue value.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="hue"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Gtk.Widget" c:type="GtkWidget"/>
      </field>
      <glib:signal name="hue-change" when="last">
        <doc xml:space="preserve">This signal is emitted whenever the hue value is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="hue" transfer-ownership="none">
            <doc xml:space="preserve">The new hue value.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move" when="last" action="1">
        <doc xml:space="preserve">This is an action signal emitted when the selection is moved by the user.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve">The direction in which the move was mode.</doc>
            <type name="Gtk.DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="HueChooserClass"
            c:type="InfTextGtkHueChooserClass"
            glib:is-gtype-struct-for="HueChooser">
      <doc xml:space="preserve">This structure contains default signal handlers of the
#InfTextGtkHueChooser class.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="hue_change">
        <callback name="hue_change">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="chooser" transfer-ownership="none">
              <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
            </parameter>
            <parameter name="hue" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move">
        <callback name="move">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="chooser" transfer-ownership="none">
              <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="View"
           c:symbol-prefix="view"
           c:type="InfTextGtkView"
           parent="GObject.Object"
           glib:type-name="InfTextGtkView"
           glib:get-type="inf_text_gtk_view_get_type"
           glib:type-struct="ViewClass">
      <doc xml:space="preserve">#InfTextGtkView is an opaque data type. You should only access it via the
public API functions.</doc>
      <constructor name="new" c:identifier="inf_text_gtk_view_new">
        <doc xml:space="preserve">Creates a new #InfTextGtkView for @view. This draws remote user's cursors
and selections into the text view.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #InfTextGtkView.</doc>
          <type name="View" c:type="InfTextGtkView*"/>
        </return-value>
        <parameters>
          <parameter name="io" transfer-ownership="none">
            <doc xml:space="preserve">A #InfIo.</doc>
            <type name="Infinity.Io" c:type="InfIo*"/>
          </parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextView.</doc>
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
          <parameter name="user_table" transfer-ownership="none">
            <doc xml:space="preserve">The #InfUserTable for the text session displayed in @view.</doc>
            <type name="Infinity.UserTable" c:type="InfUserTable*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_active_user"
              c:identifier="inf_text_gtk_view_get_active_user">
        <doc xml:space="preserve">Returns the active user of @view. See inf_text_gtk_view_set_active_user().</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The active user of @view.</doc>
          <type name="InfText.User" c:type="InfTextUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_view"
              c:identifier="inf_text_gtk_view_get_text_view">
        <doc xml:space="preserve">Returns the underlying #GtkTextView.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The #InfTextGtkView's #GtkTextView.</doc>
          <type name="Gtk.TextView" c:type="GtkTextView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_table"
              c:identifier="inf_text_gtk_view_get_user_table">
        <doc xml:space="preserve">Returns the #InfUserTable containing the users of the session the
#InfTextGtkView's #GtkTextView is displaying.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The #InfTextGtkView's #InfUserTable.</doc>
          <type name="Infinity.UserTable" c:type="InfUserTable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active_user"
              c:identifier="inf_text_gtk_view_set_active_user">
        <doc xml:space="preserve">Sets the user for which perspective to draw the view. The selection and
cursor position is not drawn for this user since it is assumed that the
view's buffer cursor position and selection match the active user ones
(which is automatically the case if the buffer is managed by a
#InfTextGtkBuffer).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="user"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A user from @view's user table, or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_remote_current_lines"
              c:identifier="inf_text_gtk_view_set_show_remote_current_lines">
        <doc xml:space="preserve">If @show is %TRUE then all lines in which the cursor of a non-local user
in %INF_USER_ACTIVE status is is highlighted with that user's color, similar
to GtkSourceView's "highlight current line" functionality. If it is %FALSE
then the current line of non-local users is not highlighted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">Whether to highlight the current line of non-local users.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_remote_cursors"
              c:identifier="inf_text_gtk_view_set_show_remote_cursors">
        <doc xml:space="preserve">If @show is %TRUE then @view draws a cursor for each non-local user in
%INF_USER_ACTIVE status in that user's color into its underlying
#GtkTextView. If it is %FALSE then remote cursors are not drawn.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">Whether to show cursors of non-local users.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_remote_selections"
              c:identifier="inf_text_gtk_view_set_show_remote_selections">
        <doc xml:space="preserve">If @show is %TRUE then @view draws the selection ranges for each non-local
user in %INF_USER_ACTIVE status. The selection range is drawn shaded in
that user's color on top of the author color which indicates who wrote the
selected text. If more than one user has a given piece of text selected
then an alternating stripe pattern with each of the user's colors is drawn.
If @show is %FALSE then selection ranges of remote users are not drawn.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">Whether to show selections of non-local users.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="active-user" writable="1" transfer-ownership="none">
        <type name="InfText.User"/>
      </property>
      <property name="io"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Infinity.Io"/>
      </property>
      <property name="show-remote-current-lines"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-remote-cursors"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-remote-selections"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-table"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Infinity.UserTable"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.TextView"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ViewClass"
            c:type="InfTextGtkViewClass"
            glib:is-gtype-struct-for="View">
      <doc xml:space="preserve">This structure does not contain any public fields.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Viewport"
           c:symbol-prefix="viewport"
           c:type="InfTextGtkViewport"
           parent="GObject.Object"
           glib:type-name="InfTextGtkViewport"
           glib:get-type="inf_text_gtk_viewport_get_type"
           glib:type-struct="ViewportClass">
      <doc xml:space="preserve">#InfTextGtkViewport is an opaque data type. You should only access it via
the public API functions.</doc>
      <constructor name="new" c:identifier="inf_text_gtk_viewport_new">
        <doc xml:space="preserve">Creates a new #InfTextGtkViewport for @scroll. This draws the position of
remote user's cursors into the scrollbars of @scroll.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #InfTextGtkViewport.</doc>
          <type name="Viewport" c:type="InfTextGtkViewport*"/>
        </return-value>
        <parameters>
          <parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkScrolledWindow.</doc>
            <type name="Gtk.ScrolledWindow" c:type="GtkScrolledWindow*"/>
          </parameter>
          <parameter name="user_table" transfer-ownership="none">
            <doc xml:space="preserve">The #InfUserTable for the text session displayed in @viewport.</doc>
            <type name="Infinity.UserTable" c:type="InfUserTable*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_active_user"
              c:identifier="inf_text_gtk_viewport_get_active_user">
        <doc xml:space="preserve">Returns the active user of @viewport. See
inf_text_gtk_viewport_set_active_user().</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The active user of @viewport.</doc>
          <type name="InfText.User" c:type="InfTextUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkViewport.</doc>
            <type name="Viewport" c:type="InfTextGtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scrolled_window"
              c:identifier="inf_text_gtk_viewport_get_scrolled_window">
        <doc xml:space="preserve">Returns the underlying #GtkScrolledWindow.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The #InfTextGtkViewport's #GtkScrolledWindow.</doc>
          <type name="Gtk.ScrolledWindow" c:type="GtkScrolledWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkViewport.</doc>
            <type name="Viewport" c:type="InfTextGtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_table"
              c:identifier="inf_text_gtk_viewport_get_user_table">
        <doc xml:space="preserve">Returns the #InfUserTable containing the users of the session the
#InfTextGtkViewport's #GtkScrolledWindow is displaying.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The #InfTextGtkViewport's #InfUserTable.</doc>
          <type name="Infinity.UserTable" c:type="InfUserTable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkViewport.</doc>
            <type name="Viewport" c:type="InfTextGtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active_user"
              c:identifier="inf_text_gtk_viewport_set_active_user">
        <doc xml:space="preserve">Sets the user for which perspective to draw the viewport. The cursor
position for teh active user is not draws since it is assumed that the
viewport's "real" scrollbars match the active user's position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkViewport.</doc>
            <type name="Viewport" c:type="InfTextGtkViewport*"/>
          </instance-parameter>
          <parameter name="user"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A user from @viewport's user table, or %NULL.</doc>
            <type name="InfText.User" c:type="InfTextUser*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_user_markers"
              c:identifier="inf_text_gtk_viewport_set_show_user_markers">
        <doc xml:space="preserve">If @show is %TRUE then draw a marker indicating the cursor position of all
non-local users with status %INF_USER_ACTIVE in the scrollbar of the
scrolled window. If @show is %FALSE then do not draw user markers into the
scrollbar.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve">A #InfTextGtkViewport.</doc>
            <type name="Viewport" c:type="InfTextGtkViewport*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">Whether to show the position of non-local users.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="active-user" writable="1" transfer-ownership="none">
        <type name="InfText.User"/>
      </property>
      <property name="scrolled-window"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gtk.ScrolledWindow"/>
      </property>
      <property name="show-user-markers"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-table"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Infinity.UserTable"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ViewportClass"
            c:type="InfTextGtkViewportClass"
            glib:is-gtype-struct-for="Viewport">
      <doc xml:space="preserve">This structure does not contain any public fields.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
  </namespace>
</repository>
