След 9 години от пускането на версия 3.0, е представено първото издание на новата стабилна версия на кроссплатформения инструментариум wxWidgets 3.2.0, който позволява създаването на графични интерфейси за Linux, Windows, macOS, UNIX и мобилни платформи. В сравнение с версия 3.0 има редица несъвместимости на ниво API. Инструментариумът е написан на C++ и се разпространява под свободната лицензия wxWindows Library License, одобрена от Фонда за софтуер с отворен код и организацията OSI. Лицензията е базирана на LGPL и позволява използването на собствени условия за разпространение на производни произведения в бинарна форма.
Освен разработката на софтуер на C++, wxWidgets предоставя биндинги за повечето популярни програмни езици, включително PHP, Python, Perl и Ruby. В отличие от другите инструментариуми, wxWidgets осигурява за приложението наистина роден външен вид и методи за взаимодействие за целевата система, благодарение на използването на системни API, а не имитация на GUI.
Основни нововъведения:
- Реализиран е нов експериментален порт wxQt, който осигурява работа на wxWidgets върху фреймворка Qt.
- В порта wxGTK е осигурена пълна поддръжка на протокола Wayland.
- Добавена е поддръжка за екрани с висока плътност на пикселите (High DPI). Добавена е възможност за задаване на различни DPI за различни монитори и динамично изменение на DPI. Предложен е нов API wxBitmapBundle, който позволява манипулиране с няколко варианта на растерно изображение, представени в различни резолюции.
- Предложена е нова система за построение на базата на CMake. В системата за построение е добавена поддръжка на нови компилатори (включително MSVS 2022, g++ 12 и clang 14) и операционни системи.
- Преработена е поддръжката на OpenGL, подобрено е използването на новите версии на OpenGL (3.2+).
- Добавена е поддръжка за компресия LZMA и файлове ZIP 64.
- Усилена е защитата на етапа на компилиране, благодарение на възможността за деактивиране на опасни неявни преобразувания между низове с типове wxString и "char*".
- Добавена е поддръжка на събития за управляващи жестове, възпроизвеждани с мишка.
- В класовете wxFont и wxGraphicsContext е добавена възможност за задаване на нецелочислени стойности при определянето на размера на шрифтовете и ширината на световния перо.
- В класа wxStaticBox е реализирана възможността за задаване на произволни етикети на прозорците.
- В API wxWebRequest е добавена поддръжка за HTTPS и HTTP/2.
- В класа wxGrid е добавена поддръжка за замразяване на колони и редове.
- Представени са нови класове: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile и wxUILocale.
- За всички нови и някои съществуващи класове са реализирани нови обработчици XRC.
- Представени са нови методи: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::GetTopItem(), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
- Направени са значителни подобрения в класовете wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl и wxUIActionSimulator.
- Поддръжката на платформата macOS е подобрена, включително е добавена възможност за използване на тъмен режим и поддръжка на устройства с ARM процесори.
- Внесени са подобрения, свързани с поддръжката на стандарта C++11. Добавена е поддръжка за компилиране с компилатори C++20.
- Актуализирани са всички включени в комплекта външни библиотеки. Добавена е поддръжка за WebKit 2 и GStreamer 1.7.
Източник: opennet.ru
