<?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:doc="http://www.gtk.org/introspection/doc/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"/>
  <doc:format name="unknown"/>
  <namespace name="InfTextGtk"
             version="0.7"
             shared-library="libinftextgtk-0.7.so.0"
             c:identifier-prefixes="InfTextGtk"
             c:symbol-prefixes="inf_text_gtk">
    <function-macro name="BUFFER"
                    c:identifier="INF_TEXT_GTK_BUFFER"
                    introspectable="0">
      <source-position filename="inf-text-gtk-buffer.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BUFFER_CLASS"
                    c:identifier="INF_TEXT_GTK_BUFFER_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-buffer.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BUFFER_GET_CLASS"
                    c:identifier="INF_TEXT_GTK_BUFFER_GET_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-buffer.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <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"
           filename="inf-text-gtk-buffer.h"
           line="52">#InfTextGtkBuffer is an opaque data type. You should only access it via the
public API functions.</doc>
      <source-position filename="inf-text-gtk-buffer.h" line="50"/>
      <implements name="InfText.Buffer"/>
      <implements name="Infinity.Buffer"/>
      <constructor name="new" c:identifier="inf_text_gtk_buffer_new">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2155">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>
        <source-position filename="inf-text-gtk-buffer.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2164">A #InfTextGtkBuffer.</doc>
          <type name="Buffer" c:type="InfTextGtkBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2157">The underlaying #GtkTextBuffer.</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
          <parameter name="user_table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2158">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"
             filename="inf-text-gtk-buffer.c"
             line="2410">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>
        <source-position filename="inf-text-gtk-buffer.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2426">%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"
                 filename="inf-text-gtk-buffer.c"
                 line="2412">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2413">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2414">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2415">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"
             filename="inf-text-gtk-buffer.c"
             line="2490">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>
        <source-position filename="inf-text-gtk-buffer.h" line="114"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2492">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"
             filename="inf-text-gtk-buffer.c"
             line="2376">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>
        <source-position filename="inf-text-gtk-buffer.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2392">%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"
                 filename="inf-text-gtk-buffer.c"
                 line="2378">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2379">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2380">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2381">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"
              glib:get-property="active-user">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2278">Returns the current active user for @buffer.</doc>
        <source-position filename="inf-text-gtk-buffer.h" line="78"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2284">A #InfTextUser.</doc>
          <type name="InfText.User" c:type="InfTextUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2280">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"
             filename="inf-text-gtk-buffer.c"
             line="2293">Returns the #InfTextUser which wrote the character at @location. If there
is no such user, then %NULL is returned.</doc>
        <source-position filename="inf-text-gtk-buffer.h" line="81"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2301">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2295">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2296">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"
              glib:get-property="saturation">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2614">Returns the saturation part of the HSV user color.</doc>
        <source-position filename="inf-text-gtk-buffer.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2620">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2616">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"
              glib:get-property="show-user-colors">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2666">Returns whether newly written text is attributed with the author's user
