<refentry id = "releasehistory" revision = "5 May 2007">
  <refmeta>
    <refentrytitle>Release history</refentrytitle>
  </refmeta>
  <refnamediv>
    <refname>Release history</refname>
    <refpurpose>
      Major changes between versions of GtkImageView.
    </refpurpose>
  </refnamediv>
  <refsect1>
    <para>
      This chapter lists all major changes that has occured in
      GtkImageView. Each version is sorted in reverse chronological
      order.
    </para>
    <title>Major changes in 1.5.0</title>
    <itemizedlist>
      <listitem>
        <para>
          <function>gtk_image_nav_get_pixbuf()</function> was added
          to <classname>GtkImageNav</classname>. It returns the
          downsampled pixbuf the navigator is showing
          or <constant>NULL</constant>. The function is mostly useful
          for testing.
        </para>          
      </listitem>
      <listitem>
        <para>
          <classname>GtkImageNav</classname> aquired a flag variable
          that controls that the downsampled pixbuf is not created
          unless necessary. It makes
          the <classname>GtkImageScrollWin</classname> faster to
          instantiate, but may break ABI.
        </para>  
      </listitem>  
    </itemizedlist>  
    <title>Major changes in 1.4.0</title>
    <itemizedlist>
      <listitem>
        <para>
          The
          function <function>gtk_image_view_get_draw_rect()</function>
          was added. It is a useful function used by both of the
          tools.
        </para>  
      </listitem>
      <listitem>
        <para>
          The navigator button
          in <classname>GtkImageScrollWin</classname> now has a cute
          tooltip and the same prelight effect that <ulink url =
          "http://developer.gnome.org/arch/gnome/corecomponents/panel/">gnome-panel</ulink>
          has.
        </para>  
      </listitem>
      <listitem>
        <para>
          Redraw speed has been improved greatly. In particular,
          GtkImageToolSelector and redraws caused by moving other
          windows on top of the widget should now be much quicker.
        </para>  
      </listitem>
      <listitem>
        <para>
          Killed
          the <function>gtk_image_view_set_offset_invalidating()</function>
          function.
          Instead, <function>gtk_image_view_set_offset()</function>
          has a boolean flag which indicates whether to do an
          invalidating redraw or a fast scroll. This change breaks API
          and maybe also ABI.
        </para>  
      </listitem>
      <listitem>
        <para>
          GtkFitMode was removed along
          with <function>gtk_image_view_set_fit_mode()</function>
          and <function>gtk_image_view_get_fit_mode()</function>.
          Since there were only two items in the enum (fit or not
          fit), it was much cleaner to just pass a gboolean. The
          accessor functions has also been renamed
          to <function>gtk_image_view_set_fitting()</function>
          and <function>gtk_image_view_get_fit_mode()</function> to
          reflect this new and simpler interface. This change also
          breaks API and perhaps even ABI.
        </para>  
      </listitem>  
    </itemizedlist>  
    <title>Major changes in 1.3.0</title>
    <itemizedlist>
      <listitem>
        <para>
          The <classname>GtkImageView</classname> widget has undergone
          major internal reconstruction work. I wanted to support
          making rectangular selections on the view area. Selections
          are useful for many reasons -- selecting, cutting, cropping
          etc. I want to support exactly the kind of selection tool
          that gThumb's image crop dialog has.
        </para>
        <para>
          To implement this feature GtkImageView has been made
          extensible via aggregation. It now uses an interface called
          <interfacename>GtkIImageTool</interfacename> which
          encapsulats certain behaviour. This means that it will be
          possible to extend GtkImageView with other tools too, such
          as drawing tools.
        </para>
        <para>
          The feature isn't completed yet, but I'm checking it in
          anyway to avoid having to check in a super-large changeset
          at an even later date. See <ulink url =
          "http://bjourne.blogspot.com/2007/05/tools-for-gtkimageview.html">this
          blog post</ulink> for even more details.
        </para>
        <para>
          There is currently two tools implemented,
          <classname>GtkImageToolDragger</classname> and
          <classname>GtkImageToolSelector</classname>. See their
          respective manual pages.
        </para>  
      </listitem>
      <listitem>
        <para>
          The
          function <function>gtk_image_view_set_offset_invalidating()</function>
          was added. The function has the same purpose as
          <function>gtk_image_view_set_offset()</function>, but queues
          the redraw by invalidating the whole widget instead of
          immidiately repainting. The effect is that superfluous
          redraws can sometimes be avoided at the expense of more cpu
          usage.
        </para>  
      </listitem>  
    </itemizedlist>
    <title>Major changes in 1.2.0</title>
    <itemizedlist>
      <listitem>
        <para>
          The
          functions <function>gtk_image_view_get_check_colors()</function>
          and <function>gtk_image_view_set_transp()</function> was
          added. These additions enable users to define how
          GtkImageView should render transparent parts of images with
          an alpha
          channel. See <filename>./tests/interactive.c</filename> for
          an example.
        </para>  
      </listitem>
    </itemizedlist>  
    <title>Major changes in 1.1.0</title>
    <itemizedlist>
      <listitem>
        <para>
          <function>gtk_image_view_set_pixbuf()</function> was changed
          to accept three parameters. The third parameter is
          a <type>gboolean</type> that defines whether to reset fit
          mode or not. It should almost always be TRUE.
        </para>
        <para>
          This change replaces the old (and
          undocumented) <function>gtk_image_view_set_pixbuf_no_repaint()</function>
          function.
        </para>  
      </listitem>
    </itemizedlist>  
  </refsect1>
</refentry>  
