Dopo sei mesi di sviluppo, è stato pubblicato il rilascio del toolkit multipiattaforma per la creazione di interfacce grafiche utente — GTK 4.10.0. GTK 4 progredisce all'interno di un nuovo processo di sviluppo, che cerca di fornire agli sviluppatori un'API stabile e supportata per diversi anni, da utilizzare senza temere di dover riscrivere le applicazioni ogni sei mesi a causa delle modifiche all'API in un nuovo ramo di GTK.
Tra i miglioramenti più significativi in GTK 4.10:
- Nel widget GtkFileChooserWidget con implementazione del dialogo per la selezione dei file nelle applicazioni, è stata introdotta la modalità di visualizzazione del contenuto delle cartelle in forma di griglia di icone. Per impostazione predefinita, continua a essere utilizzata la classica visualizzazione in forma di elenco di file, mentre per passare alla modalità di icone è apparso un pulsante separato sul lato destro della barra.

- Sono state aggiunte nuove classi GtkColorDialog, GtkFontDialog, GtkFileDialog e GtkAlertDialog, con l'implementazione di dialoghi per la selezione di colori, caratteri e file, oltre alla visualizzazione di avvisi. Le nuove opzioni si distinguono per il passaggio a un'API più coesa e bilanciata, che funziona in modalità asincrona (GIO async). Nei nuovi dialoghi, quando possibile e disponibile, sono stati utilizzati i portali Freedesktop (xdg-desktop-portal) per consentire l'accesso alle risorse dell'ambiente utente da applicazioni isolate.
- È stato aggiunto un nuovo backend CPDB (Common Printing Dialog Backend), che fornisce gestori standard per l'utilizzo nei dialoghi di stampa. Il supporto per il precedente backend di stampa lpr è stato interrotto.
- Nella libreria GDK, che fornisce uno strato tra GTK e il sottosistema grafico, è stata proposta la struttura GdkTextureDownloader, che viene utilizzata per scaricare texture nella classe GdkTexture e può essere impiegata per la conversione di vari formati. È stato migliorato il ridimensionamento delle texture utilizzando OpenGL.
- Nella libreria GSK (GTK Scene Kit), che offre funzionalità di rendering di scene grafiche tramite OpenGL e Vulkan, è stata implementata la supporto per nodi con maschere e filtraggio personalizzabile delle texture scalabili.
- È stata implementata la compatibilità con le nuove versioni delle estensioni del protocollo Wayland. È stato stabilito l'avvio delle notifiche all'uso del protocollo «xdg-activation». Sono stati risolti problemi relativi alla dimensione del cursore su schermi ad alta densità di pixel.
- La classe GtkMountOperation è stata adattata per funzionare in ambienti senza X11.
- Nel backend Broadway, che consente il rendering dell'output della libreria GTK in una finestra del browser web, è stata aggiunta la supporto per finestre modali.
- Nella classe GtkFileLauncher è stato proposto un nuovo API asincrono per sostituire gtk_show_uri.
- Nell'utilità gtk-builder-tool è stato migliorato il trattamento dei modelli.
- Nel widget GtkSearchEntry è stata aggiunta la supporto per il testo di riempimento, che viene mostrato quando il campo è vuoto e non si ha il focus di input.
- È stata aggiunta la classe GtkUriLauncher, che sostituisce la funzione gtk_show_uri, utilizzata per determinare l'applicazione da avviare per visualizzare un URI specificato o per restituire un errore in assenza di un gestore.
- Nella classe GtkStringSorter è stata aggiunta la supporto per diversi metodi di «collation», che consentono di effettuare confronti e ordinamenti tenendo conto del significato dei caratteri (ad esempio, in presenza di accenti).
- Una grande parte delle API e dei widget è stata declassata come obsoleta, non supportata nella futura versione GTK5 e sostituita con equivalenti che funzionano in modalità asincrona:
- GtkDialog (utilizzare GtkWindow).
- GtkTreeView (utilizzare GtkListView e GtkColumnView).
- GtkIconView (utilizzare GtkGridView).
- GtkComboBox (utilizzare GtkDropDown).
- GtkAppChooser (utilizzare GtkDropDown).
- GtkMessageDialog (utilizzare GtkAlertDialog).
- GtkColorChooser (utilizzare GtkColorDialog e GtkColorDialogButton).
- GtkFontChooser (utilizzare GtkFontDialog e GtkFontDialogButton).
- GtkFileChooser (utilizzare GtkFileDialog).
- GtkInfoBar
- GtkEntryCompletion
- GtkStyleContext
- GtkVolumeButton
- GtkStatusbar
- GtkAssistant
- GtkLockButton
- gtk_widget_show/hide
- gtk_show_uri
- gtk_render_ e gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- Declassato come interfaccia pubblica GtkAccessible, che consente di connettere gestori personalizzati per elementi dell'interfaccia per persone con disabilità. Aggiunta l'interfaccia GtkAccessibleRange.
- Sulla piattaforma macOS è supportato il drag-and-drop degli elementi con il mouse.
- Sulla piattaforma Windows è migliorata l'integrazione con le impostazioni di sistema.
- Formato di output di debug unificato.
- Il limite di memoria per il caricatore di immagini in formato JPEG è stato aumentato a 1 GB.
Fonte: opennet.ru