color or not.</doc>
        <source-position filename="inf-text-gtk-buffer.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2673">%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"
                 filename="inf-text-gtk-buffer.c"
                 line="2668">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"
             filename="inf-text-gtk-buffer.c"
             line="2185">Returns the underlaying #GtkTextBuffer.</doc>
        <source-position filename="inf-text-gtk-buffer.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2191">A #GtkTextBuffer.</doc>
          <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2187">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"
             filename="inf-text-gtk-buffer.c"
             line="2320">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>
        <source-position filename="inf-text-gtk-buffer.h" line="85"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2330">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2322">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2323">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"
              glib:get-property="value">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2629">Returns the value part of the HSV user color.</doc>
        <source-position filename="inf-text-gtk-buffer.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2635">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2631">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"
              glib:get-property="wake-on-cursor-movement">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2470">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>
        <source-position filename="inf-text-gtk-buffer.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2480">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2472">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"
             filename="inf-text-gtk-buffer.c"
             line="2342">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>
        <source-position filename="inf-text-gtk-buffer.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-buffer.c"
               line="2358">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2344">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2345">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2346">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2347">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"
              glib:set-property="active-user">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2200">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>
        <source-position filename="inf-text-gtk-buffer.h" line="74"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2202">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2203">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"
             filename="inf-text-gtk-buffer.c"
             line="2569">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>
        <source-position filename="inf-text-gtk-buffer.h" line="122"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2571">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="alpha" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2572">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"
             filename="inf-text-gtk-buffer.c"
             line="2518">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>
        <source-position filename="inf-text-gtk-buffer.h" line="117"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2520">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="saturation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2521">Saturation to use for user colors.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2522">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"
              glib:set-property="show-user-colors">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2644">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>
        <source-position filename="inf-text-gtk-buffer.h" line="132"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2646">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2647">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"
              glib:set-property="wake-on-cursor-movement">
        <doc xml:space="preserve"
             filename="inf-text-gtk-buffer.c"
             line="2444">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>
        <source-position filename="inf-text-gtk-buffer.h" line="107"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2446">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="wake" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2447">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"
             filename="inf-text-gtk-buffer.c"
             line="2683">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>
        <source-position filename="inf-text-gtk-buffer.h" line="139"/>
        <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"
                 filename="inf-text-gtk-buffer.c"
                 line="2685">A #InfTextGtkBuffer.</doc>
            <type name="Buffer" c:type="InfTextGtkBuffer*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-buffer.c"
                 line="2686">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2687">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"
                 filename="inf-text-gtk-buffer.c"
                 line="2689">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"
                setter="set_active_user"
                getter="get_active_user">
        <type name="InfText.User"/>
      </property>
      <property name="alpha"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <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"
                getter="get_saturation"
                default-value="0.350000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="show-user-colors"
                writable="1"
                transfer-ownership="none"
                setter="set_show_user_colors"
                getter="get_show_user_colors"
                default-value="TRUE">
        <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"
                getter="get_value"
                default-value="1.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="wake-on-cursor-movement"
                writable="1"
                transfer-ownership="none"
                setter="set_wake_on_cursor_movement"
                getter="get_wake_on_cursor_movement"
                default-value="FALSE">
        <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"
           filename="inf-text-gtk-buffer.h"
           line="42">This structure does not contain any public fields.</doc>
      <source-position filename="inf-text-gtk-buffer.h" line="50"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="HUE_CHOOSER"
                    c:identifier="INF_TEXT_GTK_HUE_CHOOSER"
                    introspectable="0">
      <source-position filename="inf-text-gtk-hue-chooser.h" line="28"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HUE_CHOOSER_CLASS"
                    c:identifier="INF_TEXT_GTK_HUE_CHOOSER_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-hue-chooser.h" line="29"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HUE_CHOOSER_GET_CLASS"
                    c:identifier="INF_TEXT_GTK_HUE_CHOOSER_GET_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-hue-chooser.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <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"
           filename="inf-text-gtk-hue-chooser.h"
           line="58">#InfTextGtkHueChooser is an opaque data type. You should only access it
via the public API functions.</doc>
      <source-position filename="inf-text-gtk-hue-chooser.h" line="56"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="inf_text_gtk_hue_chooser_new">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.c"
             line="904">Creates a new #InfTextGtkHueChooser widget with the initial hue set to 0.0
(red).</doc>
        <source-position filename="inf-text-gtk-hue-chooser.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-hue-chooser.c"
               line="910">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"
             filename="inf-text-gtk-hue-chooser.c"
             line="920">Creates a new #InfTextGtkHueChooser widget with the given hue as initial
value. @hue must be between 0.0 and 1.0.</doc>
        <source-position filename="inf-text-gtk-hue-chooser.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-hue-chooser.c"
               line="927">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"
                 filename="inf-text-gtk-hue-chooser.c"
                 line="922">Initial hue value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="hue_change">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.h"
             line="39">Default signal handler for the
