<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
                       "http://www.docbook.org/xml/4.3/docbookx.dtd">

<!-- section history:
  2102-05-22 j.h: reviewed
  2012-05-05 Marco: created
 -->
<sect1 id="gimp-introduction-whats-new">
  <title>What's New in GIMP 2.8? </title>
  
  <para>
    <acronym>GIMP</acronym> 2.8 is another important release from a
    development point of view, even more that it was for 2.6. It
    features a big change to the user interface addressing one of the
    most often received complaints: the lack of a single window
    mode. Moreover the integration effort of GEGL library had taken a
    big step forward, reaching more than 90% of the
    <acronym>GIMP</acronym> core, a new powerful transformation tool,
    layer groups, new common options, new brushes, improved text tool,
    and more.
  </para>

  <variablelist>
    <title>User Interface</title>
    
    <varlistentry>
      <term>New single window mode</term>
      <listitem>
        <para>
          With this new feature it will be possible to work with all
          the <acronym>GIMP</acronym> dialogs inside one big window,
          usually with the image(s) centered inside.  No more floating
          panels or toolbox but the dialogs could be arranged inside
          this single window.  This mode could be enabled or disabled
          all the time, even while working, and the option will be
          remembered through the sessions.
        </para>
        <figure>
          <title>The new look of the single window mode</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/single-window-mode.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>
    
    <varlistentry>
      <term>New file save workflow</term>
      <listitem>
        <para>
          Now Save and Save as work only with xcf formats. If you
          want to export an image in another format, say jpg or png,
          you have to explicitly Export it. This enhances the workflow
          and lets you simply overwrite the original file or export to
          various other formats.
         </para>
        <figure>
          <title>The new image workflow</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/save-image-overwrite.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>New image bar</term>
      <listitem>
        <para>
          A new useful image bar comes with the single window mode,
          which lets you switch easily between open images through the
          means of a tab bar with image thumbnails. 
         </para>
        <figure>
          <title>The new image bar</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/multiple-image-tabs.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>New arrangement options</term>
      <listitem>
        <para>
          <acronym>GIMP</acronym> will make users working with two screens
          (one for dialogs, the other for images) 
          happy: now it is possible to arrange the dialogs one over the other,
          in tabs and in columns too.
        </para>
        <figure>
          <title>Multi column docks</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/multi-column-docks.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>New resources tags</term>
      <listitem>
        <para>
          <acronym>GIMP</acronym> Brushes, Gradients, Pattern and
          Palettes can be filtered and searched via tags. Tags are
          text labels that the user can assign to resources. With Tags
          the user can easily find the resources by means of an input
          text box. Tags can be manually assigned by the user with the
          same input box used for searching tags, or they can be
          automatically tagged using the directory name of the
          imported items.
        </para>
        <figure>
          <title>Resource tags</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/painting-resources-tags.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>Simple math in size entries</term>
      <listitem>
        <para>
          Enhancements have also been made to the size entry widget,
          which is used for inputting most of the x, y, width, height
          parameters. For example, in the scale dialog it is now
          possible to write <quote>50%</quote> in the Width field to
          scale the image to 50% of the width. Expressions such as
          <quote>30in + 40px</quote> and <quote>4 * 5.4in</quote>
          work, too.
        </para>
        <figure>
          <title>Math size entries</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/math-size-entries.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>Minor changes</term>
      <listitem>
      <itemizedlist>

      <listitem>
        <para>
          The new <quote>Lock Pixels</quote> option in the layers
          dialog can avoid undesired painting on a layer when
          working with several layers.
        </para>
        <figure>
          <title>The new Lock Pixels option</title>
          <mediaobject>
            <imageobject>
      <imagedata format="PNG"
        fileref="images/using/image-lock-pixels.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>

        <listitem>
          <para>
            Now you can move between images in single and multi
            window mode using the shortcuts 
