rilascio di un toolkit multipiattaforma , che consente di creare interfacce grafiche per Linux, Windows, macOS, UNIX e piattaforme mobili. wxWidgets 3.1 è posizionato come un ramo per sviluppatori, in cui si stanno sviluppando nuove funzionalità per la prossima stabile release 3.2.0. Rispetto al ramo 3.0, ci sono diverse incompatibilità a livello di API e non è garantita l'immutabilità dell'ABI tra le versioni intermedie 3.1.x.
Il toolkit è scritto in C++ e distribuito con una licenza open source , approvata dalla Free Software Foundation e dall'OSI. La licenza si basa su LGPL e differisce per il permesso di utilizzare condizioni proprie per la distribuzione di lavori derivati in forma binaria. Oltre allo sviluppo di programmi in C/C++, wxWidgets fornisce binding per la maggior parte dei linguaggi di programmazione più popolari, inclusi , , e . A differenza di altri toolkit, wxWidgets garantisce un aspetto e un comportamento veramente nativi per l'applicazione sul sistema target, grazie all'uso delle API di sistema, piuttosto che all'emulazione della 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;
- Rivista la supporto per OpenGL, migliorato l'uso delle nuove versioni di OpenGL (3.2+);
- Aggiunto supporto per eventi per gesti controllati tramite mouse;
- In wxFont e wxGraphicsContext è stata aggiunta la possibilità di specificare valori non interi per definire la dimensione dei font 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;
- Introdotte 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(); - Sono stati apportati miglioramenti significativi alle classi wxBusyInfo, wxDataViewCtrl,
wxNotificationMessage, wxStaticBox, wxStyledTextCtrl e wxUIActionSimulator; - Migliorata la sicurezza in fase di compilazione, grazie alla possibilità di disattivare le pericolose conversioni implicite tra stringhe di tipo wxString e «char*».
- Aggiornate tutte le librerie di terze parti incluse nel pacchetto. Aggiunta la supporto per WebKit 2 e GStreamer 1.7;
- Apportate migliorie relative al supporto dello standard C++11. Aggiunto supporto per la compilazione con i compilatori C++20.
- Numerosi fix nei porting wxGTK3 e wxOSX/Cocoa.
Fonte: opennet.ru