#InfTextGtkHueChooser::hue-change signal.</doc>
        <source-position filename="inf-text-gtk-hue-chooser.h" line="51"/>
        <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">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.h"
             line="41">Default signal handler for the #InfTextGtkHueChooser::move signal.</doc>
        <source-position filename="inf-text-gtk-hue-chooser.h" line="54"/>
        <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"
              glib:get-property="hue">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.c"
             line="960">Returns the currently selected hue value of @chooser.</doc>
        <source-position filename="inf-text-gtk-hue-chooser.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-hue-chooser.c"
               line="966">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"
                 filename="inf-text-gtk-hue-chooser.c"
                 line="962">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"
              glib:set-property="hue">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.c"
             line="938">Sets the current hue value of @chooser to @hue. @hue must be between 0.0
and 1.0.</doc>
        <source-position filename="inf-text-gtk-hue-chooser.h" line="79"/>
        <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"
                 filename="inf-text-gtk-hue-chooser.c"
                 line="940">A #InfTextGtkHueChooser.</doc>
            <type name="HueChooser" c:type="InfTextGtkHueChooser*"/>
          </instance-parameter>
          <parameter name="hue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-hue-chooser.c"
                 line="941">New hue value.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="hue"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_hue"
                getter="get_hue"
                default-value="0.000000">
        <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"
             filename="inf-text-gtk-hue-chooser.c"
             line="765">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"
                 filename="inf-text-gtk-hue-chooser.c"
                 line="768">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"
             filename="inf-text-gtk-hue-chooser.c"
             line="784">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"
                 filename="inf-text-gtk-hue-chooser.c"
                 line="787">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"
           filename="inf-text-gtk-hue-chooser.h"
           line="37">This structure contains default signal handlers of the
#InfTextGtkHueChooser class.</doc>
      <source-position filename="inf-text-gtk-hue-chooser.h" line="56"/>
      <field name="parent_class" readable="0" private="1">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="hue_change">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.h"
             line="39">Default signal handler for the
#InfTextGtkHueChooser::hue-change signal.</doc>
        <callback name="hue_change">
          <source-position filename="inf-text-gtk-hue-chooser.h" line="51"/>
          <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">
        <doc xml:space="preserve"
             filename="inf-text-gtk-hue-chooser.h"
             line="41">Default signal handler for the #InfTextGtkHueChooser::move signal.</doc>
        <callback name="move">
          <source-position filename="inf-text-gtk-hue-chooser.h" line="54"/>
          <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>
    <function-macro name="IS_BUFFER"
                    c:identifier="INF_TEXT_GTK_IS_BUFFER"
                    introspectable="0">
      <source-position filename="inf-text-gtk-buffer.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BUFFER_CLASS"
                    c:identifier="INF_TEXT_GTK_IS_BUFFER_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-buffer.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_HUE_CHOOSER"
                    c:identifier="INF_TEXT_GTK_IS_HUE_CHOOSER"
                    introspectable="0">
      <source-position filename="inf-text-gtk-hue-chooser.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_HUE_CHOOSER_CLASS"
                    c:identifier="INF_TEXT_GTK_IS_HUE_CHOOSER_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-hue-chooser.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VIEW"
                    c:identifier="INF_TEXT_GTK_IS_VIEW"
                    introspectable="0">
      <source-position filename="inf-text-gtk-view.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VIEWPORT"
                    c:identifier="INF_TEXT_GTK_IS_VIEWPORT"
                    introspectable="0">
      <source-position filename="inf-text-gtk-viewport.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VIEWPORT_CLASS"
                    c:identifier="INF_TEXT_GTK_IS_VIEWPORT_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-viewport.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VIEW_CLASS"
                    c:identifier="INF_TEXT_GTK_IS_VIEW_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-view.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEW"
                    c:identifier="INF_TEXT_GTK_VIEW"
                    introspectable="0">
      <source-position filename="inf-text-gtk-view.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEWPORT"
                    c:identifier="INF_TEXT_GTK_VIEWPORT"
                    introspectable="0">
      <source-position filename="inf-text-gtk-viewport.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEWPORT_CLASS"
                    c:identifier="INF_TEXT_GTK_VIEWPORT_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-viewport.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEWPORT_GET_CLASS"
                    c:identifier="INF_TEXT_GTK_VIEWPORT_GET_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-viewport.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEW_CLASS"
                    c:identifier="INF_TEXT_GTK_VIEW_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-view.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEW_GET_CLASS"
                    c:identifier="INF_TEXT_GTK_VIEW_GET_CLASS"
                    introspectable="0">
      <source-position filename="inf-text-gtk-view.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <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"
           filename="inf-text-gtk-view.h"
           line="51">#InfTextGtkView is an opaque data type. You should only access it via the
