pubblicazione di un toolkit multipiattaforma , che consente di creare interfacce grafiche per Linux, Windows, macOS, UNIX e piattaforme mobili. wxWidgets 3.1 è posizionato come ramo per sviluppatori, in cui vengono sviluppate nuove funzionalità per la prossima versione stabile 3.2.0. Rispetto al ramo 3.0, ci sono diverse incompatibilità a livello di API e non è garantita la stabilità dell'ABI tra le versioni intermedie 3.1.x.
Il toolkit è scritto in C++ e distribuito con licenza libera , approvata dalla Free Software Foundation e dall'organizzazione OSI. La licenza si basa su LGPL e si differenzia per la possibilità di utilizzare proprie condizioni per la distribuzione di opere derivate in forma binaria. Oltre allo sviluppo di programmi in C/C++, wxWidgets fornisce binding per la maggior parte dei linguaggi di programmazione più popolari, tra cui , , e . A differenza di altri toolkit, wxWidgets offre all'applicazione un aspetto e metodi di interazione veramente nativi per il sistema di destinazione, grazie all'uso delle API di sistema, e non a un'imitazione del GUI.
Novità principali:
- Nuovo sistema di build basato su CMake. Il sistema di build ha aggiunto supporto per nuovi compilatori (MSVC 2019, g++ 10) e sistemi operativi (macOS 10.14 e macOS 11 per ARM);
- Nuovo port sperimentale wxQt;
- Rivisitato il supporto a OpenGL, migliorato l'uso delle nuove versioni di OpenGL (3.2+);
- Aggiunto supporto per eventi per gesti controllati, riprodotti tramite mouse;
- In wxFont e wxGraphicsContext è stata aggiunta la possibilità di specificare valori non interi per definire la dimensione dei caratteri e la larghezza della penna luminosa;
- In wxStaticBox è stata implementata la possibilità di assegnare etichette arbitrarie alle finestre;
- Migliorato il supporto per schermi ad alta densità di pixel (High DPI);
- Aggiunto supporto per compressione LZMA e file ZIP 64;
- Presentate nuove classi: wxActivityIndicator, wxAddRemoveCtrl,
wxAppProgressIndicator, wxNativeWindow, wxPowerResourceBlocker,
wxSecretStore e wxTempFFile; - Aggiunto supporto per il congelamento di colonne e righe in wxGrid;
- 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 apportati alle classi wxBusyInfo, wxDataViewCtrl,
wxNotificationMessage, wxStaticBox, wxStyledTextCtrl e wxUIActionSimulator; - È stata migliorata la sicurezza in fase di compilazione, grazie alla possibilità di disattivare le pericolose conversioni implicite tra le stringhe di tipo wxString e «char*».
- Tutte le librerie di terze parti incluse nel pacchetto sono state aggiornate. Aggiunta la supporto per WebKit 2 e GStreamer 1.7;
- Sono stati apportati miglioramenti relativi al supporto dello standard C++11. È stata aggiunta la compatibilità con i compilatori C++20.
- Numerosi miglioramenti nei porting di wxGTK3 e wxOSX/Cocoa.
Fonte: opennet.ru
