Después de 10 meses de la última versión de prueba, se ha presentado la liberación de la nueva versión de GTK 3.96, una nueva versión experimental de la futura versión estable de GTK 4.
Mientras que GTK 4 se está desarrollando como parte de un nuevo proceso de desarrollo que intenta proporcionar una API estable durante varios años que se puede usar sin que cada seis meses tendrá que rehacer la aplicación debido a cambios en la API en la siguiente rama de GTK.
Principales novedades en GTK 3.96
Con la llegada de esta nueva liberación en su anuncio oficial, se pueden destacar varias novedades entre las cuales una de ellas es que el backend GDK de Broadway se ha reescrito por completo para mostrar la salida de la biblioteca GTK en una ventana del navegador web.
En la implementación anterior de Broadway no se ajustaba a los métodos de representación GTK 4 propuestos (en lugar de enviar al búfer, ahora se usa un modelo basado en nodos de representación, en el que la salida se organiza en forma de un árbol de operaciones de alto nivel que la GPU procesa de manera efectiva utilizando OpenGL y Vulkan).
La nueva versión de Broadway convierte los nodos de dibujo en nodos DOM con estilos CSS para mostrar la interfaz en el navegador. Cada nuevo estado de pantalla se procesa como un cambio en el árbol DOM en relación con el estado anterior, lo que permite reducir el tamaño de los datos transmitidos al cliente remoto.
Las transformaciones 3D y los efectos gráficos se implementan a través de la propiedad de transformación CSS.
GDK continuó con la implementación de las API que se desarrollaron con la intención de utilizar el protocolo de Wayland y realizar una limpieza de la API vinculada a X11 o moverlas a un backend X11 separado.
La refactorización del código asociado con la realización de operaciones de arrastrar y soltar continuó, incluidos los objetos separados propuestos GdkDrag y GdkDrop.
Las capacidades de transformación 3D se llevan a un nivel que le permite crear tales efectos de animación como un cubo giratorio.
En el GSK API (GTK Scene Kit), que proporciona dibujos de escenas gráficas a través de OpenGL y Vulkan, se ha trabajado en errores que se han vuelto más fáciles gracias a la nueva herramienta de depuración gtk4-node-editor, que permite cargar y mostrar un nodo de renderizado en un formato serializado (se puede guardar en el modo de inspección GTK inspector), y también para comparar el resultado del dibujo cuando se utilizan diferentes backends.
Otros cambios
Los widgets GtkAssistant, GtkStack y GtkNotebook se han agregado a objetos disponibles públicamente para la salida paginada de elementos secundarios, a los que se han transferido las propiedades secundarias de los datos de widgets no relacionados con el diseño.
Dado que todas las propiedades secundarias existentes se convierten en propiedades normales, propiedades de diseño o se mueven a objetos de página, el soporte para propiedades secundarias se ha eliminado completamente de GtkContainer.
De los demás cambios que se destacan en esta versión:
- La funcionalidad principal de GtkEntry se ha trasladado al nuevo widget GtkText, que también incluye la interfaz de edición avanzada de GtkEditable. Todas las subclases de entrada de datos existentes se convierten a implementaciones GtkEditable basadas en el nuevo widget GtkText.
- Se agregó el nuevo widget GtkPasswordEntry para los formularios de ingreso de contraseña.
- Se agregaron nuevos modelos de formación de listas: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel y GtkSingleSelection. En el futuro, planeamos agregar soporte para los modelos de lista en GtkListView.
- En GtkBuilder, se agrega la capacidad de establecer propiedades de objetos en su lugar (en línea), en lugar de usar enlaces por identificador.
- Se ha agregado un comando a gtk4-builder-tool para convertir archivos UI de GTK 3 a GTK 4.
- El soporte para temas clave (tema clave), pestañas (menú tabular) y cuadros combinados ha sido descontinuado. Se ha eliminado el widget GtkInvisible.
Finalmente hasta que GTK 4 esté completamente estabilizado, se recomienda que las aplicaciones propuestas para los usuarios continúen la construcción utilizando GTK 3.24.