public API functions.</doc>
      <source-position filename="inf-text-gtk-view.h" line="49"/>
      <constructor name="new" c:identifier="inf_text_gtk_view_new">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="1887">Creates a new #InfTextGtkView for @view. This draws remote user's cursors
and selections into the text view.</doc>
        <source-position filename="inf-text-gtk-view.h" line="66"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="inf-text-gtk-view.c"
               line="1896">A new #InfTextGtkView.</doc>
          <type name="View" c:type="InfTextGtkView*"/>
        </return-value>
        <parameters>
          <parameter name="io" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-view.c"
                 line="1889">A #InfIo.</doc>
            <type name="Infinity.Io" c:type="InfIo*"/>
          </parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-view.c"
                 line="1890">A #GtkTextView.</doc>
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
          <parameter name="user_table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-view.c"
                 line="1891">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"
              glib:get-property="active-user">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="1998">Returns the active user of @view. See inf_text_gtk_view_set_active_user().</doc>
        <source-position filename="inf-text-gtk-view.h" line="81"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="inf-text-gtk-view.c"
               line="2004">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"
                 filename="inf-text-gtk-view.c"
                 line="2000">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"
             filename="inf-text-gtk-view.c"
             line="1920">Returns the underlying #GtkTextView.</doc>
        <source-position filename="inf-text-gtk-view.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-view.c"
               line="1926">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"
                 filename="inf-text-gtk-view.c"
                 line="1922">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"
              glib:get-property="user-table">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="1935">Returns the #InfUserTable containing the users of the session the
#InfTextGtkView's #GtkTextView is displaying.</doc>
        <source-position filename="inf-text-gtk-view.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-view.c"
               line="1942">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"
                 filename="inf-text-gtk-view.c"
                 line="1937">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"
              glib:set-property="active-user">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="1951">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>
        <source-position filename="inf-text-gtk-view.h" line="77"/>
        <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"
                 filename="inf-text-gtk-view.c"
                 line="1953">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"
                 filename="inf-text-gtk-view.c"
                 line="1954">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"
              glib:set-property="show-remote-current-lines">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="2070">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>
        <source-position filename="inf-text-gtk-view.h" line="92"/>
        <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"
                 filename="inf-text-gtk-view.c"
                 line="2072">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-view.c"
                 line="2073">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"
              glib:set-property="show-remote-cursors">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="2013">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>
        <source-position filename="inf-text-gtk-view.h" line="84"/>
        <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"
                 filename="inf-text-gtk-view.c"
                 line="2015">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-view.c"
                 line="2016">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"
              glib:set-property="show-remote-selections">
        <doc xml:space="preserve"
             filename="inf-text-gtk-view.c"
             line="2040">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>
        <source-position filename="inf-text-gtk-view.h" line="88"/>
        <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"
                 filename="inf-text-gtk-view.c"
                 line="2042">A #InfTextGtkView.</doc>
            <type name="View" c:type="InfTextGtkView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-view.c"
                 line="2043">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"
                setter="set_active_user"
                getter="get_active_user">
        <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"
                setter="set_show_remote_current_lines"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-remote-cursors"
                writable="1"
                transfer-ownership="none"
                setter="set_show_remote_cursors"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-remote-selections"
                writable="1"
                transfer-ownership="none"
                setter="set_show_remote_selections"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-table"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_user_table">
        <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"
           filename="inf-text-gtk-view.h"
           line="41">This structure does not contain any public fields.</doc>
      <source-position filename="inf-text-gtk-view.h" line="49"/>
      <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"
           filename="inf-text-gtk-viewport.h"
           line="50">#InfTextGtkViewport is an opaque data type. You should only access it via
