Po trzech latach rozwoju opublikowano wersję wieloplatformowego zestawu narzędzi wxWidgets 3.3.0, który umożliwia tworzenie graficznych interfejsów użytkownika dla systemów Linux, Windows, macOS, systemów podobnych do UNIX oraz platform mobilnych. Zestaw narzędzi napisany jest w języku C++ i rozpowszechniany jest na zasadach otwartej licencji wxWindows Library License, zatwierdzonej przez Fundację Otwartych Zasobów i organizację OSI. Licencja oparta jest na LGPL i pozwala na określenie własnych warunków dotyczących rozpowszechniania prac pochodnych w formie binarnej.
Oprócz wsparcia dla C++, wxWidgets oferuje powiązania dla większości popularnych języków programowania, w tym PHP, Pythona, Perla, Haskella i Ruby. Interfejs w aplikacjach korzystających z wxWidgets ma natywny wygląd dla docelowego systemu, dzięki wykorzystaniu systemowych API, a nie imitacji GUI.
wxWidgets 3.3.0 jest przedstawiane jako gałąź dla programistów, w której rozwijane są nowe możliwości dla następnej stabilnej wersji 3.4.0. Jednocześnie gałąź wxWidgets 3.3.0 oznaczona jest jako nadająca się do użytku w projektach roboczych — różnica w stosunku do stabilnych gałęzi polega na tym, że w wersjach pośrednich gałęzi dla programistów dozwolone są zmiany w ABI i API, które naruszają zgodność. Zmiany naruszające zgodność mają charakter jednostkowy i ogólnie rzecz biorąc, gałąź 3.3 jest prawie w pełni zgodna z wxWidgets 3.2 na poziomie API.
Główne nowości:
- Zrealizowano nowy backend wxWebView oparty na silniku Chromium, umożliwiający wbudowywanie w aplikacje funkcji do przetwarzania i wyświetlania treści internetowych.
- W klasie wxImage dodano wsparcie dla obrazów w formacie WebP.
- Do portu wxMSW, który oferuje specyficzne dla systemu Windows funkcje i kontrolki, dodano eksperymentalne wsparcie dla trybu ciemnego, działającego od Windows 10. Zaprzestano wsparcia dla Windows XP i Vista. Domyślnie włączono tryb wyjścia z podwójnym buforowaniem, jak w portach wxGTK z Wayland i wxOSX.
- W bibliotece wxAUI wprowadzono możliwość przypinania pozycji kart (pin) oraz tworzenia wielowierszowych zakładek.
- Dodano wariant klasy wxWebRequest do przetwarzania zapytań w trybie synchronicznym (blokującym).
- Dodano API do niskopoziomowego przetwarzania zdarzeń z ekranów dotykowych i touchpadów.
- W klasie wxGrid wprowadzono środki dla osób z ograniczeniami.
- Dla systemów podobnych do UNIX wprowadzono zdarzenia wxEVT_POWER_XXX do monitorowania stanu zużycia energii.
- W porcie wxGTK, gdzie to możliwe, teraz używane są natywne okna dialogowe do pracy z plikami.
- W klasie wxTextCtrl, która tworzy elementy do wyświetlania i edytowania tekstu, wprowadzono obsługę tekstu z formatowaniem (RTF).
- Dodano wsparcie dla animacji i kursorów na ekranach o wysokiej gęstości pikseli (high DPI).
- Dodano wsparcie dla kompilacji przy użyciu nowych kompilatorów gcc 15, clang 19 i Xcode 16.
- Na systemach podobnych do UNIX do umieszczania plików konfiguracyjnych aplikacji wykorzystano katalog ~ / .config / appname.conf zamiast ~ / .appname (załadowanie już istniejących plików konfiguracyjnych zostało zachowane).
- Usunięto porty wxMotif i wxGTK1.
- Usunięto możliwość kompilacji bez użycia Unicode (wxUSE_UNICODE=0).
Źródło: opennet.ru
