GTK 3.96 and GTK 4 arrive already in experimental launch

gtk-logo

After 10 months from the latest trial version, the release of the new version of GTK 3.96 has been presented, a new experimental version of the future stable version of GTK 4.

While GTK 4 is in development as part of a new development process trying to provide a stable API for several years that can be used without every six months you will have to redo the application due to API changes in the next branch of GTK.

Main new features in GTK 3.96

With the arrival of this new release in its official announcement, several novelties can be highlighted among which one of them is that Broadway's GDK backend has been completely rewritten to display the output of the GTK library in a web browser window.

In the previous Broadway implementation it did not conform to the GTK 4 rendering methods proposed (instead of sending to the buffer, a rendering node-based model is now used, in which the output is organized in the form of a high-level operations tree that is effectively processed by the GPU using OpenGL and Vulkan).

The new version of Broadway converts the drawing nodes into DOM nodes with CSS styles to display the interface in the browser. Each new screen state is processed as a change in the DOM tree relative to the previous state, reducing the size of the data transmitted to the remote client.

All the 3D transformations and graphic effects are implemented through the CSS transformation property.

GDK continued with the implementation of the APIs that were developed with the intention of using the Wayland protocol and doing a cleanup of the X11 linked API or moving them to a separate X11 backend.

Refactoring of the code associated with performing drag and drop operations continued, including the proposed separate objects GdkDrag and GdkDrop.

The 3D transform capabilities are brought to a level that allows you to create such animation effects as a rotating cube.

At GSK API (GTK Scene Kit), which provides graphical scene drawings via OpenGL and Vulkan, it has worked on errors that have become easier thanks to the new gtk4-node-editor debugging tool, which allows to load and display a render node in a serialized format (can be saved in the GTK inspector mode), and also to compare the drawing result when using different backends.

Other changes

The widgets GtkAssistant, GtkStack and GtkNotebook have been added to publicly available objects for paginated output of children, to which the child properties of non-layout widget data have been passed.

Since all existing child properties are converted to regular properties, layout properties, or moved to page objects, support for child properties has been completely removed from GtkContainer.

Of the other changes that stand out in this version:

  • The core functionality of GtkEntry has been moved to the new GtkText widget, which also includes GtkEditable's advanced editing interface. All existing data entry subclasses are converted to GtkEditable implementations based on the new GtkText widget.
  • Added new GtkPasswordEntry widget for password entry forms.
  • New list formation models have been added: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel, and GtkSingleSelection. In the future, we plan to add support for list models in GtkListView.
  • In GtkBuilder, the ability to set object properties is added instead (inline), instead of using bindings by identifier.
  • A command has been added to gtk4-builder-tool to convert UI files from GTK 3 to GTK 4.
  • Support for key themes (key theme), tabs (tabular menu), and combo boxes has been discontinued. The GtkInvisible widget has been removed.

Finally until GTK 4 is fully stabilized, it is recommended that the proposed user applications continue to build using GTK 3.24.

Source: https://blog.gtk.org


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.