Na zes maanden ontwikkeling is de multi-platform GUI-toolkit GTK 4.10.0 uitgebracht. GTK 4 wordt ontwikkeld volgens een nieuw ontwikkelproces dat applicatieontwikkelaars jarenlang een stabiele en ondersteunde API wil bieden die ze kunnen gebruiken zonder hun applicaties elke zes maanden te hoeven aanpassen vanwege API-wijzigingen in de volgende GTK-branch.
Enkele van de meest opvallende verbeteringen in GTK 4.10 zijn:
- In de widget GtkFileChooserWidget, met de implementatie van het dialoogvenster voor het selecteren van bestanden in applicaties, is de modus voor het weergeven van de inhoud van mappen in de vorm van een netwerk van pictogrammen geΓ―mplementeerd. Standaard wordt de klassieke weergave in de vorm van een lijst met bestanden nog steeds gebruikt en is er een aparte pictogramknop rechts in het paneel verschenen om over te schakelen naar de pictogrammodus:

- De nieuwe klassen GtkColorDialog, GtkFontDialog, GtkFileDialog en GtkAlertDialog zijn toegevoegd met de implementatie van dialoogvensters voor het selecteren van kleuren, lettertypen en bestanden, en het weergeven van waarschuwingen. De nieuwe varianten maken gebruik van een meer holistische en gebalanceerde API die in asynchrone modus (GIO async) werkt. De nieuwe dialoogvensters maken, waar mogelijk en beschikbaar, gebruik van Freedesktop-portals (xdg-desktop-portal), die worden gebruikt om de toegang tot resources in de gebruikersomgeving vanuit geΓ―soleerde applicaties te organiseren.
- Er is een nieuwe CPDB-backend (Common Printing Dialog Backend) toegevoegd, met generieke handlers voor gebruik in afdrukdialogen. De ondersteuning voor de eerder gebruikte lpr-afdrukbackend is stopgezet.
- De GDK-bibliotheek, die een laag vormt tussen GTK en het grafische subsysteem, biedt de GdkTextureDownloader-structuur, die wordt gebruikt om texturen in de GdkTexture-klasse te downloaden en kan worden gebruikt om tussen verschillende formaten te converteren. Verbeterde textuurschaling met OpenGL.
- De GSK-bibliotheek (GTK Scene Kit), die de mogelijkheid biedt om grafische scènes te renderen via OpenGL en Vulkan, implementeert ondersteuning voor maskerknooppunten en aangepaste filtering van schaalbare texturen.
- Ondersteuning voor nieuwe versies van Wayland-protocoluitbreidingen is geΓ―mplementeerd. De uitvoer van opstartmeldingen bij gebruik van het "xdg-activation"-protocol is aangepast. Problemen met de cursorgrootte op schermen met een hoge pixeldichtheid zijn opgelost.
- De klasse GtkMountOperation is aangepast om te werken in niet-X11-omgevingen.
- De Broadway-backend, waarmee de uitvoer van de GTK-bibliotheek in een webbrowservenster kan worden weergegeven, heeft ondersteuning toegevoegd voor modale vensters.
- De klasse GtkFileLauncher biedt een nieuwe asynchrone API ter vervanging van gtk_show_uri.
- Het hulpprogramma gtk-builder-tool heeft de sjabloonverwerking verbeterd.
- De widget GtkSearchEntry ondersteunt nu tijdelijke tekst die wordt weergegeven wanneer het veld leeg is en er geen invoerfocus is.
- De klasse GtkUriLauncher is toegevoegd. Deze vervangt de functie gtk_show_uri. Deze functie wordt gebruikt om te bepalen welke toepassing moet worden gestart om een ββbepaalde URI weer te geven of om een ββfout weer te geven als er geen handler is.
- De klasse GtkStringSorter ondersteunt nu verschillende "collatie"-methoden waarmee u tekens kunt vergelijken en sorteren op basis van de betekenis ervan (bijvoorbeeld of er een accentteken staat).
- Een groot deel van de API's en widgets is verouderd en wordt in de toekomstige GTK5-branch niet meer ondersteund. Ze zijn vervangen door vergelijkbare API's en widgets die in de asynchrone modus werken:
- GtkDialog (hiervoor zou GtkWindow gebruikt moeten worden).
- GtkTreeView (hiervoor zou GtkListView en GtkColumnView gebruikt moeten worden).
- GtkIconView (hiervoor zou GtkGridView gebruikt moeten worden).
- GtkComboBox (hiervoor zou GtkDropDown gebruikt moeten worden).
- GtkAppChooser (hiervoor zou GtkDropDown gebruikt moeten worden).
- GtkMessageDialog (hiervoor zou GtkAlertDialog gebruikt moeten worden).
- GtkColorChooser (hiervoor moet je GtkColorDialog en GtkColorDialogButton gebruiken).
- GtkFontChooser (hiervoor moet je GtkFontDialog en GtkFontDialogButton gebruiken).
- GtkFileChooser (hiervoor zou GtkFileDialog gebruikt moeten worden).
- GtkInfoBar
- GtkEntryCompletion
- GtkStyleContext
- GtkVolumeButton
- GtkStatusbalk
- GtkAssistent
- GtkLockButton
- gtk_widget_tonen/verbergen
- gtk_show_uri
- gtk_render_ en gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- De GtkAccessible-interface is verplaatst naar de publieke categorie, waardoor het mogelijk is om externe handlers van interface-elementen te koppelen voor mensen met een beperking. De GtkAccessibleRange-interface is toegevoegd.
- Op het platform macOS Ondersteuning voor het slepen en neerzetten van elementen met de muis (DND, Drag-and-Drop) is aanwezig.
- Op het platform Windows Verbeterde integratie met systeeminstellingen.
- Het debug-uitvoerformaat is geΓΌniformeerd.
- De geheugenlimiet voor de JPEG-afbeeldinglader is verhoogd naar 1 GB.
Bron: opennet.ru