the public API functions.</doc>
      <source-position filename="inf-text-gtk-viewport.h" line="48"/>
      <constructor name="new" c:identifier="inf_text_gtk_viewport_new">
        <doc xml:space="preserve"
             filename="inf-text-gtk-viewport.c"
             line="902">Creates a new #InfTextGtkViewport for @scroll. This draws the position of
remote user's cursors into the scrollbars of @scroll.</doc>
        <source-position filename="inf-text-gtk-viewport.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="inf-text-gtk-viewport.c"
               line="910">A new #InfTextGtkViewport.</doc>
          <type name="Viewport" c:type="InfTextGtkViewport*"/>
        </return-value>
        <parameters>
          <parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-viewport.c"
                 line="904">A #GtkScrolledWindow.</doc>
            <type name="Gtk.ScrolledWindow" c:type="GtkScrolledWindow*"/>
          </parameter>
          <parameter name="user_table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-viewport.c"
                 line="905">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"
              glib:get-property="active-user">
        <doc xml:space="preserve"
             filename="inf-text-gtk-viewport.c"
             line="1007">Returns the active user of @viewport. See
inf_text_gtk_viewport_set_active_user().</doc>
        <source-position filename="inf-text-gtk-viewport.h" line="79"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="inf-text-gtk-viewport.c"
               line="1014">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"
                 filename="inf-text-gtk-viewport.c"
                 line="1009">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"
              glib:get-property="scrolled-window">
        <doc xml:space="preserve"
             filename="inf-text-gtk-viewport.c"
             line="931">Returns the underlying #GtkScrolledWindow.</doc>
        <source-position filename="inf-text-gtk-viewport.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-viewport.c"
               line="937">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"
                 filename="inf-text-gtk-viewport.c"
                 line="933">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"
              glib:get-property="user-table">
        <doc xml:space="preserve"
             filename="inf-text-gtk-viewport.c"
             line="946">Returns the #InfUserTable containing the users of the session the
#InfTextGtkViewport's #GtkScrolledWindow is displaying.</doc>
        <source-position filename="inf-text-gtk-viewport.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="inf-text-gtk-viewport.c"
               line="953">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"
                 filename="inf-text-gtk-viewport.c"
                 line="948">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"
              glib:set-property="active-user">
        <doc xml:space="preserve"
             filename="inf-text-gtk-viewport.c"
             line="962">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>
        <source-position filename="inf-text-gtk-viewport.h" line="75"/>
        <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"
                 filename="inf-text-gtk-viewport.c"
                 line="964">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"
                 filename="inf-text-gtk-viewport.c"
                 line="965">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"
              glib:set-property="show-user-markers">
        <doc xml:space="preserve"
             filename="inf-text-gtk-viewport.c"
             line="1023">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>
        <source-position filename="inf-text-gtk-viewport.h" line="82"/>
        <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"
                 filename="inf-text-gtk-viewport.c"
                 line="1025">A #InfTextGtkViewport.</doc>
            <type name="Viewport" c:type="InfTextGtkViewport*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="inf-text-gtk-viewport.c"
                 line="1026">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"
                setter="set_active_user"
                getter="get_active_user">
        <type name="InfText.User"/>
      </property>
      <property name="scrolled-window"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_scrolled_window">
        <type name="Gtk.ScrolledWindow"/>
      </property>
      <property name="show-user-markers"
                writable="1"
                transfer-ownership="none"
                setter="set_show_user_markers"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-table"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_user_table">
        <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"
           filename="inf-text-gtk-viewport.h"
           line="40">This structure does not contain any public fields.</doc>
      <source-position filename="inf-text-gtk-viewport.h" line="48"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <docsection name="inf-text-gtk-buffer">
      <doc xml:space="preserve"
           filename="inf-text-gtk-buffer.c"
           line="20">#InfTextGtkBuffer is an implementation of the #InfTextBuffer interface. It
