Dopo tre anni di sviluppo, è stata pubblicata la versione 3.3.0 del toolkit multipiattaforma wxWidgets, che consente di creare interfacce grafiche per Linux, Windows, macOS, sistemi UNIX-like e piattaforme mobili. Il toolkit è scritto in C++ ed è distribuito sotto la licenza wxWindows Library License, approvata dalla Free Software Foundation e dall'OSI. La licenza si basa sulla LGPL e consente di impostare condizioni personalizzate per la distribuzione di opere derivate in forma binaria.
Oltre al supporto per C++, wxWidgets fornisce binding per la maggior parte dei linguaggi di programmazione popolari, tra cui PHP, Python, Perl, Haskell e Ruby. L'interfaccia nelle applicazioni che utilizzano wxWidgets ha un aspetto nativo per il sistema target, grazie all'uso delle API di sistema, anziché a una simulazione del GUI.
wxWidgets 3.3.0 è considerata una branch per sviluppatori, dove si stanno sviluppando nuove funzionalità per il prossimo rilascio stabile 3.4.0. Questa branch è segnata come utilizzabile in progetti lavorativi; a differenza delle branch stabili, nelle versioni intermedie delle branch per sviluppatori è consentita l'introduzione di modifiche a ABI e API che violano la compatibilità. Tali modifiche sono rare e, in generale, la branch 3.3 è quasi completamente compatibile con wxWidgets 3.2 a livello di API.
Novità principali:
- È stato implementato un nuovo backend wxWebView basato sul motore Chromium, che consente di integrare nelle applicazioni funzionalità per la gestione e la visualizzazione di contenuti web.
- La classe wxImage ora supporta le immagini nel formato WebP.
- Nella porta wxMSW, che fornisce funzionalità e controlli specifici per Windows, è stata aggiunta un supporto sperimentale per la modalità scura, funzionante a partire da Windows 10. È stata interrotta la compatibilità con Windows XP e Vista. Di default è attivata la modalità di output con doppio buffering, come nelle porte wxGTK con Wayland e wxOSX.
- Nella libreria wxAUI è stata implementata la possibilità di fissare la posizione delle schede (pin) e di creare schede multi-linea.
- Aggiunta una variante della classe wxWebRequest per gestire le richieste in modalità sincrona (bloccante).
- Aggiunto API per la gestione a basso livello degli eventi da schermi touch e touchpad.
- Nella classe wxGrid sono stati implementati strumenti per persone con disabilità.
- Per i sistemi UNIX-like sono stati implementati eventi wxEVT_POWER_XXX per monitorare lo stato del consumo energetico.
- Nel porting wxGTK, dove possibile, vengono ora utilizzati i dialoghi nativi per la gestione dei file.
- Nella classe wxTextCtrl, che forma elementi per visualizzare e modificare testo, è stata implementata la supporto per testo con formattazione (RTF).
- Aggiunto supporto per animazioni e cursori per schermi ad alta densità di pixel (high DPI).
- Aggiunto supporto per la compilazione utilizzando i nuovi compilatori gcc 15, clang 19 e Xcode 16.
- Nei sistemi UNIX-like, per la collocazione dei file di configurazione delle applicazioni, è stato utilizzato il percorso ~/.config/appname.conf invece di ~/.appname (il caricamento di file di configurazione esistenti è mantenuto).
- Rimossi i porting wxMotif e wxGTK1.
- È stata rimossa la possibilità di compilare senza utilizzare Unicode (wxUSE_UNICODE=0).
Fonte: opennet.ru
