Po devíti letech od vydání verze 3.0 byl představen první stabilní vydání nové multiplatformní sady nástrojů wxWidgets 3.2.0, která umožňuje vytvářet grafické rozhraní pro Linux, Windows, macOS, UNIX a mobilní platformy. Ve srovnání s verzí 3.0 jsou zaznamenány některé nekompatibility na úrovni API. Sada nástrojů je napsána v jazyce C++ a je distribuována na základě svobodné licence wxWindows Library License, schválené Fondem pro svobodný software a organizací OSI. Licence je založena na LGPL a umožňuje používat vlastní podmínky pro distribuci odvozených prací v binární podobě.
Kromě vývoje programů v C++ nabízí wxWidgets vazby pro většinu populárních programovacích jazyků, včetně PHP, Python, Perl a Ruby. Na rozdíl od jiných sad nástrojů, wxWidgets poskytuje aplikacím skutečně nativní vzhled a interakci pro cílový systém díky používání systémového API, nikoli napodobování GUI.
Hlavní novinky:
- Byl vytvořen nový experimentální port wxQt, který zajišťuje fungování wxWidgets nad rámcem Qt.
- V portu wxGTK je zajištěna plná podpora protokolu Wayland.
- Byla přidána podpora obrazovek s vysokou hustotou pixelů (High DPI). Přidána možnost přiřazování různých DPI pro různé monitory a dynamickou změnu DPI. Byl navržen nový API wxBitmapBundle, který umožňuje manipulaci s několika variantami rastrového obrázku, prezentovanými v různých rozlišeních, jako s jedním celkem.
- Byl navržen nový systém pro sestavování založený na CMake. Systém pro sestavování byl rozšířen o podporu nových kompilátorů (včetně MSVS 2022, g++ 12 a clang 14) a operačních systémů.
- Byla přepracována podpora OpenGL, vylepšeno používání nových verzí OpenGL (3.2+).
- Byla přidána podpora pro LZMA kompresi a ZIP 64 soubory.
- Byla posílena ochrana při kompilaci, díky možnosti zakázání nebezpečných implicitních konverzí mezi řetězci typu wxString a „char*“.
- Byla přidána podpora pro události ovládané gesty, které jsou ovládány pomocí myši.
- Do tříd wxFont a wxGraphicsContext byla přidána možnost uvádět reálné hodnoty při určování velikosti písma a šířky světelného pera.
- Ve třídě wxStaticBox byla implementována možnost přiřazování libovolných štítků oknům.
- V API wxWebRequest byla přidána podpora pro HTTPS a HTTP/2.
- Ve třídě wxGrid byla přidána podpora zamrzlých sloupců a řádků.
- Byly představeny nové třídy: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile a wxUILocale.
- Pro všechny nové a některé stávající třídy byly implementovány nové zpracovatele XRC.
- Byly představeny nové metody: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::GetTopItem(), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
- Byly provedeny významné vylepšení ve třídách wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl a wxUIActionSimulator.
- Byla vylepšena podpora platformy macOS, včetně možnosti používat tmavé téma a přidána podpora zařízení s procesory ARM.
- Zavedena vylepšení spojená s podporou standardu C++11. Přidána podpora pro kompilaci s nástroji C++20.
- Byly aktualizovány všechny dodávané externí knihovny. Byla přidána podpora WebKit 2 a GStreamer 1.7.
Zdroj: opennet.ru
