Nach drei Jahren Entwicklungszeit wurde die plattformübergreifende Toolkit-Version wxWidgets 3.3.0 veröffentlicht, die die Erstellung grafischer Benutzeroberflächen für Linux, Windows, macOS, UNIX-ähnliche Systeme und mobile Plattformen ermöglicht. Das Toolkit ist in C++ geschrieben und wird unter der wxWindows Library License verbreitet, die von der Free Software Foundation und der OSI genehmigt wurde. Die Lizenz basiert auf der LGPL und erlaubt es, eigene Bedingungen für die Verbreitung abgeleiteter Arbeiten in binärer Form festzulegen.
Neben der Unterstützung von C++ bietet wxWidgets Bindungen für die meisten gängigen Programmiersprachen, darunter PHP, Python, Perl, Haskell und Ruby. Benutzeroberflächen in Anwendungen, die wxWidgets verwenden, haben das native Aussehen des Zielsystems, da systemeigene APIs genutzt werden und keine GUI-Imitation erfolgt.
wxWidgets 3.3.0 wird als Entwicklungszweig positioniert, in dem neue Funktionen für die nächste stabile Version 3.4.0 entwickelt werden. Dabei ist die wxWidgets 3.3.0-Version als für den Einsatz in Produktionsprojekten geeignet gekennzeichnet — der Unterschied zu den stabilen Versionen besteht darin, dass in den Zwischenversionen der Entwicklerzweige Änderungen am ABI und API zulässig sind, die die Kompatibilität beeinträchtigen. Solche inkompatiblen Änderungen sind jedoch selten, und insgesamt ist der Zweig 3.3 fast vollständig mit wxWidgets 3.2 auf API-Ebene kompatibel.
Hauptneuheiten:
- Ein neuer wxWebView-Backend auf Basis des Chromium-Engines ermöglicht das Einbetten von Funktionen zur Verarbeitung und Anzeige von Web-Inhalten in Anwendungen.
- Die Klasse wxImage unterstützt jetzt Bilder im WebP-Format.
- Im wxMSW-Port, der Windows-spezifische Funktionen und Steuerelemente bereitstellt, wurde experimentelle Unterstützung für den Dunkelmodus hinzugefügt, der ab Windows 10 funktioniert. Die Unterstützung für Windows XP und Vista wurde eingestellt. Standardmäßig ist der Double-Buffering-Ausgabemodus aktiviert, wie in den wxGTK-Ports mit Wayland und wxOSX.
- In der wxAUI-Bibliothek wurde die Möglichkeit hinzugefügt, die Position von Tabs (festzulegen) und mehrzeilige Tabs zu erstellen.
- Eine Variante der Klasse wxWebRequest wurde hinzugefügt, um Anfragen im synchronen (blockierenden) Modus zu verarbeiten.
- Eine API für die niedriglevelige Verarbeitung von Ereignissen von Touchscreens und Touchpads wurde hinzugefügt.
- Im wxGrid-Klasse wurden Funktionen zur Unterstützung von Menschen mit Behinderungen implementiert.
- Für UNIX-ähnliche Systeme wurden wxEVT_POWER_XXX-Ereignisse zur Überwachung des Energieverbrauchs hinzugefügt.
- Im wxGTK-Port werden nun, wenn möglich, native Dateidialoge verwendet.
- In der wxTextCtrl-Klasse, die Elemente zum Anzeigen und Bearbeiten von Text bildet, wurde die Unterstützung für formatierten Text (RTF) implementiert.
- Unterstützung für Animationen und Cursor für hochauflösende Bildschirme (High DPI) wurde hinzugefügt.
- Unterstützung für den Bau mit den neuen Compilern gcc 15, clang 19 und Xcode 16 wurde hinzugefügt.
- Auf UNIX-ähnlichen Systemen wird für die Platzierung von Anwendungs-Konfigurationsdateien jetzt das Verzeichnis ~/.config/appname.conf anstelle von ~/.appname verwendet (das Laden bereits existierender Konfigurationsdateien bleibt erhalten).
- Die Ports wxMotif und wxGTK1 wurden entfernt.
- Die Möglichkeit, ohne die Verwendung von Unicode (wxUSE_UNICODE=0) zu kompilieren, wurde entfernt.
Quelle: opennet.ru
