Das grafische Toolkit GTK 4.6 ist erhältlich

Nach vier Monaten Entwicklung wurde die plattformübergreifende Tool-Suite für die Erstellung von Benutzeroberflächen – GTK 4.6.0 – veröffentlicht. GTK 4 entwickelt sich im Rahmen eines neuen Entwicklungsprozesses, der versucht, den Anwendungsentwicklern eine stabile und über mehrere Jahre unterstützte API zu bieten, die ohne Angst vor Änderungen alle sechs Monate verwendet werden kann, sodass die Anwendungen nicht neu geschrieben werden müssen.

Zu den auffälligsten Verbesserungen in GTK 4.6 gehören:

  • Die alte OpenGL-basierte Rendering-Engine wurde entfernt und durch die neue NGL-Engine ersetzt, die seit GTK 4.2 standardmäßig geliefert wird und eine höhere Leistung bietet. NGL wurde in GL umbenannt. Der Code zum Laden von Texturen wurde neu geschrieben, die Unterstützung für Bildformate und Farbräume wurde verbessert.
  • Der Code zur Berechnung der Größen von Elementen und zur Anordnung von Widgets wurde erheblich überarbeitet. Zuvor basierten die Eigenschaften GtkWidget::halign und GtkWidget::valign bei der Anordnung von Elementen auf der Standardgröße der Widgets, was bei der Angabe nur einer Größe im Fill-Modus dazu führen konnte, dass das Element zusätzlichen Platz einnahm. In GTK 4.6 wurde die Möglichkeit zur relativen Messung des fehlenden Platzes implementiert (zum Beispiel kann bei angegebener Breite die verfügbare Höhe bei der Anordnung berücksichtigt werden), was es ermöglicht, Widgets schlanker zu gestalten, ohne zusätzlichen Platz zu beanspruchen.
    Das grafische Toolkit GTK 4.6 ist erhältlich
    Das grafische Toolkit GTK 4.6 ist erhältlich
  • Im GtkBox-Widget wurde die Möglichkeit zur Berechnung individueller Größen für untergeordnete Elemente implementiert. Früher wurde der Platz gleichmäßig zwischen den untergeordneten Widgets basierend auf deren Standardgröße verteilt, aber in GTK 4.6 wird bei der Ausgabe die tatsächliche Größe der untergeordneten Elemente berücksichtigt.
  • Im GtkLabel-Widget wurde die Unterstützung für den Zeilenumbruch von Text in beliebig viele Zeilen implementiert, was die Erstellung von schmalen Labels ermöglicht, die den verfügbaren vertikalen Raum ausfüllen.
  • In die Klasse GtkWindow wurde die Möglichkeit integriert, die Mindestgröße an das Seitenverhältnis anzupassen, was es erlaubt, die Fenstergröße willkürlich zu ändern, ohne befürchten zu müssen, dass sie zu klein wird. Es wurde eine Eigenschaft "Window.titlebar" hinzugefügt.
  • Es wurde eine neue Warnung hinzugefügt, die über Inkonsistenzen bei den Größen beim Zurückgeben eines Widgets mit falscher Größe informiert. Gtk-CRITICAL **: 00:48:33.319: gtk_widget_measure: Assertion ‘for_size >= minimum opposite size’ fehlgeschlagen: 23 >= 42
  • Im GtkTextView-Widget wurde die Unterstützung für Tabulatoren hinzugefügt, die rechtsbündig oder zentriert ausgerichtet sind. Die Unterstützung für Textumwandlungen und die Berücksichtigung der Zeilenhöhe wurde hinzugefügt. Die Bildlaufoperation zu dem angegebenen Tag wurde verbessert. Die Verarbeitung von Rückgängen wurde verbessert. Probleme beim Einfügen von Text aus der Zwischenablage und der Auswahl des Ortes zum Anzeigen der Emoji-Einfügeschnittstelle wurden behoben.
  • Im GtkMenuButton-Widget wurde die Möglichkeit hinzugefügt, eigene untergeordnete Elemente zu definieren.
  • Die Vorabkompilierung von Vorlagen in GtkBuilder wurde beschleunigt.
  • Ein Aktivierungssignal für die Aktivierung von GtkComboBox- und GtkDropDown-Widgets wurde hinzugefügt.
  • Im GtkDropDown-Widget wurde die Eigenschaft show-arrow hinzugefügt, um die Anzeige des Pfeils zu steuern.
    Das grafische Toolkit GTK 4.6 ist erhältlich
  • Im GtkPopoverMenu wurde das Attribut use-markup hinzugefügt, um Pango-Markup im Menütext zu verwenden.
  • Im Stylesystem wird die Unterstützung für CSS-Eigenschaften font-variant-caps zur Anzeige von kleinen Großbuchstaben und text-transform zur Textumwandlung bereitgestellt.
  • Das GtkSymbolicPaintable-Interface wurde hinzugefügt, um die Farbe symbolischer Icons zu steuern.
  • Die Inspektionsschnittstelle unterstützt jetzt das Tracking von Drag-and-Drop-Operationen, zeigt das aktuelle Eingabemodul an, hat einen Inhaltsanzeiger für die Zwischenablage hinzugefügt und implementiert ein Diagramm zur Visualisierung von gtk_widget_measure(). Der gtk4-node-editor-Utility wurde Drag-and-Drop-Unterstützung hinzugefügt.
  • Für Wayland wurde eine Einstellung zur Aktivierung des Hochkontrastmodus (high-contrast) implementiert. Unterstützung für das Protokoll wl_seat v7 wurde hinzugefügt.
  • Es wurde eine Einstellung gtk-hint-font-metrics hinzugefügt, um das Rendering von Text näher am Verhalten von GTK3 zu gestalten.
  • Für X11-basierte Systeme wurde die Unterstützung für Steuerungsbewegungen auf Touchpads (bei Verwendung von XInput 2.4) hinzugefügt und das Verhalten beim Ziehen von Fenstern durch die Titelleiste verbessert.
  • In der GDK-Bibliothek, die eine Schnittstelle zwischen GTK und dem Grafiksystem bereitstellt, wurde die Überprüfung der Versionen von OpenGL und OpenGL ES verbessert. Die Unterstützung des Farbmodells HSL wurde hinzugefügt. Beim Laden von Texturen und der Verarbeitung von Bildformaten werden direkt die Bibliotheken libpng, libjpeg und libtiff verwendet. Der EGL-Init-Code wurde auf die Frontend-Seite verschoben. Neue APIs wurden hinzugefügt: 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_to_tiff_bytes und gdk_display_create_gl_context.
  • Der 'master'-Branch im Git-Repository wurde in 'main' umbenannt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4