Dopo 9 anni dalla pubblicazione della versione 3.0, è stata rilasciata la prima versione stabile della nuova branch cross-platform del toolkit wxWidgets 3.2.0, che consente di creare interfacce grafiche per Linux, Windows, macOS, UNIX e piattaforme mobili. Rispetto alla versione 3.0, ci sono diverse incompatibilità a livello di API. Il toolkit è scritto in C++ e distribuito sotto la licenza libera wxWindows Library License, approvata dalla Free Software Foundation e dall'OSI. La licenza si basa su LGPL e permette l'uso di condizioni proprie per la distribuzione di opere derivate in forma binaria.
Oltre allo sviluppo di programmi in C++, wxWidgets fornisce binding per la maggior parte dei linguaggi di programmazione più diffusi, tra cui PHP, Python, Perl e Ruby. A differenza di altri toolkit, wxWidgets offre all'applicazione un aspetto e metodi di interazione davvero nativi per il sistema target, grazie all'uso delle API di sistema, anziché alla simulazione dell'interfaccia utente.
Novità principali:
- È stato implementato un nuovo port sperimentale wxQt, che consente di eseguire wxWidgets sopra il framework Qt.
- Nel port wxGTK è fornito il supporto completo per il protocollo Wayland.
- È stato aggiunto il supporto per schermi ad alta densità di pixel (High DPI). È ora possibile assegnare diversi DPI a diversi monitor e modificare dinamicamente il DPI. È stata proposta una nuova API wxBitmapBundle, che consente di manipolare come un'unica entità più varianti di immagini raster, presentate in diverse risoluzioni.
- È stato proposto un nuovo sistema di build basato su CMake. Il sistema di build ha aggiunto supporto per nuovi compilatori (inclusi MSVS 2022, g++ 12 e clang 14) e sistemi operativi.
- È stata rivista la gestione di OpenGL, migliorato l'uso delle nuove versioni di OpenGL (3.2+).
- È stato aggiunto il supporto per la compressione LZMA e per i file ZIP 64.
- Protezione potenziata durante la fase di compilazione, grazie alla possibilità di disabilitare le pericolose conversioni implicite tra stringhe di tipo wxString e «char*».
- È stata aggiunta la gestione degli eventi per gesture di controllo riprodotte tramite il mouse.
- Nelle classi wxFont e wxGraphicsContext è stata aggiunta la possibilità di specificare valori non interi per definire la dimensione dei font e la larghezza della penna luminosa.
- Nella classe wxStaticBox è stata implementata la possibilità di assegnare etichette arbitrarie alle finestre.
- Nell'API wxWebRequest è stato aggiunto il supporto per HTTPS e HTTP/2.
- Nella classe wxGrid è stato aggiunto il supporto per la congelazione di colonne e righe.
- Sono state introdotte nuove classi: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile e wxUILocale.
- Per tutte le nuove e alcune classi esistenti sono stati implementati nuovi gestori XRC.
- Sono stati introdotti nuovi metodi: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::GetTopItem(), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
- Significativi miglioramenti sono stati apportati alle classi wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl e wxUIActionSimulator.
- È stato migliorato il supporto per la piattaforma macOS, inclusa l'implementazione della possibilità di utilizzare un tema scuro e l'aggiunta del supporto per dispositivi con processori ARM.
- Apportate migliorie relative al supporto dello standard C++11. Aggiunto supporto per la compilazione con i compilatori C++20.
- Tutte le librerie di terze parti incluse nel pacchetto sono state aggiornate. È stato aggiunto il supporto per WebKit 2 e GStreamer 1.7.
Fonte: opennet.ru
