# API Breaks

## Gtef 1 -> Gtef 2

- The `GtefBuffer::cursor-moved` signal has been renamed to `GtefBuffer::gtef-cursor-moved`.

- The `GtefBuffer:title` property has been renamed to `GtefBuffer:gtef-title`.

## Gtef 2 -> Tepl 3

- The library has been renamed to Tepl (Text editor product line). So the namespace of the code has changed.

  The new version is Tepl 3 and not Tepl 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.

- The TeplTab class has been revamped. The tepl_tab_new() function doesn't take a GtkWidget parameter anymore, a TeplView is created instead.

- The `TeplBuffer:tepl-title` property has been renamed to TeplBuffer:tepl-full-title, and `tepl_buffer_get_title()` has been renamed to tepl_buffer_get_full_title().

## Gtef 2 -> Amtk 3

- 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.

- The AmtkFactory class has been added, which replace `gtef_action_info_store_create_menu_item()` and removes the `GtefActionInfoStore:application` property.

- `gtef_action_info_central_store_get_instance()` has been renamed to amtk_action_info_central_store_get_singleton().

- amtk_application_window_connect_menu_to_statusbar() now takes a GtkMenuShell parameter instead of AmtkMenuShell.

## Tepl 3 -> Tepl 4

- Tepl 3 depended on GtkSourceView 3, Tepl 4 depends on GtkSourceView 4. So to be able to use Tepl 4, you need to port your code to GtkSourceView 4. Note that the GTK dependency is still GTK 3.

- The TeplTab::close-request signal has now a default object method handler.

## Tepl 4 -> Tepl 5

- The TeplMetadataManager API has been re-worked.

- The `TeplFileMetadata` class has been replaced by TeplMetadata, the latter no longer depends on TeplFile.

- The `tepl_file_get_file_metadata()` function has been removed.

- The tepl_tab_load_file() function no longer loads the file metadata (but it was anyway an implementation detail).

- The `TeplAbstractFactoryVala` class has been removed, because it's possible to manually manage GObject references in Vala.