Pärast 9 aastat alates versiooni 3.0 väljalaskmisest on välja antud esimene uus stabiilne versioon platvormidevahelisest tööriistakomplektist wxWidgets 3.2.0, mis võimaldab luua graafilisi kasutajaliideseid Linuxi, Windowsi, macOSi, UNIXi ja mobiilsete platvormide jaoks. Võrreldes versiooniga 3.0 on API-tasandil mitmeid ühilduvuse probleeme. Tööriistakomplekt on kirjutatud C++ keeles ja levitatakse vabale litsentsile wxWindows Library License, mille on heaks kiitnud Open Source Initiative ja OSI organisatsioon. Litsents põhineb LGPL-l ja võimaldab kasutada oma tingimusi tuletatud tööde levitamiseks binaarses vormis.
Lisaks C++ keeles programmide arendamisele pakub wxWidgets sidemeid enamike populaarsete programmeerimiskeelte jaoks, sealhulgas PHP, Python, Perl ja Ruby. Erinevalt teistest tööriistakomplektidest, annab wxWidgets rakendusele tõeliselt kohandatud välimuse ja kasutusviisi sihtsüsteemi jaoks, tänu süsteemi API-de kasutamisele, mitte GUI simulatsioonile.
Põhilised uuendused:
- On ellu viidud uus eksperimentaalne wxQt port, mis võimaldab wxWidgets toimimist Qt raamistikul.
- wxGTK porti on lisatud täielik tugi Waylandi protokollile.
- Lisatud tugi kõrge eraldusvõimega ekraanidele (High DPI). Lisatud võimalus määrata erinevad DPI erinevatele monitoridele ja dünaamiliselt muuta DPI-d. Pakutud uus API wxBitmapBundle, mis võimaldab manipuleerida mitme rasterpildi variandiga, mis on esitatud erinevates eraldusvõimetes, kui ühte tervikut.
- Pakutud uus ehitussüsteem CMake'i põhjal. Ehitussüsteemi on lisatud tugi uutele kompilaatoritele (sealhulgas MSVS 2022, g++ 12 ja clang 14) ja operatsioonisüsteemidele.
- Uuendatud OpenGL tuge, parendatud uute OpenGL versioonide (3.2+) kasutamist.
- Lisatud LZMA kompressiooni ja ZIP 64 failide tugi.
- Tugevdatud kaitset kompileerimise etapis, võimaldades keelata ohtlikud varjatud konversioonid wxString ja "char*" tüüpide vahel.
- Lisatud sündmuste tugi juhtige geste, mis on esitatud hiire abil.
- Klassides wxFont ja wxGraphicsContext on lisatud võimalus määrata mitte-kohandatud väärtusi fontide suuruse ja valgusvihu laius määramisel.
- Klassis wxStaticBox on rakendatud võimalus määrata akendele suvalised sildid.
- API-s wxWebRequest on lisatud tugi HTTPS ja HTTP/2-le.
- wxGrid klassis on nüüd toetatud veergude ja ridade külmutamine.
- Esitatud on uued klassid: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile ja wxUILocale.
- Uued käsitlejad XRC-ile on rakendatud kõigi uute ja mõnede olemasolevate klasside jaoks.
- Esitatud on uued meetodid: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::GetTopItem(), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
- Signifikanseid täiustusi on tehtud klassides wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl ja wxUIActionSimulator.
- MacOS platvormi tugi on paranenud, sealhulgas on rakendatud tumeda teemavaliku võimalus ja toetatud ARM-protsessoritel põhinevad seadmed.
- On tehtud täiustusi seoses C++11 standardi toetamisega. Lisatud tugi C++20 kompilaatorite jaoks.
- Kõik komplekti kuuluvad kolmandate osapoolte teegid on värskendatud. Lisatud tugi WebKit 2 ja GStreamer 1.7 jaoks.
Allikas: opennet.ru
