Despois de catro meses de desenvolvemento, publicouse o lanzamento dun kit de ferramentas multiplataforma para crear unha interface gráfica de usuario: GTK 4.6.0. GTK 4 está a ser desenvolvido como parte dun novo proceso de desenvolvemento que tenta proporcionar aos desenvolvedores de aplicacións unha API estable e compatible durante varios anos que se pode usar sen o medo a ter que reescribir aplicacións cada seis meses debido aos cambios da API no próximo GTK. rama.
Algunhas das melloras máis notables en GTK 4.6 inclúen:
- Eliminouse o antigo motor de renderizado baseado en OpenGL, substituído polo novo motor de renderizado NGL, proporcionado por defecto desde GTK 4.2, que ofrece un mellor rendemento. NGL cambiou o nome a GL. O código de carga de texturas foi reescrito, mellorouse o soporte para formatos de imaxe e espazos de cor.
- O código asociado ao cálculo do tamaño dos elementos e a disposición do widget foi reelaborado significativamente. Anteriormente, as propiedades GtkWidget::halign e GtkWidget::valign estaban baseadas no tamaño predeterminado do widget ao colocar elementos, o que, ao especificar só un tamaño no modo de recheo de área, podía facer que o elemento ocupase espazo adicional. GTK 4.6 introduce a capacidade de medir o tamaño que falta entre si (por exemplo, se se especifica un ancho, a colocación pode ter en conta a altura dispoñible), permitindo que os widgets sexan máis finos sen ocupar espazo innecesario.


- O widget GtkBox ten a capacidade de calcular o tamaño individual dos elementos fillos. Mentres que antes o espazo distribuíase igual entre os widgets fillos en función do seu tamaño predeterminado, GTK 4.6 agora ten en conta o tamaño real dos fillos á hora de emitir.
- O widget GtkLabel inclúe soporte para axustar texto nun número arbitrario de liñas, o que lle permite crear etiquetas estreitas que ocupen espazo vertical dispoñible.
- A clase GtkWindow engadiu a posibilidade de axustar o tamaño mínimo á relación de aspecto, o que lle permite redimensionar arbitrariamente a fiestra sen medo a que sexa demasiado pequena. Engadida a propiedade "Window.titlebar".
- Engadiuse unha nova advertencia sobre as discrepancias de tamaño se o widget devolve un tamaño incorrecto. Gtk-CRITICAL **: 00:48:33.319: gtk_widget_measure: a afirmación 'for_size >= tamaño oposto mínimo' fallou: 23 >= 42
- O widget GtkTextView agora admite pestanas aliñadas á dereita ou centradas. Engadido soporte para a conversión de texto e consideracións de altura de liña. Mellorouse o desprazamento ata a operación de etiqueta especificada. Mellorado o manexo dos cambios que se desfacen. Solucionáronse problemas ao pegar texto do portapapeis e escoller onde se mostra a interface de pegado de Emoji.
- O widget GtkMenuButton ofrece a posibilidade de definir os seus propios elementos fillos.
- A precompilación de modelos foi acelerada en GtkBuilder.
- Engadiuse o sinal de activación para activar os widgets GtkComboBox e GtkDropDown.
- Engadiuse a propiedade show-arrow ao widget GtkDropDown para controlar se se mostra a frecha.

- Engadiuse o atributo use-markup a GtkPopoverMenu para usar o marcado Pango no texto do menú.
- O sistema de estilo admite as propiedades CSS font-variant-caps para mostrar letras maiúsculas pequenas e text-transform para transformar texto.
- Engadiuse a interface GtkSymbolicPaintable para controlar a cor das iconas de símbolos.
- Engadiuse soporte para o seguimento das operacións de arrastrar e soltar á interface de inspección, mostrouse o módulo de entrada actual, engadiuse un visor de contido do portapapeis, implementouse un gráfico para visualizar gtk_widget_measure() e a capacidade de rexistrar eventos foi proporcionada. Engadiuse compatibilidade para o modo Arrastrar e soltar á utilidade gtk4-node-editor.
- Para Wayland, implementouse unha configuración para activar o modo de alto contraste. Engadido soporte para o protocolo wl_seat v7.
- Engadiuse a configuración de gtk-hint-font-metrics para achegar a representación do texto ao comportamento de GTK3.
- Para os sistemas baseados en X11, engadiuse compatibilidade con xestos de control do panel táctil (cando se usa XInput 2.4) e mellorou o comportamento de arrastrar o título da xanela.
- A biblioteca GDK, que proporciona unha capa entre GTK e o subsistema de gráficos, mellorou a comprobación das versións de OpenGL e OpenGL ES. Engadido soporte para espazo de cor HSL. Ao cargar texturas e procesar formatos de imaxe, as bibliotecas libpng, libjpeg e libtiff están directamente implicadas. O código de inicialización de EGL moveuse ao frontend. Engadíronse novas API: gdk_texture_new_from_bytes, gdk_texture_new_from_filename, gdk_texture_download_float, gdk_texture_save_to_png_bytes, gdk_texture_save_to_tiff, gdk_texture_save_tes_to_texte_display_bytes_to_texture_save_to_png_bytes e gdk_texture_save_to_tiff.
- A rama "mestra" do repositorio de Git foi renomeada a "principal".
Fonte: opennet.ru



