9 anos despois do lanzamento da rama 3.0, presentouse a primeira versión dunha nova rama estable do kit de ferramentas multiplataforma wxWidgets 3.2.0, que permite crear interfaces gráficas para Linux, Windows, macOS, UNIX e plataformas móbiles. En comparación coa rama 3.0, hai unha serie de incompatibilidades a nivel de API. O conxunto de ferramentas está escrito en C++ e distribúese baixo a licenza gratuíta de biblioteca wxWindows, aprobada pola Open Source Foundation e a organización OSI. A licenza baséase na LGPL e distínguese polo seu permiso para usar os seus propios termos para distribuír obras derivadas en forma binaria.
Ademais de desenvolver programas en C++, wxWidgets ofrece enlaces para as linguaxes de programación máis populares, incluíndo PHP, Python, Perl e Ruby. A diferenza doutros conxuntos de ferramentas, wxWidgets ofrece unha aplicación cunha aparencia nativa para o sistema de destino mediante o uso de API do sistema en lugar de imitar a GUI.
Principais novidades:
- Implementouse un novo porto experimental de wxQt, o que permite que wxWidgets funcione enriba do framework Qt.
- O porto wxGTK ofrece soporte completo para o protocolo Wayland.
- Engadido soporte para pantallas con alta densidade de píxeles (Alto DPI). Engadida a posibilidade de asignar diferentes DPI para diferentes monitores e cambiar dinámicamente DPI. Propúxose unha nova API wxBitmapBundle, que permite manipular varias versións dunha imaxe de mapa de bits, presentada en diferentes resolucións, como un todo.
- Propúxose un novo sistema de construción baseado en CMake. Engadiuse ao sistema de montaxe soporte para compiladores novos (incluíndo MSVS 2022, g++ 12 e clang 14) e sistemas operativos.
- Rediseñouse o soporte de OpenGL, mellorouse o uso das novas versións de OpenGL (3.2+).
- Engadido soporte para a compresión LZMA e ficheiros ZIP 64.
- Mellorouse a protección en tempo de compilación, grazas á posibilidade de desactivar as perigosas conversións implícitas entre cadeas dos tipos wxString e "char*".
- Engadiuse compatibilidade de eventos para os xestos de control xogados co rato.
- As clases wxFont e wxGraphicsContext agora teñen a capacidade de especificar valores non enteiros ao definir tamaños de fonte e ancho de pluma.
- A clase wxStaticBox implementa a capacidade de asignar etiquetas arbitrarias a Windows.
- A API wxWebRequest agora admite HTTPS e HTTP/2.
- A clase wxGrid engadiu compatibilidade para conxelar columnas e filas.
- Novas clases introducidas: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile e wxUILocale.
- Implementáronse novos controladores XRC para todas as clases novas e algunhas clases existentes.
- Novos métodos introducidos: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptModeGet(E), wxHtmlEasyPrinting::SetPromptModeGet(E), wxDisplay::GetPPI(), etTop Elemento (), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
- Realizáronse melloras significativas nas clases wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl e wxUIActionSimulator.
- Mellorouse a compatibilidade coa plataforma macOS, incluída a posibilidade de usar un tema escuro e engadiuse soporte para dispositivos con procesadores ARM.
- Realizáronse melloras para soportar o estándar C++11. Engadido soporte para a construción con compiladores C++20.
- Actualizáronse todas as bibliotecas de terceiros incluídas. Engadido soporte para WebKit 2 e GStreamer 1.7.
Fonte: opennet.ru