<keycombo><keycap>Ctrl</keycap><keycap>PageUp/PageDown</keycap></keycombo>
            or
            <keycombo><keycap>Alt</keycap><keycap>Number</keycap></keycombo>.
          </para>
        </listitem>

        <listitem>
          <para>
            Add support for F2 to rename items in lists.
          </para>
        </listitem>

        <listitem>
          <para>
            You can now
            <keycombo><keycap>Alt</keycap><keycap>Click</keycap></keycombo>
            on layers in the Layers dialog to create a selection from
            it. Add, subtract and intersect modifiers
            <keycap>Click</keycap>, <keycap>Shift</keycap> and
            <keycombo><keycap>Ctrl</keycap><keycap>Shift</keycap></keycombo>
            keys work too. This makes it easy to compose contents of a
            layer based on the contents of other layers, without
            detours.
          </para>
        </listitem>

        <listitem>
          <para>
            Since the keyboard shortcuts
            <keycombo><keycap>Ctrl</keycap><keycap>E</keycap></keycombo>
            and
            <keycombo><keycap>Ctrl</keycap><keycap>Shift</keycap><keycap>E</keycap></keycombo>
            have been redirected to image export mechanisms, new
            keyboard shortcuts have been setup for <quote>Shrink
            Wrap</quote> and <quote>Fit in Window</quote>, namely
            <keycombo><keycap>Ctrl</keycap><keycap>J</keycap></keycombo>
            and
            <keycombo><keycap>Ctrl</keycap><keycap>Shift</keycap><keycap>J</keycap></keycombo>
            respectively.
          </para>
        </listitem>

        <listitem>
          <para>
            Added
            <menuchoice><guimenu>Windows</guimenu><guimenuitem>Hide
            docks</guimenuitem></menuchoice> menu item that does what
            <quote>Tab</quote> does and also displays its state, which
            is now persistent across sessions, too.
          </para>
        </listitem>

        <listitem>
          <para>
            The layer modes have been rearranged into more logical and
            useful groups based on the effect they have on layers. Layer
            modes that make the layer lighter are in one group, layer modes that
            make the layer darker in another group, and so forth.
          </para>
        </listitem>

        <listitem>
          <para>
            In multi-window mode, you can now close the Toolbox without
            quitting GIMP.
          </para>
        </listitem>

        <listitem>
          <para>
            Allow binding arbitrary actions to extra mouse buttons.
          </para>
        </listitem>

        <listitem>
          <para>
            Now it is possible to change the application language
            directly from the preference menu.
          </para>
        </listitem>

      </itemizedlist>
    </listitem>
    </varlistentry>
  </variablelist>

  <variablelist>
    <title>Tools, Filters and Plug-ins</title>

    <varlistentry>
      <term>A new tool: Cage Transform</term>
      <listitem>
        <para>
          With this new tool is now possible to create custom bending
          of a selection just moving control points.
          This is the result of one of our Google Summer of Code 2010
          students.
        </para>
        <figure>
          <title>Cage Transform</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/new-cage-tool.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>Improved Text Tool</term>
      <listitem>
        <para>
          The text tool has been enhanced to support on canvas text
          writing and make possible changing the attributes of a single char.
        </para>
        <figure>
          <title>Improved text tool</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/improved-text-tool.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>New layer groups</term>
      <listitem>
        <para>
          It is now possible to group set of layers and treat them
          like an entity. It is possible to switch a group on or off and
          to move the group in the layers dialog. It is easy to add /
          remove existing layers to a group or to create / delete a
          layer inside the group and it is even possible to create
          embedded groups of groups. It is possible to apply a
          layer mode to a group as you do with a single layer. All this greatly
          improves the workflow with complex multilayer images making
          them easier to manage.
        </para>
        <figure>
          <title>New layer groups</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/image-layer-groups.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>Rotating brushes</term>
      <listitem>
        <para>
          Brushes can now be rotated at will, acting on the brush
          option <quote>Angle</quote>.
        </para>
        <figure>
          <title>Rotating brushes</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/rotating-brushes.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>Minor changes</term>
      <listitem>
        <itemizedlist>
          <listitem>
            <para>
              The default Quick Mask color is now configurable.
            </para>
          </listitem>

          <listitem>
            <para>
              The RTL mode (right to left writing) has been improved in the Text
              tool.
            </para>
          </listitem>

          <listitem>
            <para>
              You can specify the written language in the Text
              Tool. This helps choosing an appropriate font, or
              appropriate glyphs for the selected language.
            </para>
          </listitem>

          <listitem>
            <para>
              Added optional diagonal guides to the crop tool.
            </para>
          </listitem>

          <listitem>
            <para>
              Added <quote>Rule of fifths</quote> crop guide overlay.
            </para>
          </listitem>

          <listitem>
            <para>
              A Cairo based PDF exporter has been implemented. Although being
              somewhat simplistic, the exporter saves text, embedding
              fonts into the final PDF file, and attempts to convert
              bitmaps to vector objects.
            </para>
          </listitem>

          <listitem>
            <para>
              Brush dynamics improved.
            </para>
          </listitem>

          <listitem>
            <para>
              Added plug-in for loading JPEG2000 images.
            </para>
          </listitem>

          <listitem>
            <para>
              Added plug-ins for X11 Mouse Cursor import and export
              support.
            </para>
          </listitem>

          <listitem>
            <para>
              Added fundamental OpenRaster (.ora) import and export
              support.
            </para>
          </listitem>

          <listitem>
            <para>
              Added RGB565 support to the csource plug-in.
            </para>
          </listitem>

          <listitem>
            <para>
              Added a new <quote>Create</quote> command that allows loading 
              a Web page directly into GIMP using Webkit.
            </para>
          </listitem>

        </itemizedlist>
      </listitem>
    </varlistentry>

  </variablelist>

  <variablelist>
    <title>Under the Hood</title>

    <varlistentry>
      <term><acronym>GEGL</acronym></term>
      <listitem>
        <para>
          The porting of the <acronym>GIMP</acronym> core towards the
          new high bit-depth and non-destructive editing GEGL <xref
          linkend="bibliography-online-gegl"/> library has taken big
          steps and now more than 90% of the task is already finished.
        </para>
        <para>
          In addition to porting color operations to
          <acronym>GEGL</acronym>, an experimental GEGL Operation tool
          has been added, found in the Tools menu. It enables applying
          <acronym>GEGL</acronym> operations to an image and it gives
          on-canvas previews of the results. The screenshot below
          shows this for a Gaussian Blur.
        </para>
        <figure>
          <title><acronym>GEGL</acronym> operation</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/experimental-gegl-tool.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>

    </varlistentry>

    <varlistentry>

      <term>Cairo porting</term>
      <listitem>
        <para>
          Started with <acronym>GIMP</acronym> version 2.6, all tools rendering
          on canvas is now completely ported to <xref          
          linkend="bibliography-online-cairo"/>. It provides smooth
          antialiased graphics and improves <acronym>GIMP</acronym> look. Some
          plug-ins have been upgraded to Cairo as well. Additionally
          all tools now use an on-canvas progress indicator instead of
          the one in the statusbar.
        </para>
        <figure>
          <title>Progress indicator</title>
          <mediaobject>
            <imageobject>
              <imagedata format="PNG"
                fileref="images/using/cairo-progress-indicator.png"/>
            </imageobject>
          </mediaobject>
        </figure>
      </listitem>

    </varlistentry>

  </variablelist>

  <variablelist>

    <title>Miscellaneous</title>

    <varlistentry>
      <term>License change</term>
      <listitem>
        <para>
          The GIMP license has been changed to (L)GPLv3+.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>New script API</term>
      
      <listitem>
        <itemizedlist>
          <listitem>
            <para>
              A lot of GIMP APIs have been rebuilt to simplify
              developing new scripts.
            </para>
          </listitem>
          <listitem>
            <para>
              To further enhances scripting abilities, API changes to support
              layer groups have been made.
            </para>
          </listitem>
        </itemizedlist>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>Backwards Compatibility</term>
        <listitem>
          <para>
            To allow migrating from the old tools presets
            system to the new one, there is a Python <ulink
url="http://wiki.gimp.org/index.php/Mindstorm:Preset_converter">script</ulink>, 
            which you can download from the <acronym>GIMP</acronym> wiki
            site. However, the old tools presets are not 100%
            convertible to the new tool presets. For instance, brush
            scale from 2.6 can't be converted to brush size in 2.8.
          </para>
        </listitem>
    </varlistentry>

  <varlistentry>
      <term>Known Problems</term>
      <listitem>
        <para>
          Working with graphics tablets could be problematic due to
          the GTK+2 library in use. If in this case either use the
          older version 2.6 or wait for the up coming version 3.0
          for the full GTK+3 support.
        </para>
      </listitem>
  </varlistentry>
  
  </variablelist>

</sect1>