can therefore be used as a backend for #InfTextSession&lt;!-- --&gt;s to store
their text. The buffer is implemented by using a #GtkTextBuffer as
storage. This way the text document can be displayed using a #GtkTextView
such that only one copy of the text is held in memory, which is used both
by the user interface toolkit and the text synchronization functionality.

If external changes are made to the #GtkTextBuffer, for example by a user
typing into a #GtkTextView, then the text is synchronized to other
participants of the session. For this purpose,
inf_text_gtk_buffer_set_active_user() should be called with a user that
was previously joined into the session using inf_session_proxy_join_user().
If there is no local user in the session, no modifications to the buffer
must be made because they cannot be synchronized to other participants.

This class also takes care of setting background colors for the text to
indicate which user wrote what text, by adding corresponding
#GtkTextTag&lt;!-- --&gt;s to the document. The function
inf_text_gtk_buffer_set_show_user_colors() to turn on or off the colored
background. Even if background coloring is turned off, the text is still
tagged according to the authorship, so that coloring can be turned on at a
later point or so that the authorship can still be queried for other means,
such as in a "blame" kind of functionality.</doc>
    </docsection>
    <docsection name="inf-text-gtk-hue-chooser">
      <doc xml:space="preserve"
           filename="inf-text-gtk-hue-chooser.c"
           line="20">#InfTextGtkHueChooser is a widget which allows the user to select a hue
value without selecting also saturation and lightness at the same time. It
only presents the hue circle without the inner triangle.</doc>
    </docsection>
    <docsection name="inf-text-gtk-view">
      <doc xml:space="preserve"
           filename="inf-text-gtk-view.c"
           line="19">#InfTextGtkView is a helper object which, as long as it is alive, draws
the cursor position, selected text of remote users into a #GtkTextView
widget. It can also highlight the current line of a remote user in a
similar way the #GtkSourceView widget can highlight the current line of
the local user.

This functionality was not implemented by subclassing #GtkTextView such
that it can also be used with existing subclasses, such as #GtkSourceView.

With the function inf_text_gtk_view_set_active_user() the local
#InfTextUser who is editing the text can be set, if there is any. The
insertion position, seleceted text or current line are not drawn for this
user, since the normal #GtkTextView takes care of that already. This
assumes the local user cursor position and selection is synchronized to the
corresponding #InfTextUser properties, which is automatically the case when
a #InfTextGtkBuffer is used for the buffer the #GtkTextView is displaying.

See #InfTextGtkViewport for drawing a marker at remote users' location into
the scrollbar.</doc>
    </docsection>
    <docsection name="inf-text-gtk-viewport">
      <doc xml:space="preserve"
           filename="inf-text-gtk-viewport.c"
           line="19">#InfTextGtkViewport is a helper object which, as long as it is alive,
draws the location of the cursor of remote users into the scrollbar of
a #GtkScrolledWindow containing a #GtkTextView.

The function inf_text_gtk_viewport_set_active_user() can be used to skip
drawing the location of the user working locally on the document, if there
is any.

See #InfTextGtkView for drawing the cursor and selected region of remote
users into a #GtkTextView.</doc>
    </docsection>
  </namespace>
</repository>
