<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
   "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
 <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
 <!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent">
 %gtkdocentities;
]>

<part id="api-breaks">
  <title>API Breaks</title>

  <chapter id="api-breaks-1-to-2">
    <title>Gtef 1 -> Gtef 2</title>

    <itemizedlist>
      <listitem>
        <para>
          The <code>GtefBuffer::cursor-moved</code> signal has been renamed to
          <code>GtefBuffer::gtef-cursor-moved</code>.
        </para>
      </listitem>
      <listitem>
        <para>
          The <code>GtefBuffer:title</code> property has been renamed to
          <code>GtefBuffer:gtef-title</code>.
        </para>
      </listitem>
    </itemizedlist>
  </chapter>

  <chapter id="api-breaks-2-to-3-tepl">
    <title>Gtef 2 -> Tepl 3</title>

    <itemizedlist>
      <listitem>
        <para>
          The library has been renamed to Tepl (Text editor product line). So
          the namespace of the code has changed.
        </para>
        <para>
          The new version is Tepl&nbsp;3 and not Tepl&nbsp;1, to avoid confusion
          with the git tags (the git repository is still the same), since the
          repository already contains tags for versions 1 and 2.
        </para>
      </listitem>
      <listitem>
        <para>
          The <link linkend="TeplTab">TeplTab</link> class has been revamped.
          The <link linkend="tepl-tab-new">tepl_tab_new()</link> function
          doesn't take a <link linkend="GtkWidget">GtkWidget</link> parameter
          anymore, a <link linkend="TeplView">TeplView</link> is created
          instead.
        </para>
      </listitem>
      <listitem>
        <para>
          The <code>TeplBuffer:tepl-title</code> property has been renamed to
          <link linkend="TeplBuffer--tepl-full-title">TeplBuffer:tepl-full-title</link>,
          and <code>tepl_buffer_get_title()</code> has been renamed to
          <link linkend="tepl-buffer-get-full-title">tepl_buffer_get_full_title()</link>.
        </para>
      </listitem>
    </itemizedlist>
  </chapter>

  <chapter id="api-breaks-2-to-3-amtk">
    <title>Gtef 2 -> Amtk 3</title>

    <itemizedlist>
      <listitem>
        <para>
          The classes and functions related to actions and menus have been moved
          to a new shared library called Amtk (Actions, Menus and Toolbars Kit),
          since it was not really related to text editors, it is more general.
          But Amtk is still developed inside the Tepl repository.
        </para>
      </listitem>
      <listitem>
        <para>
          The <link linkend="AmtkFactory">AmtkFactory</link> class has been
          added, which replace <code>gtef_action_info_store_create_menu_item()</code>
          and removes the <code>GtefActionInfoStore:application</code> property.
        </para>
      </listitem>
      <listitem>
        <para>
          <code>gtef_action_info_central_store_get_instance()</code> has been
          renamed to
          <link linkend="amtk-action-info-central-store-get-singleton">amtk_action_info_central_store_get_singleton()</link>.
        </para>
      </listitem>
      <listitem>
        <para>
          <link linkend="amtk-application-window-connect-menu-to-statusbar">amtk_application_window_connect_menu_to_statusbar()</link>
          now takes a <link linkend="GtkMenuShell">GtkMenuShell</link> parameter
          instead of <link linkend="AmtkMenuShell">AmtkMenuShell</link>.
        </para>
      </listitem>
    </itemizedlist>
  </chapter>

  <chapter id="api-breaks-3-to-4-tepl">
    <title>Tepl 3 -> Tepl 4</title>

    <itemizedlist>
      <listitem>
        <para>
          Tepl&nbsp;3 depended on GtkSourceView&nbsp;3, Tepl&nbsp;4 depends on
          GtkSourceView&nbsp;4. So to be able to use Tepl&nbsp;4, you need to
          port your code to GtkSourceView&nbsp;4. Note that the GTK dependency
          is still GTK&nbsp;3.
        </para>
      </listitem>
      <listitem>
        <para>
          The <link linkend="TeplTab-close-request">TeplTab::close-request</link>
          signal has now a default object method handler.
        </para>
      </listitem>
    </itemizedlist>
  </chapter>

  <chapter id="api-breaks-4-to-5-tepl">
    <title>Tepl 4 -> Tepl 5</title>

    <itemizedlist>
      <listitem>
        <para>
          The <link linkend="TeplMetadataManager">TeplMetadataManager</link> API
          has been re-worked.
        </para>
      </listitem>
      <listitem>
        <para>
          The <code>TeplFileMetadata</code> class has been replaced by
          <link linkend="TeplMetadata">TeplMetadata</link>, the latter no longer
          depends on <link linkend="TeplFile">TeplFile</link>.
        </para>
      </listitem>
      <listitem>
        <para>
          The <code>tepl_file_get_file_metadata()</code> function has been
          removed.
        </para>
      </listitem>
      <listitem>
        <para>
          The <link linkend="tepl-tab-load-file">tepl_tab_load_file()</link>
          function no longer loads the file metadata (but it was anyway an
          implementation detail).
        </para>
      </listitem>
      <listitem>
        <para>
          The <code>TeplAbstractFactoryVala</code> class has been removed,
          because it's possible to manually manage GObject references in Vala.
        </para>
      </listitem>
    </itemizedlist>
  </chapter>
</part>
